D3DXMatrixPerspectiveFovLH 함수에서...

2D, 3D, 다각형, 픽셀 등 게임의 그래픽 프로그래밍에 관한 포럼입니다.

Moderator: 류광

Locked
음냐

D3DXMatrixPerspectiveFovLH 함수에서...

Post by 음냐 »

D3DXMatrixPerspectiveFovLH 함수에서 프로젝션 메트릭스를 만들어서 셋을 하는데..

이 함수 인자중에서 4번째 값(보통 near값이라고 하더군요)에 대해서 잘 모르겠습니다.

예제보면 그냥 1.0f로 되어있던데.. 해석해보면 가까이있는 뷰프레인 z값이라고 하는데 ㅡㅡ;;

정확히 어떤 용도인지와 어떤식으로 값을 써야 하는지 알려주시면 감사하겠습니다. :D
myevan
Posts: 1314
Joined: 2003-03-04 10:21
Contact:

Post by myevan »

near_z 는 화면깊이 중 앞쪽을 얼마나 짜를것인가
far_z 는 화면깊이 중 뒤쪽을 얼마나 짜를것인가
입니다.

이런게 존재하는 이유는
z버퍼 정밀도 문제 때문입니다.

16비트를 사용할 경우 near_z와 far_z를 2의 16제곱, 대략 6만 5천가량 쪼개진
범위의 정밀도를 갖게 됩니다.
그렇기때문에 괜시리 범위가 넓어지면; 근접한 폴리곤끼리 겹쳐져서 사라진다던지; 깜박인다던지
하는 문제가 발생하기때문에 현재 카메라와 중심물체와의 거리에 다라
near_z와 far_z를 적절히 계산해주어야 합니다.

또한 near_z멀경우.. 가까운곳 물체가 짤린다던지 하는 문제도 발생하죠 -_-)~
빗자루네 http://www.myevan.net >_<b
음냐

감사합니다. ^^

Post by 음냐 »

음~ 대충 어떤 의미인지 알겠네요..

그런데.. 제가 아직 공부하는 중이라서.. 대략 어떻게 값을 잡아야 할지 난감하네요.

기본으로 near_z를 1.0f로 하고 far_z를 2000.0f 정도로 잡고나서..

카메라가 멀어질 수록 이 두 값을 변화시켜주면 되는건가요? ^^;;; :o
myevan
Posts: 1314
Joined: 2003-03-04 10:21
Contact:

Post by myevan »

3d플밍의 시작은;
부동소숫점인만큼;;
기준치를 정하는게 좋은데요;
기준치 사각형을 하나 그려보고 (1.0 이라던지, 10.0 이라던지.. 100.0 이라던지 원하시는 사이즈로... )
fov값 정하고 (90도, 45도 등등 게임에 어울리는 각도로..)
자기가 보기에 기준 사각형이 이쁘게 나오는;;
카메라 거리를 결정하신후;
near값이랑 far값 적절히 결정하시면 됩니다.
(맵에디터라면 정밀도 떨어지더라도 쫌더 멀리 많이 보여야 할테고, 실제 겜이라면
정밀도를 높여주어야 겠죠)

참고로
저의 경우는 테스트 프로그램 작성할때는
오른손좌표계 z축 위로
fov=45.0
aspect=1.3
near=50.0
far=2500.0
eye(180, -240, 240) at(0, 0, 0) up(0, 0, 1)
1m=100.0
를 좋아합니다만~
실제 겜제작할때는 소숫점 이상 단위가 너무 커서 보기 안 좋더라구요 ㅠ_ㅠ)~

상대적인 값이니 자기에게 맞는 수치를;
여러번 실험을 통해 정하시기 바랍니다~
빗자루네 http://www.myevan.net >_<b
Locked