2020년 7월 1일 수요일

DirectX - 직교투영

Project Matrix 를 처리하는 방법에는 직교투영과 원근투영이 있다. Tutorial 4 에서 본 것은 원근투영이다. 이번엔 직교투영을 살펴보자.

여기에 들어오는 벡터는 카메라 좌표계로, <x, y, z, 1> 이라고 생각하자. 그리고 계산해보면

$<\frac{l+r-2x}{l-r},-\frac{t+b-2y}{t-b},\ \frac{y-zn}{zf-zn},\ 1>$<l+r2xlr,t+b2ytb, yznzfzn, 1>

이렇게 된다. x, y, z 는 화면에 출력되기 위해선 범위 안에 있어야한다. 대표로 x 를 살펴보자. x 의 최솟값은 l, 계산하면 변환된 x 값은 -1이 나온다. 최댓값은 r, 계산하면 1 이 나온다. 즉 -1~1 로 정규화가 되었음을 알 수 있다. 이 때 y 값은 t < b 일 경우 음수라는 점에 주의하자.

이렇게 계산할 때 z 값은 x, y 에 영향이 없다. 그래서 원근감 있게 그리기가 힘들다. 앞에서 본 원근투영은 z 값과의 관계가 컸다는 것을 생각하자.

댓글 없음:

댓글 쓰기

List