Java3D的。如何增加视力范围?

时间:2012-04-11 15:32:20

标签: java java-3d

如果我创建一个简单的应用程序,我可以飞过平原,我只能看到一点平原。引擎仅在相机周围呈现一定的半径。超出的所有东西都出现在背景颜色中。因此感觉就像在雾中,我的视线范围只有几米。

如何增加视线范围?

3 个答案:

答案 0 :(得分:2)

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

更多数据在此处: http://download.java.net/media/java3d/javadoc/1.3.2/javax/media/j3d/View.html

答案 1 :(得分:1)

很抱歉,如果这看起来有点迟,但我想澄清以备将来参考,最佳答案并不完全正确。

setFrontClipDistance默认情况下,当您接近它时,某些内容会取消渲染 这个值是.01(米),因为当你离它10米时你不想要渲染东西,至少在大多数情况下是这样。

真正被问到的是如何增加最大渲染距离,并使用setBackClipDistance,默认设置为10(米)。如果将其设置为1000,则会将最大渲染距离增加到1000比例米。

假设您正在使用simpleUnivers对象,设置此方法的正确方法是访问instanced对象的View中的函数。

//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);

答案 2 :(得分:0)

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

gluPerspective(fieldOfViewY, aspect, near, far);

远程参数是您正在寻找的。 OpenGL比基于CPU的绘图引擎更有效,因为它使用GPU。