私は OpenGL を初めて使用し、現在、それぞれが異なるテクスチャを持つ 4 つの面を持つ立方体をレンダリングしようとしています。
ご存知のように、顔の種類ごとに個別のテクスチャを使用すると、メモリが大量に消費され、アプリケーションが遅くなります。
現時点では、スプライトにテクスチャ シートを使用しようとしています。各テクスチャが 16x16 ピクセルで、256 個のスプライトが正方形 (16x16) に配置されたグラフィック ファイルがあります。
そんなこと知ってる
GL11.glTexCoord2f(1.0f, 0.0f);
GL11.glVertex3f(1.0f, 1.0f, 1.0f);
GL11.glTexCoord2f(0.0f, 0.0f);
GL11.glVertex3f(0.0f, 1.0f, 1.0f);
GL11.glTexCoord2f(0.0f, 1.0f);
GL11.glVertex3f(0.0f, 0.0f, 1.0f);
GL11.glTexCoord2f(1.0f, 1.0f);
GL11.glVertex3f(1.0f, 0.0f, 1.0f);
スプライト シート全体を含む四角形がu
表示されるので、1.0f 未満にする必要がありますv
。glTexCoord2f
今必要なのは、テクスチャ内の任意のスプライト IDのu
とを計算する数式です。v
テクスチャ ビットマップでは、ID は次のようになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
17 18 16 20 21 22 23 24...
そして、これらの ID のいずれかに対してu
andが必要です。v
最後の部分はあまり説明されていないので、必要に応じてより詳しく説明します。
前もって感謝します!