在我的游戏中,我想为每种情况创建单独的 GLSL 着色器。例如,如果我有 3 个模型character,shiny sword并且blury ghost我想设置renderShader, animationShaderandlightingShader到 the character, then renderShader, lightingShaderand specularShaderto shiny sword, 最后我想设置renderShader, lightingShaderandblurShader到blury ghost.
应该将顶点的renderShader位置乘以投影、世界和其他矩阵,它的片段着色器应该简单地将纹理设置为模型。
animationShader应该通过给定的骨骼变换来变换顶点。
lightingShader应该做光照,specularLighting应该做镜面光照。
blurShader应该做模糊效果。
现在首先我如何在不同的着色器上进行多个顶点变换?因为animationShader应该计算顶点的动画位置,然后renderShader应该得到该位置并通过一些矩阵对其进行转换。
其次,如何更改不同着色器上片段的颜色?
基本思想是我希望能够为每个 sutuations/效果使用不同的着色器,但我不知道如何实现它。
我需要知道我应该如何在 opengl 中使用这些着色器,以及我应该如何使用 GLSL,以便所有着色器能够相互完成,并且着色器不会关心是否使用了另一个着色器。