物体の外見


物体の見かけを変える方法についてです。

テクスチャー / 半透明 / ワイヤーフレーム / 戻る / トップページ


テクスチャーの貼り方

物体にテクスチャーを貼るには Texture オブジェクトを使います。 Appearance オブジェクトに対して setTexture(Texture texture) メソッドで Texture オブジェクトを指定します。
 
Texture オブジェクトを生成するのに便利な com.sun.j3d.utils.image.TextureLoader クラスが用意されています。 このクラスは BufferedImage オブジェクト (JDK 1.2 から追加されたクラスです) や ファイル名で指定した画像ファイルを元に Texture オブジェクトを作ってくれます。
 
また、そのテクスチャーを貼り付ける Shape3D オブジェクトにはテクスチャー座標 を設定する必要があります。 Primitive の場合はコンストラクタの primflags に GENERATE_TEXTURE_COORDS を指定する事で自動的に設定してくれます。
	Texture texture=new TextureLoader("image/texture.gif",component).getTexture();
	
	Appearance appearance=new Appearance();
	appearance.setTexture(texture);
	Primitive primitive=new Sphere(1.0f,Sphere.GENERATE_TEXTURE_COORDS,appearance);
	
	// Immediate Mode では primitive.getShape() の返り値の Shape3D オブジェクトで描画する

半透明の物体の作り方

物体を半透明にするには Appearance オブジェクトに対して setTransparencyAttributes(TransparencyAttributes transparencyAttributes) メソッドで TransparencyAttributes オブジェクトを指定します。
 
TransparencyAttributes オブジェクトは 透明度を指定するオブジェクトです。 setTransparency(float transparency) メソッドで透明度を指定します。 transparency は 0.0〜1.0 の範囲で 1.0 が完全な透明を示します。
	TransparencyAttributes attr=new TransparencyAttributes();
	attr.setTransparency(0.5f);	// 半透明
	
	Appearance appearance=new Appearance();
	appearance.setTransparencyAttributes(attr);
	Primitive primitive=new Sphere(1.0f,appearance);
	
	// Immediate Mode では primitive.getShape() の返り値の Shape3D オブジェクトで描画する

ワイヤーフレームでの表示

物体をワイヤーフレームで表示するには Appearance オブジェクトに対して setPolygonAttributes(PolygonAttributes polygonAttributes) メソッドで PolygonAttributes オブジェクトを指定します。
 
PolygonAttributes オブジェクトは レンダリング方式などを指定するオブジェクトです。 setPolygonMode(int polygonMode) メソッドの引数に POLYGON_POINT,POLYGON_LINE,POLYGON_FILL のいずれかの定数を指定する事で物体の描き方を指定します。
	PolygonAttributes attr=new PolygonAttributes();
	attr.setPolygonMode(PolygonAttributes.POLYGON_LINE);	// ワイヤーフレームで表示
	
	Appearance appearance=new Appearance();
	appearance.setPolygonAttributes(attr);
	Primitive primitive=new Sphere(1.0f,appearance);
	
	// Immediate Mode では primitive.getShape() の返り値の Shape3D オブジェクトで描画する

戻る