平野の上を飛ぶことができる単純なアプリケーションを作成すると、平野が少ししか見えなくなります。エンジンは、カメラの特定の半径でのみレンダリングします。それを超えるものはすべて背景色で表示されます。だから、視界が数メートルしかない霧の中にいるような気がします。
どうすればその視野を広げることができますか?
javax.media.j3d.View.setFrontClipDistance(double distance)
詳細データはこちら: http://download.java.net/media/java3d/javadoc/1.3.2/javax/media/j3d/View.html
これが少し遅れているように思われる場合は申し訳ありませんが、将来の参考のために明確にしたいのですが、最良の答えは正確ではありません.
setFrontClipDistance は、何かに近づくとレンダリングが解除されるポイントです。デフォルトでは、この値は .01(メートル) です。これは、少なくともほとんどの場合、そこから 10 メートル離れたときに何かをレンダリング解除したくないためです。 .
本当に求められているのは、最大レンダリング距離を増やす方法であり、それは 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);
何か深刻なものを開発することを計画している場合は、Java-3Dに固執するべきではありません。OpenGLを使用してみてください。OpenGLには次の機能があります。
gluPerspective(fieldOfViewY, aspect, near, far);
farパラメータはあなたが探しているものです。OpenGLは、GPUを使用するため、CPUベースの描画エンジンよりもはるかに効率的です。