2012-04-11 1 views
3

私がプレーン上を飛ぶことができる単純なアプリケーションを作成した場合、私は平野の少ししか見ることができません。エンジンは、カメラの周りの特定の半径でのみレンダリングされます。それ以外のものは背景色で表示されます。だから私の視界は数メートルしかない霧の中にいるように感じます。Java3d。どのように視界の範囲を広げる?

どのように視力範囲を広げますか?

答えて

0

深刻な開発を計画している場合は、Java-3Dに固執するべきではありません。 OpenGLを使用してみてください。 OpenGLには関数があります:

gluPerspective(fieldOfViewY, aspect, near, far); 

farパラメータはあなたが探しているものです。 OpenGLは、GPUを使用するため、CPUベースの描画エンジンよりも効率的です。ここで見つける

+0

Java3DはGPUを使用していますか?しかし、それは基礎となるOpenGLとDirectXインタフェースからの関数をカプセル化するので、これらのインタフェースの新機能がJava3D-APIを通じて利用可能になるまでにはかなりの時間が必要です。 –

1

申し訳ありませんが、これは少し遅れているようだが、私は今後の参考のために最良の答えを明確にしたい場合は、正確に正しいではありません。

setFrontClipDistanceデフォルトでは、近い値になると何かがレンダリングされない点です。 この値は、10メートルのところで何かがレンダリングされないようにするため、0.01(メートル)です。少なくともほとんどの場合、

真に求められるのは、最大レンダリング距離を増やす方法です。これはsetBackClipDistanceで行われ、デフォルトは10(メートル)に設定されています。 1000に設定すると、最大レンダリング距離が1000のスケールメーターに増加します。

これを設定する適切な方法は、simpleUniversオブジェクトを使用していると仮定すると、インスタンス化されたオブジェクトのビュー内の関数にアクセスすることです。

//Create a Simple Universe object using a 3d canvas object you have 
SimpleUniverse simpleU = new SimpleUniverse(Your3dCanvasHere); 

//add in your compiled branch group 
simpleU.addBranchGraph(YourBranchGroupHere); 

//Increase the render distance with setBackClipDistance 
simpleU.getViewer().getView().setBackClipDistance(1000); 
関連する問題