Упаковка атрибутов в текстуру, отложенный рендеринг - PullRequest
2 голосов
/ 15 марта 2010

Я запускаю канал отложенного шейдера, и из-за необходимости сохранять G-буферы в унифицированном формате, требуется сжатие атрибутов. К сожалению, я не смог найти хорошую информацию о том, как на самом деле это делается.

У меня есть формат G-буфера, который использует 16 бит на компонент в формате с фиксированной запятой. К сожалению, поскольку я использую шейдерную модель 3, я не могу использовать битовые операторы. Итак, в общем, как можно собрать 2 8-битные значения в диапазоне 0,1 в один 16-битный канал, также в диапазоне 0,1? Предпочтительно применяется к CG или HLSL.

1 Ответ

0 голосов
/ 02 июня 2012

Может быть, эта ссылка поможет вам: http://www.gamedev.net/topic/534283-hlsl-pack-two-values-into-one-component-of-a-4x16_unorm-target/

Но по моему опыту я бы сказал, что стоимость упаковки высока. Я использую несколько целей рендеринга (MRT) для сохранения данных, и это прекрасно работает для меня.

...