Кодировать два буфера R11G11B10F в один, используя Y'CbCr?


8

Мы пытаемся оптимизировать освещение по скорости заполнения. Интегрированные графические чипы очень медленно обращаются к памяти.

Есть два Light Buffers: один для Diffuse и один для Specular. Оба используют формат R11G11B10F. Есть ли способ упаковать два буфера в один? Например, используя цветовую модель Y'CbCr:введите описание изображения здесь


Это для отложенного освещения трубопровода, верно? Вы используете мозаичную реализацию для уменьшения пропускной способности? Кроме того, рассматривали ли вы мозаичное отложенное затенение или мозаичное прямое затенение?
JarkkoL

Ответы:


5

Возможно, вы захотите взглянуть на Компактный кадровый буфер YCoCg . Он использует 2-канальный буфер для хранения яркости для каждого пикселя и двух компонентов цветности по половине пикселей каждый, образуя шахматную доску. Он также использует фильтр повышающей дискретизации с распознаванием краев в конце кадра, чтобы восстановить отсутствующие компоненты цветности и преобразовать их обратно в RGB.

Вы можете расширить его до одного 3-канального буфера, чтобы хранить диффузную яркость, зеркальную яркость и насыщенную цветность (с учетом диаграммы в вашем вопросе, что достаточно сохранить только одну пару значений цветности).

Вы также можете использовать формат R10G10B10A2, если вам не нужен диапазон формата с плавающей запятой. Это та же самая полоса пропускания, но она даст вам гораздо большую точность (R11G11B10F дает только 5–6 бит мантиссы на компонент). Кроме того, вы можете использовать 2 бита альфа для хранения пары флагов, таких как ваш диффузный / зеркальный флаг.


2

Если у вас все в порядке с зеркальным отображением только белого цвета, вы можете поместить диффузный и зеркальный в RGBA.

Похоже, именно это и делает единство для отложенного рендеринга.

Кто-то обнаружил эту проблему: http://forum.unity3d.com/threads/specular-color-based-on-light-color.134412/

Документы, упоминающие это: https://docs.unity3d.com/Manual/RenderTech-DeferredLighting.html


спасибо, все еще и Diffuse и Specular должны быть цветными
skif_engineer
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.