[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Java3Djp:01231] Re: Billboard



┏━━◇ 今週のDNS一行広告は【 みなくる商店街/音楽CD検索 】 ◇━━┓

┣ 世界の巨大CD店の横断検索でどんなCDも探せます! http://kensakucd.com/
┣ リンクを貼って簡単副業・高収益!→ http://www.minacle.com/stuff.html
┣ メーリングリスト・メールマガジン無料開設! http://www.dns-ml.co.jp/

┗━━◇━━━━━━━━━━━━━━◇━━━━━━━━━━━━━◇━━┛

小池<わきから口出し>です。

At 22:02 00/01/06 +0900, Manabu Uchino wrote:
> >
> > オブジェクトごとに2つのTransformGroup を親にするようにして、
> >
> >         (T) 移動を適用する TransformGroup
> >           |
> >  <B>---->(T) 回転を適用する TransformGroup
> >           |
> >         (S) Shape3D など
> >
> > こんな風にしてみてください。<B> は Billboard です。
> 
> やってみましたが、同じです。
> やはりその場では回らず、視点を基準に回転しているように見えます。

横から眺めていて、なんだかちょっとわからなくなって
しまいました。ちょっと確認させてください。

「その場では回らず、視点を基準に回転」というのは、
その物体が、視点を中心とした円の上を移動していると
いうイメージでしょうか?

普通にBillboardを使っただけでは、そうはならない気が
しますが・・。視点ではなく、別の点を中心にしていると
いうことなら、回転用のTransformGroupの下でさらに移動が
行われているのかも。

気になって、Java3DのBillboardデモをちょっといじって
試してみました。

Billboardの対象のTransformGroup(回転用ということですね)
の直上に、移動用のTransformGroupを加えてみました。
これで、上の図と同じ構造です。

X軸方向に少し位置をずらしてみたところ、ちゃんとその位置で
回転している(自転している)ように見えます。
問題ないようです。

以下が変更点です。参考までに。

----Bboard.java line 99----
	// Using billboard behavior on text3d

	TransformGroup bbTransY = new TransformGroup();
	bbTransY.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
	bbTransY.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
	Billboard bboardY = new Billboard( bbTransY );
	objTrans.addChild( bboardY );
	bboardY.setSchedulingBounds( bounds );
	bboardY.setAlignmentAxis( 0.0f, 1.0f, 0.0f);
//	objScale.addChild( bbTransY );         // コメントアウト
Transform3D bbMat = new Transform3D();         // 追加
bbMat.set(new Vector3d(1, 0, 0));              // 追加
TransformGroup bbTransX = new TransformGroup();// 追加
bbTransX.setTransform(bbMat);                  // 追加
objScale.addChild(bbTransX);                   // 追加
bbTransX.addChild(bbTransY);                   // 追加

	bbTransY.addChild( textShape );
----Bboard.java----



/* written by Koike,T. */