3D 수학과 소프트웨어 래스터라이저 · 벡터와 행렬 · 퀴즈
퀴즈: 동차 좌표와 변환 순서
문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.
3차원 변환에 4x4 행렬을 쓰는 가장 직접적인 이유는 무엇입니까?
- GPU 가 4의 배수 크기만 처리할 수 있어서
- 평행이동을 곱셈으로 표현하려면 차원이 하나 더 필요해서
- 부동소수점 정밀도를 높이기 위해서
- 회전과 크기 조절을 한 행렬에 담기 위해서
동차 좌표에서 네 번째 성분 w 를 0 으로 두는 것은 무엇을 뜻합니까?
- 그 벡터를 무시하라는 뜻이다
- 원점을 가리키는 점이라는 뜻이다
- 위치가 아니라 방향이라는 뜻이다
- 아직 정규화되지 않았다는 뜻이다
열 벡터를 오른쪽에 곱하는 관례에서 `mul(T, R)` 을 점에 적용하면 어떤 순서로 변환됩니까?
- 회전을 먼저 하고 이동을 나중에 한다
- 이동을 먼저 하고 회전을 나중에 한다
- 둘이 동시에 적용되어 순서가 없다
- 행렬을 만든 순서와 무관하게 항상 이동이 먼저다
`cross((1,0,0), (0,1,0))` 의 결과가 `(0,0,-1)` 로 나왔다면 무엇을 의심해야 합니까?
- 벡터의 길이를 정규화하지 않았다
- 외적 대신 내적을 계산했다
- 외적 성분의 부호를 뒤집어 좌표계의 손 방향이 반대가 되었다
- 부동소수점 오차가 누적되었다
비균등 크기 조절이 들어간 모델 행렬로 법선 벡터를 변환하면 어떤 일이 생깁니까?
- 법선의 길이만 달라지고 방향은 그대로다
- 법선이 표면에 더 이상 수직이지 않게 되어 조명이 틀어진다
- 법선이 뒤집혀 앞뒤가 바뀐다
- 아무 문제도 생기지 않는다
매 프레임 회전 행렬을 조금씩 곱해 누적하면 수백 프레임 뒤에 물체가 서서히 찌그러지는 이유는 무엇입니까?
- 행렬 곱이 교환법칙을 만족하지 않아서
- 각도가 360도를 넘어가면서 넘침이 생겨서
- 부동소수점 오차가 쌓여 행렬의 직교성이 무너져서
- 회전 행렬의 행렬식이 1 이 아니어서