Вывод фрагмента GLSL большего размера без вложений в буфере мультипликации - PullRequest
0 голосов
/ 25 февраля 2012

Есть ли способ испускать больше, чем например. 4 байта от фрагментного шейдера GLSL, если реализация не поддерживает несколько вложений буфера FBO или «глубокие» форматы буфера?

Например, при использовании WebGL или OpenGL ES, ограничение вывода RGBA на фрагмент делает сложные вычисления крайне неэффективными, если части вычислений должны повторяться в несколько проходов, чтобы получить больше выходных каналов.

Ответы [ 2 ]

1 голос
/ 25 февраля 2012

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

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

Обратите внимание, что у NVIDIA есть такое расширение , поэтому аппаратное обеспечение с поддержкой ES может бытьв состоянии сделать это.

0 голосов
/ 18 августа 2012

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

...