opengl - triangle - shadertoy
Consejos para el código GLSL eficiente (2)
Algunos consejos están aquí: Errores comunes en GLSL
Además, evite las ramificaciones siempre que sea posible. Es decir, las declaraciones if
y while
, y for
declaraciones que tienen una comparación con una variable, por ejemplo:
for (int i=0; i<n; i++) {}
será lento Sin embargo,
for (int i=0; i<10; i++) {}
debería ser mucho más rápido, porque la mayoría de las veces el bucle se desenrolla, y cuando no es así, todas las unidades de sombreado siguen ejecutando el mismo código al mismo tiempo, por lo que no hay una penalización de rendimiento.
En lugar de bifurcar, intente usar la compilación condicional usando el preprocesador.
Además, echa un vistazo a nVidia y a las #pragma
específicas de ATI para ajustar la eficiencia.
¿Hay alguna guía para escribir shaders eficientes en GLSL? ¿El compilador maneja la mayor parte de la optimización?
Si bien muchas de las optimizaciones de c tradicionales funcionan para glsl, existen algunas optimizaciones específicas para GLSL. Si eres nuevo en la programación de sombreadores, no gastes demasiado con optm, tu compilador puede hacer trabajos extremadamente eficientes para ti. Puede recopilar algunas otras técnicas avanzadas de optm a medida que profundiza en la programación de gráficos. buena suerte.