网格变形和VBO

时间:2010-10-27 15:12:51

标签: opengl 3d vbo

在我目前的项目中,我渲染了一系列以网格排列的基本立方体3D模型。这些3D瓷砖在游戏中形成了地牢层的墙壁,因此它们不是完美的立方体,但我特别注意确保所有边缘对齐并且一切都正确地拼接。

我对实现高度图变形很感兴趣,这似乎需要我手动变形3D图块的顶点,首先是通过升高或降低角,然后通过计算两个角之间的线和根据该行的高度移动所有顶点。看起来非常简单。

我目前的问题是:我正在使用OpenGL,它提供了一个名为VBO的优化,基本上(据我的理解)保存在GPU内存中的网格的静态副本以提高速度。我使用VBO进行渲染,因为我只使用了三种基本模型(L角,直墙和一个帽子,当它们不在L中相遇时连接墙壁)。如果我必须手动操作我的模型的顶点,似乎我必须更换每个瓷砖的VBO的内容,这几乎否定了使用它们的点。

在我看来,我可以使用简单的旋转和平移变换来实现类似的效果,但我无法弄清楚如何在不在瓷砖之间留下间隙的情况下进行。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

您可以在GPU上使用顶点程序。主要困难(如果我正确理解你的问题)是顶点程序必须依赖于全局或每顶点参数,并且每个参数的可用空间都非常有限。

如果没有更多细节,我只能建议您如何设置参数......