【发布时间】:2013-08-20 04:45:38
【问题描述】:
我一直在循环一个游戏实体列表并调用一个虚拟渲染 fn,它使用:glBegin/glEnd。最近我了解到 Vertex-Buffer-Arrays 是要走的路(尤其是对于 ios/Android)。
- 当我在世界中创建一个新实体时,我只需要将实体的 VAO 绑定到 VBO,设置它的 VAO id。因此,如果我有 N 个实体,我就有 N 个 VAO/VBO?
- 在渲染函数上我不需要重新绑定任何东西,只调用“glDrawArray/Element”?
- 我可以在渲染 fn 中同时使用 glBegin/glEnd 样式的 OpenGL 和 VAO/VBO 吗?
- 看来 OpenGL 讨厌 OOP,但我需要 OOP 来进行游戏编程……我该如何解决这个悖论?
【问题讨论】:
-
“我该如何解决这个悖论?”它没有。从技术上讲,GL 对象 ID(纹理 ID 等)是对象,对它们进行操作的函数是它们的方法。语法不同,但想法几乎相同。