Haskell を使用して、OpenGL に与えられる特定の幅の三角形化された正方形の地形を手続き的に生成しようとしています。
実際に手続き的に生成されるのは高さだけですが、これはまったく難しいことではありません。ランダム関数を使用して[[GLfloat]]
、高さの行を表す を作成するだけです。
次に、heightsToCoords
を受け取り、各頂点の x、y、z 座標を含む [[GLfloat]]
を返す関数もあります。[GLfloat]
したがって、 を呼び出すとheightsToCoords [[0, 1], [1, 0]]
、返されます
[0, 0, 0,
1, 1, 0,
0, 1, 1,
1, 0, 1]
私が抱えている問題は、データを OpenGL に取得することです。OpenGL では、(少なくとも私のセットアップでは) 各面を三角測量する必要があり、私が持っているのはポイントだけです。面を作成する方法がわかりません。
このデータを点のリストから面のリストに変換するにはどうすればよいでしょうか? 法線と頂点の順序を無視します。