2011-09-12 8 views
0

私はJavaの3dアプリケーションがあり、このアプリケーションは私のシーンにOBJファイルをロードします。このモデルにどのようにテクスチャ(jpgファイル)を割り当てることができますか?java3dのロードされたOBJファイルにテクスチャを割り当てる方法

Sphere sphere = new Sphere(Radius, Primflags, Appearance); 

しかし、ロードし、私はOBJファイル追加したとき:

Scene scene = getSceneFromFile("OBJ file"); 
myBranchGroup = scene.getSceneGroup(); 
を私は原始的なJavaオブジェクト(例えば球)にテクスチャを割り当てたいとき、私は以下を使用し、より正確に

2番目のケースでは、テクスチャを割り当てる方法が見つかりません。私はどうしたらいいですか?

答えて

0

IIRCテクスチャを適用するShape3Dノードをブランチグループから(setAppearance(...)に)コールする必要があります。 getChild(index)などを使用してください。子を再帰的に反復することができます。ブランチグループに実際に他のグループが含まれている可能性があるので、グループツリーの下にシェイプを見つけることができます。

また、AlternateAppearanceオブジェクトをブランチグループに追加することができます。

1

objファイルを作成した、またはファイルを読み込めたプログラムを使用する必要があります。ペイントして、そのファイルをエクスポートします。あなたがシーンにモデルを割り当てる前に、そして、その後のいずれかの方法

static TextureLoader loader = new TextureLoader("C:\\Users\\Sawyera\\Desktop\\Paint Layer 1.jpg", 
"RGP", new Container()); 
static Texture texture = loader.getTexture(); 

外それに

texture.setBoundaryModeS(Texture.WRAP); 
texture.setBoundaryModeT(Texture.WRAP); 
texture.setBoundaryColor(new Color4f(0.0f, 1.0f, 0.0f, 0.0f)); 
TextureAttributes texAttr = new TextureAttributes(); 
texAttr.setTextureMode(TextureAttributes.MODULATE); 
Appearance ap = new Appearance(); 
ap.setTexture(texture); 
ap.setTextureAttributes(texAttr); 
int primflags = Primitive.GENERATE_NORMALS 
    + Primitive.GENERATE_TEXTURE_COORDS; 
    ObjectFile loader = new ObjectFile(ObjectFile.RESIZE); 

をこのコードを追加し、これを追加します。 3Dモデルvarribleがモデルと呼ばれると仮定すると、

model.setAppearance(ap); 
関連する問題