2012-04-11 82 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);