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