Es mejor mantener las cosas lo más simples posible. Duplicar el mismo sombreador para cada objeto es innecesario y se hinchará rápidamente. Tampoco desea un sombreador gigante que cubra todos los casos de uso posibles, ya que esto causa una sobrecarga innecesaria.
Hay varias opiniones sobre la gestión de sombreadores y no hay una forma "óptima" de abordar esto. Incluso he visto algunas implementaciones de sombreadores en las que cada sombreador se genera sobre la marcha sobre la base de parámetros (por ejemplo, en el motor Unreal ).
Para alguien que recién comienza en esta área, puede ser bueno dibujar primero los sombreadores básicos. Por ejemplo, tengo un sombreador para objetos sin textura, un sombreador con textura básica y soporte de iluminación por píxel, etc. Entonces, cada vez que quiero un efecto diferente que no se puede hacer usando un sombreador anterior, entonces ' crearé uno nuevo para el nuevo efecto.
El propósito de tal sistema es mantener las cosas simples. Sólo. Mantener. Eso. Simple.