Подсказки для эффективного [закрытого] кода GLSL

18
задан Brynn Mahsman 10 April 2010 в 19:22
поделиться

2 ответа

Вот несколько советов: Распространенные ошибки в GLSL

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

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

будут медленными. Однако

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

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

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

Также проверьте nVidia и ATI #pragma s, чтобы настроить эффективность.

21
ответ дан 30 November 2019 в 08:43
поделиться

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

2
ответ дан 30 November 2019 в 08:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: