私がプレーン上を飛ぶことができる単純なアプリケーションを作成した場合、私は平野の少ししか見ることができません。エンジンは、カメラの周りの特定の半径でのみレンダリングされます。それ以外のものは背景色で表示されます。だから私の視界は数メートルしかない霧の中にいるように感じます。Java3d。どのように視界の範囲を広げる?
どのように視力範囲を広げますか?
私がプレーン上を飛ぶことができる単純なアプリケーションを作成した場合、私は平野の少ししか見ることができません。エンジンは、カメラの周りの特定の半径でのみレンダリングされます。それ以外のものは背景色で表示されます。だから私の視界は数メートルしかない霧の中にいるように感じます。Java3d。どのように視界の範囲を広げる?
どのように視力範囲を広げますか?
javax.media.j3d.View.setFrontClipDistance(double distance)
その他のデータ: http://download.java.net/media/java3d/javadoc/1.3.2/javax/media/j3d/View.html
深刻な開発を計画している場合は、Java-3Dに固執するべきではありません。 OpenGLを使用してみてください。 OpenGLには関数があります:
gluPerspective(fieldOfViewY, aspect, near, far);
farパラメータはあなたが探しているものです。 OpenGLは、GPUを使用するため、CPUベースの描画エンジンよりも効率的です。ここで見つける
Java3DはGPUを使用していますか?しかし、それは基礎となるOpenGLとDirectXインタフェースからの関数をカプセル化するので、これらのインタフェースの新機能がJava3D-APIを通じて利用可能になるまでにはかなりの時間が必要です。 –
申し訳ありませんが、これは少し遅れているようだが、私は今後の参考のために最良の答えを明確にしたい場合は、正確に正しいではありません。
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);
これは私が探していたものです。ありがとう –