[UE 4.26–5.8] SphereMask Hardness uses inconsistent 0–100 and 0–1 input ranges

Summary

The SphereMask material expression uses two incompatible scales for Hardness. When the Hardness input pin is unconnected, the Hardness Percent property uses a 0–100 percentage scale. When a Constant, Scalar Parameter, or another expression is connected to the Hardness pin, the incoming value is interpreted as normalized 0–1. The same numeric value therefore changes meaning based only on whether the pin is connected. The official Utility Material Expressions documentation describes Hardness Percent as 0–100, but does not document the connected Hardness input range; its SphereMask Inputs table currently lists only A and B.

What Type of Bug are you experiencing?

Rendering (Graphics / Niagara)

Steps to Reproduce

  1. Create a new blank project and a new Material.
  2. Add a SphereMask expression and connect simple position/center inputs so its falloff is visible.
  3. Leave the Hardness pin unconnected and set Hardness Percent to 50. Observe the transition.
  4. Connect a Constant or Scalar Parameter with value 50 to the Hardness pin. Observe that it does not reproduce the unconnected value of 50.
  5. Change the connected value to 0.5. It now reproduces the unconnected Hardness Percent value of 50.

Expected Result

The Hardness value should use one consistent scale whether the input pin is connected or not. Preferably, both paths should use the normalized 0–1 range. If backward compatibility prevents changing the existing 0–100 property, the Hardness pin label/tooltip, node description, and official documentation must explicitly state: unconnected property = 0–100 percent; connected input = normalized 0–1. The documentation should also list the Radius and Hardness input pins and their ranges.

Observed Result

The unconnected value 50 is internally equivalent to a connected value of 0.5. A connected value of 50 is treated as far outside the normalized 0–1 range, producing a radically different result. No tooltip or official documentation warns users that connecting the pin changes the expected scale by a factor of 100.

Affects Versions

5.8

Platform(s)

Windows

Additional Notes

Reproduced in clean projects on Windows with Unreal Engine 4.26 and 5.8. The report form does not list 4.26, so only 5.8 is selected under Affects Versions.

Official documentation: Utility Material Expressions in Unreal Engine | Unreal Engine 5.8 Documentation | Epic Developer Community

A previous community report from 2024 describes the same issue, with a 2025 reply confirming that dividing the connected parameter by 100 is required: SphereMask ignores passed hardness value?