例如,如果我有一个四边形(纹理)或甚至一个网格我希望多次绘制,但是每个实例EACH FRAME(位置,旋转,比例等)的模型矩阵会有所不同,是否更好有一个VBO用于quad / mesh的单个实例,并更新着色器制服(例如模型矩阵)并为每个实例调用glDrawArrays()?
我认为它会像这样工作:
init() {
create VBO of a quad/mesh;
}
loop {
create view matrix based on camera position and send to the shader;
for each object {
create model matrix based on position, rotation, scale;
send the model matrix using glUniforMatrix4f() to the shader;
draw the object using glDrawArrays();
}
}
基本上这是针对一个游戏,其中物体在每个帧周围移动,所以我想确保在我开始为此编写一个巨大的包装之前从壁虎中做到这一点。