【发布时间】:2016-05-05 19:20:34
【问题描述】:
这个问题很宽泛,所以我会尽量做到准确。
我编写了一个程序,它只加载和渲染一个具有多个纹理的模型。由于我使用单个模型,我能够形成所有缓冲区、启用所有顶点属性数组、绑定所有顶点数组以及在负责绘制的循环之前绑定和设置活动纹理一次。
因此,我的程序在绘图循环的每次迭代中都只执行单行 glDrawArrays。在有大量对象的情况下是否可以这样做,或者我确实需要在绘图循环的每次迭代中形成所有缓冲区、启用属性数组、绑定和设置活动纹理、设置着色器程序等等(这意味着将大量数据发送到视频应该很慢的卡)?
【问题讨论】:
-
我猜你正在寻找的是 Instancing objects 的方法,这是一种绘制大量对象的有效方法。请参考learnopengl.com/#!Advanced-OpenGL/Instancing上的教程。
标签: opengl