Great V.
> А если надо большую точность в другом диапазоне? Выглядит так будто бы проще тупо держать отдельно коэффициенты для шейдера.
Можно подумать эта самая точность сохранится при переводе движком в линейное цветовое пространство...
По-моему абсолютно без разницы, в движке ты переведёшь текстуру в RGB16F или сразу сохранишь в RGB16F без лишних преобразований.
P.S. Как я понимаю это связано с ограничениями, накладываемыми морально устаревшими для данного вопроса графическими форматами LDR-диапазона, и если стремиться к качеству, то разумней хранить Альбедо сразу в HDR.
Daniil Petrov
> Можно подумать эта самая точность сохранится при переводе движком в линейное
> цветовое пространство...
Конечно сохраниться. Ведь в текстуре у тебя UINT8, а в шейдере полноценный SFLOAT32.
Great V.
> Конечно сохраниться. Ведь в текстуре у тебя UINT8, а в шейдере полноценный SFLOAT32.
Это если у тебя прямой рендер, а вообще UINT8 только в LDR-текстурах, в HDR = 16F, как и в буферах отложенного освещения, если только ты не делаешь движок для проф.карт типа Quadro, где можно смело использовать буферы типа 32F... дальше объяснять не стану, видимо бесполезно...
Great V.
Но по сути всё правильно = для LDR нужно указывать sRGB, для HDR не надо.
Тема в архиве.