Robię kilka demonstracji 3D za pomocą OpenGL i zauważyłem, że GLSL jest nieco „ograniczony” (a może to tylko ja?). W każdym razie mam wiele różnych rodzajów materiałów. Niektóre materiały mają barwę otoczenia i rozproszone, niektóre materiały mają mapę okluzji otoczenia, niektóre mają mapę zwierciadlaną i mapę wypukłości itp.
Czy lepiej jest obsługiwać wszystko w jednej parze modułów cieniujących wierzchołki / fragmenty, czy lepiej jest utworzyć wiele modułów cieniujących wierzchołków / fragmentów i wybrać je na podstawie aktualnie wybranego materiału? Jaka jest zwykle strategia cieniowania w OpenGL lub D3D?