Dr.H

RSS
Sep 9

Papervision3d에서의 FoV 문제

보통 GL, DX 등의 카메라는 FoV를 고정시키고 카메라 객체를 만들지만, pv3d에서의 카메라의 FoV는 focus와 zoom, 그리고 view 평면의 높이로 정해지는 종속적인 속성이다. 아니었다.

단, focus는 카메라와 뷰 평면 사이의 거리다.

FoV와 focus, 평면 높이 사이의 관계는 간단한 삼각형으로 표현이 가능하다.

FoV, focus, view height의 관계

사실, 이 내용은 구글링하다가 나온 결과를 간략히 해석해놓은 것이다.원본을 찾는 대로 링크를 걸 것이다.

원본 : http://tartiflop.blogspot.com/2008/08/understanding-zoom-focus-and-field-of.html

원본의 글을 잘못 해석한것인지는 몰라도, fov와 zoom, viewport height는 위의 그림과같이 관련이 있으나, fov가 종속적 속성은 아니다. 정확히 말하면, zoom과 fov를 설정하면 종속적으로 focus가 설정된다.

pv3d의 소스코드 중, fov에 대한 setter function을 살펴보면,

this.focus = (h / Math.tan(vfov)) / this.zoom;

과 같은 코드가 보인다. 즉, 설정된 vfov(값으로 넘어온 fov를 변환한것, 위의 그림에서 α에 해당함.)와 zoom을 가지고 focus를 결정한다.

즉, DX, GL과 같이 pv3d 역시 fov를 고정하고 카메라를 만든다는 것이다.

(원문이 잘못된것인지 해석이 잘못된것인지, 이것 덕분에 한참을 삽질했다.)