我正在使用 OpenGL、glew 和 GLFW 为项目编写一个简单的游戏。我已经有一个使用 Assimp 的 3D 模型导入器,它也可以处理纹理。
这是我绘制一个网格的方式:
glBindBuffer(GL_ARRAY_BUFFER, m_Buffers[NORMAL_VB]);
glNormalPointer(GL_FLOAT, 0, NULL);
glBindBuffer(GL_ARRAY_BUFFER, m_Buffers[TEXCOORD_VB]);
glTexCoordPointer(2, GL_FLOAT, 0, NULL);
glBindBuffer(GL_ARRAY_BUFFER, m_Buffers[POS_VB]);
glVertexPointer(3, GL_FLOAT, 0, NULL);
//Render the triangles
glDrawArrays(GL_TRIANGLES, 0, m_Entries[i].NumIndices);
我的问题是如何使用同一个网格渲染数百个移动实体,但每个实体都有不同的世界位置和旋转?
如果我有数百个移动实体,每一帧我都会渲染相同的网格数百次,我现在可以注意到 FPS 下降。
顺便说一句,我没有使用着色器,只是简单的绘制