0

各面に異なるテクスチャの立方体を描画する必要がある Android 用のゲームを開発しています。

libgdx ゲーム開発フレームワークを使用して、このゲームを開発しています。

キューブを描画する私のコードは次のとおりです。

public void draw(GL10 gl) 
{
    Mesh cube_mesh  =   ModelLoaderOld.loadObj(Gdx.files.internal("data/cube.obj").read());
    cube_mesh.render(GL10.GL_TRIANGLES);}

今度は、この立方体に 6 つの異なるテクスチャをバインドします。これどうやってするの?

4

1 に答える 1

2

obj ファイルからキューブをロードするのではなく、コードでキューブを作成することを検討します。これにより、テクスチャ座標の生成を完全にカスタマイズできます。これは、効率的なソリューションを作成するために必要になる可能性が最も高いものです。

6 つのテクスチャを使用する代わりに、1 つのテクスチャだけを使用し、面ごとに異なる座標セットを指定します。各テクスチャ座標は、テクスチャ アトラス上の位置を指します。このようにして、1 つの大きなテクスチャ アトラスに複数のキューブ テクスチャを含めることもできます。テクスチャの切り替えが最小限に抑えられるため、この方法ははるかに効率的です。

各面が独自のテクスチャ座標セットを持つ立方体の場合、面ごとに 6 つのインデックスを持つ面ごとに 4 つの頂点が必要になります。つまり、合計 24 個の頂点と 36 個のインデックスです。

于 2012-07-24T11:22:03.007 に答える