Ich mache einige 3D-Demos mit OpenGL und habe festgestellt, dass GLSL etwas "eingeschränkt" ist (oder bin es nur ich?). Jedenfalls habe ich viele verschiedene Arten von Materialien. Einige Materialien weisen Umgebungsfarben und diffuse Farben auf, andere Materialien weisen eine Umgebungsokklusionskarte auf, andere eine Spiegelkarte und eine Reliefkarte usw.
Ist es besser, alles in einem Vertex / Fragment-Shader-Paar zu unterstützen, oder ist es besser, viele Vertex / Fragment-Shader zu erstellen und sie basierend auf dem aktuell ausgewählten Material auszuwählen? Was ist die übliche Shader-Strategie in OpenGL oder D3D?