3D 수학과 소프트웨어 래스터라이저 · 모델·뷰·투영과 원근 나눗셈 · 퀴즈
퀴즈: 좌표계와 투영
문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.
원근감은 파이프라인의 어느 단계에서 생깁니까?
- 투영 행렬을 곱할 때
- 뷰 행렬을 곱할 때
- 클립 좌표를 w 로 나눌 때
- 뷰포트 변환으로 픽셀 좌표를 만들 때
원근 투영 행렬의 마지막 행이 `(0, 0, -1, 0)` 인 이유는 무엇입니까?
- 깊이 값을 -1에서 1 사이로 맞추기 위해서다
- 결과의 w 성분이 카메라로부터의 거리가 되게 하려는 것이다
- 오른손 좌표계와 왼손 좌표계를 바꾸기 위해서다
- far 평면 밖의 정점을 잘라내기 위해서다
직교 투영과 원근 투영의 행렬 구조에서 결정적으로 다른 곳은 어디입니까?
- 직교 투영은 near 와 far 를 쓰지 않는다
- 직교 투영은 3x3 행렬로도 표현할 수 있다
- 직교 투영은 종횡비를 반영하지 않는다
- 직교 투영은 마지막 행이 (0,0,0,1) 이라 w 가 1 로 유지된다
near 평면을 0.001 처럼 아주 작게 잡으면 어떤 문제가 생깁니까?
- 멀리 있는 물체끼리 z-파이팅이 심해진다
- 가까운 물체가 잘려 보이지 않는다
- 시야각이 좁아진다
- 프레임 시간이 near 에 반비례해 늘어난다
`look_at` 이 만드는 뷰 행렬의 세 번째 행에 `-f` 를 넣는 이유는 무엇입니까?
- 위쪽 벡터와 직교하게 만들기 위해서다
- 깊이 값의 부호를 뒤집기 위해서다
- 오른손 좌표계에서 카메라가 -z 방향을 보기로 약속했기 때문이다
- 행렬식을 1 로 맞추기 위해서다
창 크기가 800x600 에서 1200x600 으로 바뀌었는데 투영 행렬을 갱신하지 않으면 무슨 일이 생깁니까?
- 화면 왼쪽 3분의 1이 검게 남는다
- 물체가 가로로 늘어나 보인다
- 깊이 정밀도가 떨어져 z-파이팅이 생긴다
- 아무 변화도 없다