мой первый шейдер в WebGL - PullRequest
4 голосов
/ 18 июня 2010

Я пишу свой первый шейдер в WebGL.Мне было интересно, есть ли у языка GLSL какой-либо способ оценить, является ли атрибут или униформа нулевым.Согласно спецификациям, он не поддерживает создание чего-то вроде

if (attributeX) {
dothis();
}  
else{ 
dothat():
}

. И я думаю, что было бы напрасно писать атрибут bool, для каждого из этих случаев было бы напрасно.

Другой вопрос: что происходит во время рендеринга, когда вы не передаете форму или атрибуты шейдеру?

Спасибо!

Ответы [ 2 ]

5 голосов
/ 18 июня 2010

GLSL не имеет понятия нуля, использование формы bool для этого случая вполне нормально.

Если вы не передаете форму, она инициализируется нулями, для атрибутов, я думаю, что вы получаете мусор из них.

2 голосов
/ 21 марта 2011

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

...