Как узнать, можем ли мы использовать half4 вместо float4? - PullRequest
1 голос
/ 26 октября 2019

в реализации металлических шейдеров, рекомендуется использовать half4 вместо float4. но как узнать, можем ли мы использовать half4 вместо float4? Как узнать, какая точность нам нужна?

Ответы [ 2 ]

2 голосов
/ 27 октября 2019

На основании этого Спецификация языка затенения металла

с плавающей запятой:

32-разрядная с плавающей запятой. Тип данных с плавающей точкой должен соответствовать формату хранения с одинарной точностью IEEE 754.

Full float Точность обычно используется для положений в мировом пространстве, текстурных координат или скалярных вычислений с использованием сложных функций. такие как тригонометрия или степень / возведение в степень.

половина:

16-битная с плавающей точкой. Тип данных half должен соответствовать формату хранения двоичного файла IEEE 754.

Half Точность полезна для коротких векторов, направлений, положений пространства объектов, цветов с высоким динамическим диапазоном.

1 голос
/ 29 октября 2019

Вы знаете, что вы можете использовать half4 вместо float4, в зависимости от того, как кодируется цвет, передаваемый в фрагментный шейдер.

Поплавки с половинной точностью могут представлять значения от 0 до 2048. Точно так же, если он используется для представления 8-битного канала (т. е. почти всех широко используемых форматов текстур), то без потери точности.

Это также сэкономит пропускную способность передачи памяти, что важно для мобильных устройств. платформы.

...