我正在模拟一个旧客户端,大多数纹理都是 128x128。我知道切换纹理和渲染调用很昂贵,我可以在运行时摆脱,创建一个包含所有微小纹理的非常大的纹理图集。
然后从那里,我可以绑定大纹理并通过着色器渲染图集中的纹理偏移吗?这会带来什么样的性能冲击?我的第二个问题涉及排序。关卡文件被分解成 BSP 树的小块。它们非常小,每个级别通常有数千个。当前的方式,肯定是较慢的是,我在每个 BSP 叶中渲染我的平截头体和 PVS(Quake 3 风格)中的每组纹理。解决这个问题的想法是什么?
我是否想遍历我可以看到的每个区域(从后到前),并按纹理对所有可见三角形进行分组,然后一次全部渲染。出于某种原因,我总觉得这可能会更慢。首先排序并一次渲染所有区域或跳过排序并一次渲染每个区域是否更有意义?