使用顶点阵列、四边形阵列来创建四边形网格
Using vertex array, quad array to create mesh of quad
我正在执行OpenGL
程序,需要创建一个用户定义的维度四元网格。
到目前为止,我所了解的是,我使用顶点数组来绘制四边形,这些四边形实际上将形成四边形网格。这是一个非常简单的概念,但我很难理解它
所以,如果我理解错误,请纠正我。
因此,如果用户想要创建4x4网格,将有16个四边形和64个顶点。因此,当用户定义网格的分辨率时(哦,顺便说一下,边界大小已经在一开始给出了),我创建了这64个顶点。
到目前为止我说得对吗?
我将与这些四头肌互动,重塑它们,形成一种山的形状。
当然,我需要更大的分辨率,可能是32x32,甚至更大,才能正确地显示这样的东西。
如果我理解正确,您需要制作一个四边形网格,从而创建一个大四边形。
对于4x4 来说,它看起来像这样
_ _ _ _
|_|_|_|_|
|_|_|_|_|
|_|_|_|_|
|_|_|_|_|
在这种情况下,您将只需要(4+1)x(4+1)个顶点,因此需要25个顶点。您可以唯一地指定每个四边形的四个顶点,尽管这对于网格来说是不必要的(并且浪费内存和速度),但最终可能会更难添加"山"功能(我猜有点像地形)。如果移动网格中间的一个顶点,则可能希望它为使用该顶点的所有四个四边形移动。如果四边形共享顶点(就像它们在网格中所做的那样),移动一个点将更改使用该点的所有四边形。
基本上,指定所有唯一的顶点并将它们连接为四边形。最好避免冗余。
此外,如果您正在学习OpenGL,请确保您不是使用固定函数管道进行学习(如果您有glBegin()
或glVertex3f()
,则表示您使用的是固定函数管道)。你不应该使用它的原因太多了(它已经有几十年的历史了,速度较慢,几乎没有那么灵活),但最大的原因可能是,如果你想做真正的图形,这是浪费时间。你必须学会如何使用可编程管道,而在你的脑海中拥有固定功能的管道习惯和思维方式只会让它变得更加困难
- OpenMP阵列性能较差
- 如何将三维尺寸不固定的三维阵列展平为一维阵列
- 当我的阵列太大时出现分段错误
- 四边形的 2D 旋转
- 位阵列上的快速AND运算
- OpenGL将纹理四边形渲染为(0,0)
- 阵列必须使用大括号封闭的初始器进行初始化
- 没有从阵列<float>到阵列<int>的可行转换
- C++动态安全 2D 交错阵列
- 将平面阵列重塑为复杂的特征类型
- 如何使用英特尔 PIN 捕获阵列的所有负载?
- 为什么我能够为阵列分配比计算机实际拥有的内存更多的内存
- 库特<<恩德尔;不适用于打印 2D 阵列
- 数组类 阵列的打印输出
- 从较小的阵列到较大的阵列的元素级转换
- 仅在大型阵列上出现合并排序分段错误
- 从阵列C++中删除重复项
- 阵列的大小在C++中是否灵活?
- 使用顶点阵列、四边形阵列来创建四边形网格
- OpenGL:从数据阵列生成2D纹理以显示在四边形上