如何实现移动场景
How can I implement a moving scene
我想在OpenGL中实现一个移动场景。
场景描述:地形是静态的,但所有其他对象都朝着-x轴移动。
地形是xz平面中的一个平面。
我有一个网格,它会在地形上的几个地方出现很多次
但所有这些都将以特定的速度向-x轴移动。
我想到了这些可能的实现:
- 只创建一个网格并多次显示(我更喜欢这个)
- 创建多个网格,将它们保存到向量中,然后移动它们。它们离开视口后,可能会摧毁它们
第一种方法的问题是,我将创建具有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();
现在,如果只要动画继续,我们就需要创建网格,我该如何实现呢?其次,离开视口的网格呢?它们还会继续存在吗?
如果您打算在纯openGL中进行编码,那么这个答案是无用的。
然而,如果你愿意尝试第三方图书馆,请尝试www.ogre3d.org——我会发现这在ogre中真的很容易做到。
事实上,如果我没记错的话,"中级教程一"的挑战应该解决openGL问题的等效食人魔概念。
http://www.ogre3d.org/tikiwiki/tiki-index.php?page=Intermediate+教程+1&structure=教程
(本应将此作为注释,最近才激活!)
使用选项2。只是不要删除它们,只需将它们移回原处,然后再次使用。比如,如果我想数羊。。。我不会创建1000000个绵羊网,我会创建1或2个,然后在使用它们之间旋转。
相关文章:
- 运算符+ 的规范实现涉及额外的移动构造函数
- 如何为具有私有成员的派生类实现移动构造函数
- 在一个微不足道的可复制结构中,移动语义应该实现吗?
- std::sort 一个实现了移动构造函数的类
- 有没有办法实现移动消除
- 实现标记联合的移动构造函数
- 将函数及其实现移动到与主文件不同的文件(.hpp 和 .cpp)时,性能会受到很大影响
- 在deque实现中将1/2一个向量移动到另一个向量
- 如何使用继承(抽象基类)实现移动构造函数和移动赋值运算符
- 无法使用迭代器擦除矢量元素,矢量元素实现移动构造函数
- 交换对象不实现移动语义时的交换函数
- 是否可以实现std ::移动和清除功能
- 将执行从一个线程移动到另一个线程,以实现任务并行性并在将来调用
- 复制/移动操作符是否可以安全地用于实现复制/移动分配操作符
- 每次复制实现移动分配的非 const 对象时,我是否总是获得移动语义
- 使用 unique_ptr<> 实现移动构造函数和赋值
- 将类函数实现从 .h 移动到.cpp过程
- 如何实现大型非指针成员的移动构造函数
- 最佳C++移动构造函数实现实践
- Vector push_back移动实现