将相机放置在世界空间的不同位置

时间:2014-04-06 05:13:57

标签: opengl 3d camera mesh glm-math

当相机在世界空间的两个不同位置时,有没有办法操纵相机的视野?

例如,在第一个位置,多个网格部分在原点(相机看到的地方)的不同方向上进行变换,直到它们形成一个网格。这是通过在加载vbo中的顶点之前调用glm :: translate(),glm :: rotate(),e.​​t.c来完成的。

在第二个位置,我想要转换整个网格(从上面)。由于我已经将所需的所有内容加载到vbo中并绘制了我的模型,因此我无法绘制新的变换网格。有没有办法绘制我的新变换网格而不再将顶点加载到vbo中?

并且,如果我必须再次加载我的vbo,我该如何处理它,因为加载vbo取决于网格被分成多少部分。

1 个答案:

答案 0 :(得分:1)

将顶点数据加载到VBO并转换它们之间 nothing 彼此无关 - 像glm::translate()glm::rotate这样的东西不会对缓冲区内容产生任何影响 - 唯一改变一些矩阵。只要不应用某些转换,当你将数据上传到缓冲区时,你会将数据顶点,而其他人都没有。如果绘制对象(通过顶点着色器,在GPU上),则使用那些变换矩阵,这样就可以拥有移动对象和移动摄像机,而无需重新指定几何数据。

因此,在您的情况下,仅仅更改投影和视图矩阵就足够了,并在应用这些新矩阵的情况下再次绘制对象。