在 OpenGL 中绘制大量对象的技术
我想知道我可以使用哪些技术或方法在 OpenGL 上绘制许多对象。
例如,我可能有一个代表砖块的类,可能还有一个代表树的类,或者我想像灯柱一样绘制的其他随机事物。然后说,我有很多砖块要绘制,或者灯柱或类似的东西......为每个块调用一个绘制方法会导致很长的代码。
目前我正在使用 glut 回调函数来绘制世界上的“东西”,比如砖头或树。
使用可全局访问的基指针向量
我的一个想法是让所有类都从基类继承,并将基指针放入向量中 - 然后让向量全局。这样我可以做类似的事情:
for(int i = 0; i < vector_of_objects.size(); i ++)
vector_of_objects[i]->draw();
每个对象都可以有一个绘制函数,该函数绘制所有 OpenGL 基元。
这种类的一个例子是这样的。(这是我一直在尝试的。)
class box {
public:
void draw() { // Do the drawing of a box }
// Other members etc
}
备择方案?
这似乎不是一个好主意,因为为房子之类的东西创建一个新类,需要用户记住添加一个名为“draw”的绘图函数......虽然这是一个微不足道的问题,但不一定是大问题问题。
工业或游戏开发中是否使用了不同的技术?我看到这种方法的优点是,一旦将 for 循环放入 draw 函数中,您就可以忘记它 - 只需担心在全局可访问向量中放置更多项目(或指针)。
有人对更好的选择有什么建议吗?