次の行を使用して、トーラスの 3D モデル (obj ファイル) をプログラムに読み込みます。
Shape3D torus=null;
Scene t1 = getSceneFromFile("Some local path\torus.obj");
次に、次のコードを使用してシーンからモデルを取得します。
BranchGroup branchGroup = t1.getSceneGroup();
torus = (Shape3D) branchGroup.getChild(0);
次のコードは、イメージをテクスチャとして設定し、そのテクスチャを Appearance オブジェクトに適用します。
TextureLoader textureLoader=new TextureLoader("Another local path\myImage.jpg",null);
ImageComponent2D image=textureLoader.getImage();
Texture2D texture=new Texture2D(Texture.BASE_LEVEL,Texture.RGBA,image.getWidth(),image.getHeight());
texture.setImage(0, image);
Appearance app = new Appearance();
app.setTexture(texture);
torus.setAppearance(app);
コードを実行すると、トーラス モデルは正しく読み込まれますが、テクスチャが正しく割り当てられません。より正確には、3D モデル全体が、テクスチャとして画像ではなく単一の色を持っています。言及された色は、画像の左下にあるピクセルの色です。
解決策は何ですか?前もって感謝します。