使用顶点数组,四元数组创建四边形网格

时间:2012-11-17 04:20:54

标签: c++ arrays opengl mesh vertex

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

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

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

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

到目前为止我是否正确?

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

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

1 个答案:

答案 0 :(得分:0)

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

对于4x4

,它看起来像这样
 _ _ _ _
|_|_|_|_|
|_|_|_|_|
|_|_|_|_|
|_|_|_|_|

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

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

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