인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

Inflearn Community Q&A

baljang's profile image
baljang

asked

[MMORPG Game Development Series with C++ and Unreal] Part 2: Game Mathematics and DirectX12

Skybox

w로 나눠 주는건 그냥 규칙인 건가요?

Written on

·

260

0

좌표가 (x,y,z,w)가 있다고 했을 때 나중에 다음 단계로 넘어가게 될 때, 즉 rasterizer 단계로 넘어가게 될 때
(x/w, y/w, z/w, w/w)
이런식으로 다 w값으로 나눠주고 있다고 하셨는데
 
w값으로 나눠주는 건 그냥 규칙인 건가요?
 
변환행렬 시간에 z값이 깊이 값이 되는 건 행렬에서 배웠는데
w로 나눠주는건 생소한 부분인거 같아서요.
 
 
DirectX게임수학

Answer 1

2

애초에 우리가 사는 세상은 3차원 공간인데 SRT 좌표변환(scale, rotation, translation)등에

왜 3x3 행렬(3차원 행렬)이 아니라 4x4 행렬(4차원 행렬)을 사용할까 고민해 볼 수 있어요. 

가장 큰 이유는 3차원 행렬 곱으로는 translation을 할 수가 없기 때문입니다.

왜냐하면 아무리 원점에 해당하는 (0,0,0) 벡터값에 행렬 곱을 적용해도 

(0,0,0)으로 고정되게 돼요. 그래서 하나의 차원을 추가해서 행렬 계산을 하게 된거죠.

어떻게 보면 계산 트릭이라고 볼 수도 있겠네요. 

Geometry Processing 스테이지를 지나서 Rasterization 스테이지에 진입할 때는

다시금 원래의 자연스런 형태의 데이터로 변환해주는 거라고 보시면 될 것 같습니다.

그래서 4번째 좌표값인 w을 1로 normalize하는 것입니다.

baljang님의 프로필 이미지
baljang
Questioner

그렇군요, 감사합니다! :)

baljang's profile image
baljang

asked

Ask a question