2

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

我对实现高度图变形感兴趣,这似乎需要我手动变形 3D 瓷砖的顶点,首先通过升高或降低一个角,然后通过计算两个角之间的线并移动所有基于该线的高度的顶点。看起来很简单。

我当前的问题是:我正在使用 OpenGL,它提供了一种称为 VBO 的优化,它基本上是(据我所知)为了速度而保存在 GPU 内存中的网格的静态副本。我使用 VBO 进行渲染,因为我只使用三个基本模型(L 角、直墙和当它们不在 L 中相遇时连接墙的盖帽)。如果我必须手动调整模型的顶点,似乎我必须替换每个图块的 VBO 内容,这几乎否定了使用它们的意义。

在我看来,我或许可以使用简单的旋转和平移变换来实现类似的效果,但我不知道如何做到这一点,而不会在瓷砖之间留下空隙。有什么想法吗?

4

1 回答 1

2

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

没有更多细节,我只能建议你聪明地设置参数......

于 2010-10-27T18:52:11.567 回答