如何实现移动场景

时间:2013-02-14 23:22:10

标签: c++ opengl

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

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

地形是xz平面中的平面。

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

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

  1. 仅创建一个网格并多次显示(我更喜欢这个)
  2. 创建多个网格,将它们保存到矢量,然后移动它们。他们离开视口后,可能会毁掉它们吗?
  3. 第一种方式的问题是,我将创建具有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();
    

    现在我们需要创建网格,只要动画继续,我将如何实现?其次,离开视口的网格怎么样?他们继续存在吗?

2 个答案:

答案 0 :(得分:0)

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

但是,如果您愿意尝试第三方图书馆,请尝试www.ogre3d.org - 我会发现这在ogre中非常容易。

事实上,“中间教程一”的挑战,如果我记得正确的话,应该解决与openGL问题相同的食人魔概念。

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

(会把它作为评论,最近才变得活跃!)

答案 1 :(得分:0)

使用选项2.只是不删除它们只需将它们移回并再次使用它们即可。例如,如果我想数羊...我不会创建1,000,000网眼的绵羊,我可能创建1或2只,并在使用它们之间旋转。