我想在 OpenGL 中实现一个移动的场景。
场景描述:地形是静态的,但所有其他对象都在向 -x 轴移动。
地形是 xz 平面中的一个平面。
我有一个网格,它会在几个地方的地形上出现很多次。
但是它们都将以特定的速度向 -x 轴移动。
我想到了这些可能的实现:
- 只创建一个网格并显示多次(我更喜欢这个)
- 创建多个网格,将它们保存到矢量,然后移动它们。在他们离开视口之后,也许摧毁他们?
第一种方法的问题在于,我将创建具有 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();
现在,如果我们需要在动画继续的情况下创建网格,我将如何实现呢?其次,离开视口的网格怎么办?它们是否继续存在?