[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Java3Djp:00927] テクスチャの張り方。
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
朗報!! 糖尿・肝臓・腎臓・高血圧・便秘などでお悩みの方へ 応募者全員に
オリーゼ 1箱(60包入・3000円)無料(プレゼント)進呈!!送料600円
のみお客様ご負担。 まず、無料1箱を召し上り下さい。『商品を理解し納得』
して、お買い求め下さい。『よい結果だけ』をお客様へ。創業以来55年信頼の
通信販売をめざしています。製造直売のオリーゼ本舗からの提案です。
http://www.matsuronet.ne.jp/ori-ze/
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
ちょっと今までの話とそれますが、
テクスチャの張り方がよくわかりません。
Primitiveの場合は自動で座標を設定してくれるので簡単ですが、
Shape3Dの場合どう設定すればいいのでしょうか?
例えば、単純な四角形を書いてそれに張る場合、
Appearance ap = new Appearance();
Point3d[] vertices = new Point3d[4];
vertices[0] = new Point3d(1.0, 2.0, 0.0);
vertices[1] = new Point3d(-1.0, 2.0, 0.0);
vertices[2] = new Point3d(-1.0, 0.0, 0.0);
vertices[3] = new Point3d(1.0, 0.0, 0.0);
QuadArray geometry = new QuadArray(vertices.length,
GeometryArray.COORDINATES|GeometryArray.TEXTURE_COORDINATE_2);
geometry.setCoordinates(0, vertices);
Shape3D shape = new Shape3D(geometry,ap);
sceneGroup.addChild(shape);
TextureLoader tloader
= new TextureLoader( "earth.jpg", universe.getCanvas() );
Texture texture = tloader.getTexture();
TexCoordGeneration texGen = new TexCoordGeneration();
texGen.setPlaneS( new Vector4f( 1.0f, 0.0f, 0.0f, 0.0f ) );
texGen.setPlaneT( new Vector4f( 0.0f, 1.0f, 0.0f, 0.0f ) );
ap.setTexture( texture );
ap.setTexCoordGeneration( texGen );
という感じでやってみたんですが、うまく張れません。
そもそも、
texGen.setPlaneS( new Vector4f( 1.0f, 0.0f, 0.0f, 0.0f ) );
texGen.setPlaneT( new Vector4f( 0.0f, 1.0f, 0.0f, 0.0f ) );
の部分の座標の指定がよくわからないのですが…。
♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪
内野 学
mu621@xxxxxxxxxx
uchino@xxxxxxxxxx
http://www.biwa.ne.jp/~mu621/
♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪