0

テクスチャ マッピングを使用して NeHe チュートリアル (Lesson06) の 1 つに取り組んでおり、コードを変更して、既に作成された 3D キューブで別のイメージを使用できるようにしようとしていました。コードを調べた後、コードが実際に画像ファイルを使用している唯一の場所は次のとおりです。

TextureReader.Texture image = null;
try {
    image = TextureReader.readTexture("nehe/dice1.png");
} catch (IOException e) {
    e.printStackTrace();
    throw new RuntimeException(e);
}

私が求めているのは、キューブ全体をカバーするために、1 つだけではなく 6 つの異なる画像をどのようにロードできるかということです。「ダイ」を作ろうとしています。1 から 6 までの画像があります。完全なコードを表示する必要がある場合は、http ://www.java-tips.org/other-api-tips で見つけることができます。 /jogl/texture-mapping-nehe-tutorial-jogl-port.html

4

1 に答える 1

1

各面を描画する前に、6 つの個別のテクスチャ ID を作成し、特定のテクスチャ ID にバインドする必要があります。テクスチャ ID を実際に作成する呼び出しは次のとおりです。

texture = genTexture(gl);

そして、その呼び出しに続くすべてのものは、実際にテクスチャを設定します。

アンラップされたサイコロを含む単一のテクスチャをロードするか、単純に 1 から 6 までの面を 1 行に含む方が簡単です。次に、正しいテクスチャ座標を指定して、各面のテクスチャの適切な部分を選択するだけです。

顔のテクスチャ座標が から(0,0)に移動する代わりに、 が 1 から 6 の間の doubleである からに(1,1)移動する可能性があります。この場合、画像を水平に並べます。((num-1.0)/6.0, 0)(num/6.0, 1)num

于 2012-11-07T04:06:29.820 に答える