2013-02-14 77 views
0

我想在OpenGL中实现移动场景。如何实现移动场景

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

地形是在xz平面的飞机。

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

我想这些可能实现的:

  1. 创建一个唯一的网,并显示了好几次(我喜欢这个)
  2. 创建若干网格,将它们保存到一个载体,然后将它们移动。他们离开视口后,也许会销毁它们?

第一种方法的问题是,我将创建x%可能性的网格,因此这需要不知道将需要的网格数。那我该如何展示它们呢?

在例如,如果我知道我将创建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(); 

现在的情况下,我们需要的,只要动画继续创造网格,我将如何实现呢?其次,那个离开视口的网格呢?他们是否继续存在?

+1

请勿使用固定功能流水线! – 2013-02-14 23:23:35

+1

@ FelixK:你的意思是不要使用上面写的代码,对吧? – Chris 2013-02-14 23:26:12

+0

固定功能流水线已弃用,不应使用。这有时很难帮助别人。在stackoverflow或google上搜索关于此主题的更多信息。 – 2013-02-14 23:47:02

回答

0

如果您打算在纯OpenGL中编写此代码,此答案无用。

但是,如果你愿意尝试第三方库,请尝试www.ogre3d.org - 我会发现这在食人魔中非常容易实现。

事实上,如果我没有记错的“中级教程一个人的挑战,,应解决您使用OpenGL遇到的问题相当于食人魔概念。

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

(会已将此作为一个评论,只是最近才开始活跃起来!)

+0

嗯,我只需要使用纯OpenGL,因为它是一个任务。 – Chris 2013-02-14 23:36:56

+0

对不起,我有大约20分钟纯OpenGL的经验....也许我会留下来为其他人的熏陶... – user1833028 2013-02-14 23:41:06

0

使用选项2,只是不删除它们只是移动他们回来,并再次使用它们。比如说,如果我想数羊......我不会创建1,000,000个网格的绵羊,我会创建1或2个,然后在使用它们之间旋转。

+0

我将不得不找出有多少人会通过测试需要现场需要,对吗?此外,我必须保存他们的位置,以检查他们是否通过了视口的左侧,以便我将他们重新定位在正确的位置..这是否正确实施? – Chris 2013-02-15 08:12:49