我想制作一个 OpenGL 游戏,但现在意识到我在学校学到的东西 -> 直接通过 glBegin/glEnd 绘制对象 -> 是老派而且很糟糕。互联网上的读数我看到顶点缓冲区对象和 GLSL 是 3d 编程的“正确”方法。
1)我应该使用 OpenGL 的 glDrawArrays 还是 glDrawElements?
2)对于有许多实体/地面/对象的游戏,渲染函数必须是许多 glDrawArrays():
foreach(entity in entities):
glDrawArrays(entitiy->arrayFromMesh()) //Where we get an array of the mesh vertex points
或者只有一个 glDrawArrays() 封装了每个实体:
glDrawArrays(map->arrayFromAllMeshes())
3)现在是否每个图形层(例如 DirectX)都标准化了顶点缓冲区对象?