2012-04-11 65 views
3

如果我创建一个简单的应用程序,我可以在平原上飞行,我只能看到一些平原。引擎仅在相机周围呈现一定的半径。一切超出了背景颜色。所以感觉就像在迷雾中我的视线范围只有几米。Java3d。如何增加视线范围?

如何增加视距?

回答

0

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

gluPerspective(fieldOfViewY, aspect, near, far); 

远参数是你在找什么。 OpenGL比基于CPU的绘图引擎更有效率,因为它使用GPU。这里找到

+0

Java3D正在使用GPU,不是吗?但它封装了底层OpenGL和DirectX接口的功能,因此需要大量时间才能通过Java3D-API提供这些接口的新功能。 – 2012-04-11 15:48:48

1

很抱歉,如果这似乎有点晚了,但我要澄清供将来参考最好的答案是不完全正确的。

setFrontClipDistance是某事未呈现为你靠近了点吧,默认情况下 这个数值为.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);