我正在研究一个需要多种材质的多个物体的游戏场景。我在网上广泛搜索,但我找不到任何满意的解决方案。OpenGL正确实施多种材质
我的场景将会像一条河流流过,而且那里的材质无论如何都需要单独的着色器(它会将许多镜面反射和法线贴图合并成一条看起来像河流的地图),那么会有一个地形混合两个草地和沙地纹理)需要另一个着色器。还有一个玩家的手和爱情和所有。
编辑:基本上我想找出制作最灵活的多种材质/着色器实现的最有效方法。
简而言之,周围有很多复杂的物体需要不同的着色器。他们的人数并不多,但却有很多复杂性。
所以使用glUseProgram()
很多时候dosn't似乎是最聪明的想法。也有很多着色器代码可以像点光源计算一样通用。制作通用着色器并使用if和状态制服可能有效,但仍需要不同的着色器来处理河流,同样也需要使用不同的材质。
我基本上不了解这样一个通用系统的组织和实现。我已经使用了像Unreal或Blender这样的引擎,它们使用基于节点的材料,并且允许定制每一种材料而没有太多滞后。这样的系统如何转化为基本的GPU代码?
要么你的问题很广泛,要么只是不清楚。我不确定你在问什么。 –
我想你需要一个建立在opengl之上的游戏引擎,是java所必需的? – niceman
@NicolBolas问题:我如何有效地实现多个材质,否则需要单独的着色器? – HuraToTheRescue