0

我想在 OpenGL 中实现一个移动的场景。

场景描述:地形是静态的,但所有其他对象都在向 -x 轴移动。

地形是 xz 平面中的一个平面。

我有一个网格,它会在几个地方的地形上出现很多次。
但是它们都将以特定的速度向 -x 轴移动。

我想到了这些可能的实现:

  1. 只创建一个网格并显示多次(我更喜欢这个)
  2. 创建多个网格,将它们保存到矢量,然后移动它们。在他们离开视口之后,也许摧毁他们?

第一种方法的问题在于,我将创建具有 ax% 可能性的网格,因此这需要不知道需要的网格数量。那么如何显示它们呢?

例如,如果我知道我会创建 3 个网格,我会这样做:

glPushMatrix();
glTranslatef(mesh1 position + speed)
mesh.dray();
glPopMatrix();

glPushMatrix();
glTranslatef(mesh2 position + speed)
mesh.dray();
glPopMatrix();

glPushMatrix();
glTranslatef(mesh3 position + speed)
mesh.dray();
glPopMatrix();

现在,如果我们需要在动画继续的情况下创建网格,我将如何实现呢?其次,离开视口的网格怎么办?它们是否继续存在?

4

2 回答 2

0

如果您打算在纯 openGL 中对此进行编码,则此答案毫无用处。

但是,如果您愿意尝试 3rd 方库,请尝试 www.ogre3d.org - 我会发现这在 ogre 中非常容易做到。

事实上,如果我没记错的话,“中级教程一”的挑战应该解决您在使用 openGL 时遇到的问题的等效 Ogre 概念。

http://www.ogre3d.org/tikiwiki/tiki-index.php?page=Intermediate+Tutorial+1&structure=Tutorials

(本来会将此作为评论,直到最近才变得活跃!)

于 2013-02-14T23:30:40.993 回答
0

使用选项 2。只是不要删除它们,只需将它们移回并再次使用它们。例如,如果我想数绵羊……我不会创建 1,000,000 个绵羊网格,我可能会创建 1 或 2 个,然后在使用它们之间进行轮换。

于 2013-02-14T23:42:55.533 回答