我正在尝试使用 Haskell 以程序方式生成给定宽度的三角方形地形,以提供给 OpenGL。
唯一实际程序生成的是高度,这一点也不难,我只是使用随机函数创建一个[[GLfloat]]
,表示高度的行。
然后我还有一个函数,heightsToCoords
它接受[[GLfloat]]
并返回[GLfloat]
包含每个顶点的 x、y 和 z 坐标的 a。
所以如果我打电话heightsToCoords [[0, 1], [1, 0]]
,它会返回
[0, 0, 0,
1, 1, 0,
0, 1, 1,
1, 0, 1]
我遇到的问题是将数据获取到 OpenGL。OpenGL 需要对每个面进行三角剖分(至少在我的设置中),而我所拥有的只是点,我不确定如何创建面。
如何将这些数据从点列表转换为人脸列表?忽略法线和顶点的顺序。