问题比较广泛,我会尽可能精确地回答。我编写了一个程序,加载并渲染了一个带有多个纹理的模型。由于我只使用了一个模型,所以在负责绘制的循环之前,我能够形成所有缓冲区,启用所有顶点属性数组,绑定所有顶点数组,并且只需一次绑定和设置活动纹理。
因此,在每次绘制循环的迭代中,我的程序只执行单个命令-glDrawArrays。在处理多个对象时,是否可以采取同样的方法?或者,我需要在每次绘制循环的迭代中形成所有缓冲区,启用属性数组,绑定和设置活动纹理,设置着色器程序等(这意味着向显卡发送大量数据,可能会很慢)?
因此,在每次绘制循环的迭代中,我的程序只执行单个命令-glDrawArrays。在处理多个对象时,是否可以采取同样的方法?或者,我需要在每次绘制循环的迭代中形成所有缓冲区,启用属性数组,绑定和设置活动纹理,设置着色器程序等(这意味着向显卡发送大量数据,可能会很慢)?