【发布时间】:2021-10-21 14:42:03
【问题描述】:
假设我有 4 个相同的对象 - (网格或精灵), 它们都(可能)具有相同的着色器/程序,因为它们是相同的。
每个都有自己的位置,并在单独的渲染调用中渲染。
这些对象的位置每隔一段时间就会改变一次,但不是每一帧。
我不知道最快的处理方法是什么:
-
每个对象都有自己的着色器,变换存储在着色器中(GPU 端)?我需要每帧重新绑定 4 个着色器。当我想移动某个对象时,我只需绑定正确的着色器并将新的变换矩阵发送给它。
-
所有这些对象只有一个着色器/程序绑定?转换存储在一个类中(CPU 端)。每次渲染其中一个对象时,我必须将其转换发送到着色器,因此我每帧发送 4 个矩阵。当我想移动某个对象时,我只需更改它的类中的值,但不需要向 GPU 发送任何内容。
-
还有其他更好的解决方案吗?
【问题讨论】: