2010-04-10 4 views

ответ

20

Несколько советов здесь: Common mistakes in GLSL

Кроме того, во избежание разветвления по мере возможности. То есть, if и while заявления и for заявления, которые имеют сравнение с переменной, например:

for (int i=0; i<n; i++) {} 

будет медленным. Тем не менее,

for (int i=0; i<10; i++) {} 

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

Вместо ветвления попробуйте использовать условную компиляцию с использованием препроцессора.

Кроме того, проверьте nVidia и ATI #pragma s, чтобы повысить эффективность.

2

Хотя многие традиционные оптимизаторы c работают для glsl, для GLSL существует определенная оптимизация. Если вы новичок в программировании шейдеров, не тратьте слишком много на optm, ваш компилятор может сделать для вас чрезвычайно эффективные задания. Вы можете собрать некоторые другие усовершенствованные методы optm, когда вы погружаетесь глубже в графическое программирование. удачи.

Смежные вопросы