在我目前正在制作的游戏中,我有两个着色器:
目前,我将这些中的每一个绑定到单独的纹理单元,然后将每个着色器的均匀设置为相应的纹理单元。我发现以这种方式将纹理绑定一次是干净的但是想知道为什么这是一个不好的方法来使用。
我已经广泛搜索过有关这种方法的任何讨论,但似乎没有多少人这样做,在我自己的脑海中产生了对其安全性的怀疑。
有没有人自己使用这种方法,或者知道为什么它可能不是一个好主意?
答案 0 :(得分:1)
间接地,是的,我使用这种方法,这是安全的。但这是渲染引擎级别优化的副作用。
如果避免多次绑定相同的纹理,您可以(可能)获得一些性能。 在我的引擎中,在渲染某些东西之前,我只在它尚未绑定的情况下绑定材质的纹理。 (按材料和纹理对实体进行排序后效率很高)
因为可以同时使用多个纹理单元,所以测试在纹理单元级别执行。
这种优化值得为大场景付出代价。 (数百个绘图调用,至少有30个纹理)。
在您的情况下,因为只有两个纹理和两个着色器,为什么要尝试删除一些纹理绑定? 你能衡量一下你赢得多少表现吗? 你为此牺牲了灵活性吗?
费雯丽