0

立方体の 6 つの異なる面にロードしたい 6 つのテクスチャがあります。を使って新しいテクスチャを作ろうとしていGLGE.TextureCube();ます。そして、6つの画像すべてを、立方体にあるはずの顔にロードします

    mapTex = new GLGE.TextureCube();
    mapTex.setSrcNegX("models/map/negx.jpg"); // they are all 1024x1024
    mapTex.setSrcNegY("models/map/negy.jpg");
    mapTex.setSrcNegZ("models/map/negz.jpg");
    mapTex.setSrcPosX("models/map/posx.jpg");
    mapTex.setSrcPosY("models/map/posy.jpg");
    mapTex.setSrcPosZ("models/map/posz.jpg");

次に、Wavefrontオブジェクトにテクスチャを追加します。ただし、6 つのテクスチャ イメージのうち 1 つだけがマップされ、正しくマップされていないようです。

私の推測では、他の 6 つから新しいテクスチャ マップを作成するときに、それらを並べて並べて表示するため、新しいテクスチャ マップの座標がその obj ファイルに対応しなくなります。

GLGE で使用する 1 つのマップに 6 つのテクスチャを適切に結合するにはどうすればよいですか? または、メッシュの面にテクスチャを手動でロードする方法はありますか?

4

2 に答える 2

3

キューブ マップは、通常の UV (ST) テクスチャ座標が機能しないため、多少特殊です。キューブ マップは、その名前が示すように、立方体の面として配置された 6 つの二次テクスチャで構成されています。テクスチャ座標は、立方体の面上の絶対位置ではなく、立方体の中心から離れた方向であり、中心から指定された方向の光線が立方体に当たる位置は、その特定の面上のテクスチャの位置です。

Wavefront のように、3 番目の座標が 0 のテクスチャ座標を適用すると、立方体の面のスライス、つまり XY 平面と交差する部分のみが処理されます。キューブマップの動作を確認したい場合は、オブジェクトの滑らかな法線をテクスチャ座標として使用してください。

于 2011-09-12T11:53:18.460 に答える
0

GLGE.MAP_OBJ,GLGE.MAP_NORM または GLGE.MAP_ENV を試してみたいものに応じて、別のテクスチャ座標を使用する必要があります。

于 2011-09-13T10:56:10.653 に答える