我有一些模型被加载,我想使用相同的着色器进行渲染。
由于我有100多个模型块,每个模块都有自己的纹理,我想以一种可以为多个网格重用相同材质的方式配置。然而,问题在于,通过指定纹理,我必须对材质进行处理,也就是说,体系结构似乎限制了每个网格纹理,而没有为每个纹理完全生成新的材质。 / p>
所以,一切仍然有效,但是由数百个网格组成的大型场景的性能是有问题的,因为所有的循环状态变化和调用切换程序数百次来渲染每个帧。当然,我应该制作一个大网格而不是许多小网格,因为它有助于减少绘制调用的实际数量......但是暂时我试图优化一点而不解决这些问题数据管道其他部分引起的问题。主要问题是无论涉及多少绘制调用,所有着色器程序更改和均匀分配(纹理采样器除外)都是不必要的。
我是否可以使用任何技巧或方法轻松破解库以使其回收相同的着色器?其中一个问题是,由于分配纹理的方式,我必须为每个网格物体创建一个新的ShaderMaterial。我完全不清楚如何避免做这样的事情并且仍然可以使不同的纹理工作。