2012-04-11 3 views
3

평원을 날 수있는 간단한 응용 프로그램을 만들면 평범한 부분 만 볼 수 있습니다. 엔진은 카메라 주변의 특정 반경에서만 렌더링됩니다. 그 이상인 것은 모두 배경색으로 나타납니다. 그래서 내 안개가 2 미터 밖에 안되는 안개 속 에서처럼 느껴집니다.Java3d. 시야 범위를 넓히는 방법?

어떻게 시력 범위를 늘릴 수 있습니까?

답변

0

진지한 것을 개발하려는 경우 Java-3D를 고수하지 않아야합니다. OpenGL을 사용해보십시오. OpenGL은 함수와 함께 제공됩니다 :

gluPerspective(fieldOfViewY, aspect, near, far); 

far 매개 변수는 사용자가 찾고있는 것입니다. OpenGL은 GPU를 사용하기 때문에 CPU 기반 드로잉 엔진보다 훨씬 효율적입니다. 여기

+0

Java3D는 GPU를 사용하고 있습니까? 그렇습니다. 그러나 기본 OpenGL 및 DirectX 인터페이스의 기능을 캡슐화하므로 Java3D-API를 통해 이러한 인터페이스의 새로운 기능을 사용할 수있을 때까지 상당한 시간이 필요합니다. –

1

죄송합니다.

setFrontClipDistance 당신이 그것으로부터 10 미터 떨어져있을 때 무언가 렌더링을 원하지 않기 때문에, 기본값으로 이 값은 .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);