1

我正在做OpenGL程序,我需要创建一个用户定义的尺寸四边形网格。

据我目前了解的是,我使用顶点数组来绘制实际上将形成四边形网格的四边形。这是一个非常简单的概念,但我很难理解它。

因此,如果我理解不正确,请纠正我。

因此,如果用户想要制作 4x4 网格,则将有 16 个四边形和 64 个顶点来放置它们。因此,当用户定义网格的分辨率时(哦,顺便说一下,边界大小已经在开头给出),我创建了这 64 个顶点。

到目前为止我是否正确?

我将与这些四边形进行交互并重新塑造它们以形成山的形状。

当然,我需要更大的分辨率,可能是 32x32 甚至更大才能正确显示这样的东西。

4

1 回答 1

0

如果我理解正确,您想要制作一个四边形网格,然后再创建一个大四边形。

对于 4x4,它看起来像这样

 _ _ _ _
|_|_|_|_|
|_|_|_|_|
|_|_|_|_|
|_|_|_|_|

在这种情况下,您只需要 (4+1)x(4+1) 个顶点,因此需要 25 个顶点。您可以唯一地指定每个四边形的四个顶点,尽管除了对网格来说是不必要的(并且浪费内存和速度)之外,您最终可能更难添加“山”功能(类似于我的地形)猜测)。如果您在网格的中间移动一个顶点,您可能希望它为使用该顶点的所有四个四边形移动。如果您让四边形共享顶点(就像它们在网格中所做的那样),则移动一个点将更改使用该点的所有四边形。

基本上,指定所有唯一的顶点并将它们连接为四边形。最好避免冗余。

此外,如果您正在学习 OpenGL,请确保您没有使用固定功能管道进行学习(如果您有 aglBegin()或 a glVertex3f(),那么您正在使用固定功能管道)。你不应该使用它的原因太多了(它已经有几十年的历史了,它更慢,它几乎没有那么灵活),但也许最大的原因是如果你想做真正的图形是在浪费时间。您必须学习如何使用可编程管道,并且在您的脑海中拥有固定的功能管道习惯和思维方式只会使其变得更加困难。

于 2012-11-17T05:00:08.367 回答