셰이더와 GPU 파이프라인 · 레이 마칭과 거리 함수 · 퀴즈
퀴즈: 거리 함수와 구 추적
문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.
구 추적에서 거리 함수의 값만큼 광선을 전진시켜도 표면을 지나치지 않는 이유는 무엇입니까?
- 거리 함수가 광선 방향의 거리를 돌려주기 때문이다
- 그 값이 모든 방향에 대한 최단 거리라 그 안에는 아무 표면도 없기 때문이다
- 전진량에 안전 계수를 곱해 두기 때문이다
- 반복 횟수에 상한을 두었기 때문이다
구 추적에서 가장 비싼 광선은 어떤 것입니까?
- 장면을 완전히 빗나가는 광선
- 카메라 바로 앞의 물체를 맞는 광선
- 표면에 스치듯 지나가는 광선
- 여러 물체를 연달아 통과하는 광선
차집합 연산 `op_subtract(a, b) = max(a, -b)` 에서 `-b` 가 하는 일은 무엇입니까?
- b 의 안팎을 뒤집는다
- b 를 원점 대칭으로 옮긴다
- b 의 크기를 반대로 만든다
- b 의 법선을 뒤집는다
레이 마칭에서 법선을 어떻게 구합니까?
- 삼각형의 외적으로 구한다
- 거리 함수의 기울기를 중앙 차분으로 구한다
- 노멀 맵에서 읽어 온다
- 광선 방향의 반대로 둔다
그림자 광선을 맞은 지점에서 법선 방향으로 조금 띄워 출발시키는 이유는 무엇입니까?
- 광원까지의 거리를 줄이기 위해서다
- 표면 바로 위에서 출발하면 첫 걸음에 자기 자신을 맞아 모든 곳이 그늘이 되기 때문이다
- 부동소수점 오차로 광선이 표면 안쪽으로 들어가기 때문이다
- 법선이 뒤집힌 경우를 걸러 내기 위해서다
거리 함수가 실제 최단 거리보다 **큰** 값을 돌려주면 무슨 일이 생깁니까?
- 렌더링이 느려질 뿐 결과는 같다
- 광선이 표면을 건너뛰어 형태에 구멍이 뚫린다
- 법선이 뒤집힌다
- 그림자만 사라진다