Android で地球儀を描画しようとしています。これには OpenGL を使用します。ただし、理解しやすくするために、単純な 3D 立方体を作成することから始めます。Blender を使用して 3D オブジェクト (キューブ) を作成し、ラップを解除してテクスチャ座標 (vt) を取得した後、それを .obj ファイルとしてエクスポートします。問題は、8 つの異なる頂点と 9 つの異なるテクスチャ座標を取得することです。
v 1.000000 -1.000000 -1.000000 V 1.000000
-1.000000 1.000000
V -1.000000 -1.000000 1.000000
V -1.000000 -1.000000 -1.000000 V 1.000000 1.000000 -1.000000 V 0.99999.0000 -10000 -100000000-000000000000-0000000000-0000000000-0000000000-000 1.000000 VT -1.000000 -1.000000 VT -1.000000 0.000000 VT 0.000000 1.000000 VT 1.000000 1.000000 VT 1.000000 0.000000 VT -1.000000 1.000000 VT 1.000000 -1.000000
したがって、頂点の位置に一致するようにテクスチャ座標の位置を再配置することを不可能にする、インデックスの実際のめちゃくちゃなセットアップも取得します。
f 5/1 1/2 4/3
f 5/1 4/3 8/4
f 3/1 7/5 8/6
f 3/1 8/6 4/7
f 2/1 6/5 3/4
f 6/7 7/1 3/2
f 1/1 5/5 2/4
f 5/7 6/1 2/2
f 5/5 8/8 6/1
f 8/1 7/2 6/9
f 1/1 2/2 3/3
f 1/1 3/3 4/4
1つの頂点が頂点とテクスチャ座標の両方で構成されているため、インデックスに1つの配列しか使用できないことがわかりました。そのため、v/vt 配列の 1 つを少し再配置する必要があります。しかし、vt (位置 1) を位置 5 (面の最初の行) に移動すると、インデックス配列全体に移動するためにもう一度移動する必要があるため、できません。
基本的に、これはプログラム「Blender」の問題なのか、それとも適用できる解決策があるのか 疑問に思います。