-
카테고리
-
세부 분야
게임 프로그래밍
-
해결 여부
미해결
w로 나눠 주는건 그냥 규칙인 건가요?
22.03.12 00:03 작성 조회수 177
0
좌표가 (x,y,z,w)가 있다고 했을 때 나중에 다음 단계로 넘어가게 될 때, 즉 rasterizer 단계로 넘어가게 될 때
(x/w, y/w, z/w, w/w)
이런식으로 다 w값으로 나눠주고 있다고 하셨는데
w값으로 나눠주는 건 그냥 규칙인 건가요?
변환행렬 시간에 z값이 깊이 값이 되는 건 행렬에서 배웠는데
w로 나눠주는건 생소한 부분인거 같아서요.
답변을 작성해보세요.
2
Young Jin
2022.03.19
애초에 우리가 사는 세상은 3차원 공간인데 SRT 좌표변환(scale, rotation, translation)등에
왜 3x3 행렬(3차원 행렬)이 아니라 4x4 행렬(4차원 행렬)을 사용할까 고민해 볼 수 있어요.
가장 큰 이유는 3차원 행렬 곱으로는 translation을 할 수가 없기 때문입니다.
왜냐하면 아무리 원점에 해당하는 (0,0,0) 벡터값에 행렬 곱을 적용해도
(0,0,0)으로 고정되게 돼요. 그래서 하나의 차원을 추가해서 행렬 계산을 하게 된거죠.
어떻게 보면 계산 트릭이라고 볼 수도 있겠네요.
Geometry Processing 스테이지를 지나서 Rasterization 스테이지에 진입할 때는
다시금 원래의 자연스런 형태의 데이터로 변환해주는 거라고 보시면 될 것 같습니다.
그래서 4번째 좌표값인 w을 1로 normalize하는 것입니다.
답변 1