Подтвердить что ты не робот

Советы по эффективному GLSL-коду

Есть ли какие-либо рекомендации по написанию эффективных шейдеров в GLSL? Компилятор обрабатывает большую часть оптимизации?

4b9b3361

Ответ 1

Несколько советов: Общие ошибки в GLSL

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

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

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

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

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

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

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

Ответ 2

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