[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. */