강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

baljang님의 프로필 이미지
baljang

작성한 질문수

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12

Skybox

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

작성

·

299

0

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

퀴즈

객체 변환 계층 구조에서 자식 객체의 위치, 회전, 스케일은 무엇을 기준으로 정의될까요?

세계 좌표계

부모 객체의 지역 좌표계

카메라 좌표계

화면 좌표계

답변 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
질문자

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

baljang님의 프로필 이미지
baljang

작성한 질문수

질문하기