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

[Java3Djp:00121] Re: SimpleUniverseで表示できる範囲



〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
れ!踊れ!踊れ!踊れ!踊れ!踊れ!踊れ!踊れ!踊れ!踊れ!踊れ
踊れ!踊れ                    れ!踊れ!踊
!踊れ!踊   [チキまん関西] 1月20日創刊   踊れ!踊れ!
れ!踊れ!  http://www.mansionnavi.com/mag.html !踊れ!踊れ
踊れ!踊れ                    れ!踊れ!踊
!踊れ!踊れ!踊れ!踊れ!踊れ!踊れ!踊れ!踊れ!踊れ!踊れ!
〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓

>ちなみに、私も通常にツリーを組んでViewを利用していますが、初期値はかなり
>小さく、自動的に更新されないようなので、オブジェクトを追加する毎に空間範囲
>から適当な値を設定しています。

私は横着をしてモデルの方を±0.5程度の大きさにscalingするようにしてしまいました。

>Backgrounにも範囲指定があるなど、ある意味徹底はしているのですが、パフォー
>マンス影響ないような場合には、以下のようにDouble.MAX_VALUEを利用するのも
>良い方法のようですね。
>
>    setBounds(new Point3d(), Double.MAX_VALUE);

こんな方法もあるのですね。

サンプルの ConicWorld や PickTestBounds などを参考にしているのですが、今は

      BoundingSphere bounds =
        new BoundingSphere(new Point3d(0.0, 0.0, 0.0), 100.0);

でboundsを生成して、その同じboundsをlightの範囲に指定したり、

      light =
        new DirectionalLight(
        true,
        new Color3f(0.7f, 0.7f, 0.7f),
        new Vector3f(0.0f, 0.0f, -1.0f));
      light.setInfluencingBounds(bounds);

マウスの影響範囲に指定したりしています。

      MouseRotate behavior = new MouseRotate(zscale);
      zscale.addChild(behavior);
      behavior.setSchedulingBounds(bounds);

      MouseZoom behavior2 = new MouseZoom(zscale);
      zscale.addChild(behavior2);
      behavior2.setSchedulingBounds(bounds);

      MouseTranslate behavior3 = new MouseTranslate(zscale);
      zscale.addChild(behavior3);
      behavior3.setSchedulingBounds(bounds);
------------------------------------------------------------------
遠藤靖之 (えんどう やすゆき) <yasuyuki@xxxxxxxxxx>
http://www.freepage.total.co.jp/jfriends/ (Java互助会ホームページ)
株式会社タイムインターメディア 情報通信サービス部 TEL 03-5362-9009
〒162-0065 新宿区住吉町3-11 新宿スパイアビル8F    FAX 03-5362-9008