如果我創建一個簡單的應用程序,我可以在平原上飛行,我只能看到一些平原。引擎僅在相機周圍呈現一定的半徑。一切超出了背景顏色。所以感覺就像在迷霧中我的視線範圍只有幾米。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);
遠參數是你在找什麼。 OpenGL比基於CPU的繪圖引擎更有效率,因爲它使用GPU。這裏找到
Java3D正在使用GPU,不是嗎?但它封裝了底層OpenGL和DirectX接口的功能,因此需要大量時間才能通過Java3D-API提供這些接口的新功能。 – 2012-04-11 15:48:48
很抱歉,如果這似乎有點晚了,但我要澄清供將來參考最好的答案是不完全正確的。
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);
這就是我一直在尋找的東西。謝謝 – 2012-08-28 13:22:11