Unity 支持 HLSL 数据类型,但对某些数据类型进行了不同的处理,以便在移动平台上提供更好的支持。
Unity 不支持 HLSL 浮点后缀。
例如,如果您使用 2.0h
创建一个半精度浮点数,Unity 会将其视为高精度浮点数。
在目标平台上测试您的 着色器在 GPU 上运行的程序。 更多信息
参见 词汇表,了解其如何处理浮点异常(例如,除以零)。
支持 Direct3D 10 的桌面 GPU 支持 IEEE 754 浮点标准。这意味着浮点数的行为与 CPU 上常规编程语言中的浮点数完全相同。
移动 GPU 可能不支持该标准,并以不同的方式处理浮点异常。例如,除以零可能会导致 NaN
、零或其他值。