3

如果我创建一个可以飞越平原的简单应用程序,我只能看到平原的一小部分。引擎仅在相机周围的特定半径内渲染。超出的一切都以背景颜色显示。所以感觉就像在雾中,我的视线范围只有几米。

怎么增加这个视野?

4

3 回答 3

2
javax.media.j3d.View.setFrontClipDistance(double distance)

在这里找到更多数据:http: //download.java.net/media/java3d/javadoc/1.3.2/javax/media/j3d/View.html

于 2012-04-11T15:37:00.267 回答
2

抱歉,如果这似乎有点晚了,但我想澄清一下以供将来参考,最佳答案并不完全正确。

setFrontClipDistance 是当你靠近它时某些东西不渲染的点,默认情况下,这个值是 0.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);
于 2013-12-18T07:06:22.200 回答
0

如果你打算开发一些严肃的东西,你不应该坚持 Java-3D。尝试使用 OpenGL。OpenGL自带一个功能:

gluPerspective(fieldOfViewY, aspect, near, far);

far 参数就是您要查找的参数。OpenGL 比基于 CPU 的绘图引擎更高效,因为它使用 GPU。

于 2012-04-11T15:34:15.467 回答