gpt4 book ai didi

iphone - OGL_ES 2.0 : Using multiple texture units vs rebinding textures for separate shaders

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:23:34 26 4
gpt4 key购买 nike

在我目前制作的游戏中,我有两个着色器:

  • 一个用于纹理图集上的 Sprite
  • 一个单独加载的粒子形状纹理。 (我决定将此纹理保留在图集之外,因为我的生成器中的粒子是 GL_POINTS)。

目前,我将其中的每一个都绑定(bind)到一个单独的纹理单元,然后将每个着色器的统一设置为各自的纹理单元。我发现以这种方式仅绑定(bind)一次纹理是干净的,但想知道是否有任何理由说明这是一种不好的方法。

我广泛搜索了有关此方法的任何讨论,但似乎没有多少人这样做,这让我对它的安全性产生了怀疑。

有没有人自己使用过这种方法,或者知道为什么这不是一个好主意?

最佳答案

间接地,是的,我使用这种方法并且它是安全的。但这是渲染引擎级别优化的副作用。

如果避免多次绑定(bind)相同的纹理,您可以(也许)获得一些性能。在我的引擎中,在渲染某些东西之前,我只绑定(bind)尚未绑定(bind)的 Material 纹理。 (按 Material 和纹理对实体进行排序后效率更高)

因为可以同时使用多个textures-unit,所以在texture unit级别进行测试。

这种优化对于大场景来说是值得的。 (数百个绘制调用至少有三十个纹理)。

在你的情况下,因为只有两个纹理和两个着色器,你为什么要尝试删除一些纹理绑定(bind)?你能衡量你赢得了多少绩效吗?您是否为此牺牲了灵 active ?

薇薇安

关于iphone - OGL_ES 2.0 : Using multiple texture units vs rebinding textures for separate shaders,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13543868/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com