私は現在、シェイプ WebGL (具体的にはこの場合は球体) のレンダリングに関するこのチュートリアルを進めており、球体上の各ポイントの生成の背後にある数学を理解しています。ただし、チュートリアルでは、作成者はすべての頂点を見つける方法と、球体を構成するすべての正方形を生成する方法を定義しています。
チュートリアルで行われていることから、いくつかのことが不明です。まず、パラメトリック方程式によって生成された頂点が、生成されている正方形 (三角形のストリップ) にどの程度正確に接続されているか? 生成された頂点を使用するだけで同じことを行う前に、単純な javascript と HTML5 で必要最小限のプログラムを作成したので、三角形ストリップと組み合わせて使用する必要がある方法と理由がわかりません。もう 1 つの混乱点は、特に正方形を生成する関数に関するものです。
var indexData = [];
for (var latNumber = 0; latNumber < latitudeBands; latNumber++) {
for (var longNumber = 0; longNumber < longitudeBands; longNumber++) {
var first = (latNumber * (longitudeBands + 1)) + longNumber;
var second = first + longitudeBands + 1;
indexData.push(first);
indexData.push(second);
indexData.push(first + 1);
indexData.push(second);
indexData.push(second + 1);
indexData.push(first + 1);
}
}
各正方形の最初の点 (左上隅の点) を生成するには、次のようにします。 var first = (latNumber * (longitudeBands + 1)) + longNumber;
各ステップで緯度線の数に経度線の総数を掛ける必要がある理由がわかりません (完全に折り返すには 1 を加えます)。
両方の関数のコードは、チュートリアルの下部にあります。このような場合のトライアングル ストリップの使用に関する一般的な説明も参考になります。