В каком смысле вы хотите интерпретировать значения буфера в диапазоне от 0 до 255?Их собственный диапазон составляет от 0 до 65535, а диапазон для компонента с плавающей запятой обычно составляет от 0,0 до 1,0.Ни одно из этих значений не равно от 0 до 255.
Если вы просто поделите на 65535,0 вместо 255,0, вы получите то, что вам кажется, значение от 0,0 до 1,0.
Кроме того, вашвызов clamp()
кажется неправильным.Учитывая порядок аргументов, которые вы написали, вы ограничиваете значение константы 0.0, чтобы быть между luma
и 1.0.Я думаю, что вы хотите ограничить luma
между 0,0 и 1,0.
Как это происходит, способ, которым вы пишете вещи, в основном будет работать.Если luma
равно <= 0.0, 0.0 будет между <code>luma и 1.0 и будет возвращено без изменений.Если 0.0 <<code>luma <= 1.0, то 0.0 находится ниже диапазона, поэтому <code>clamp() вернет нижнюю границу диапазона, которая равна luma
.Проблема возникает, если luma
> 1.0.В этом случае результаты clamp()
не определены в соответствии с документацией.
Теперь значения больше 1,0 не должны произойти, если вы делите на правильный делитель.На самом деле зажимать совсем не нужно.