쿼드 트리

쿼드 트리는 레이트레이싱된 그림자를 계산하는 데 사용된 데이터 구조입니다.

쿼드 트리는 라이트 시점에서 장면을 나타냅니다. 쿼드 트리의 루트 노드에는 해당 뷰에 표시되는 모든 오브젝트가 나열됩니다. 너무 많은 오브젝트가 표시되면 노드에서 네 개의 다른 노드를 생성하고 각 노드는 뷰의 1/4을 나타내며 해당 비율로 오브젝트 리스트를 표시합니다. 이 프로세스는 각 노드에 적은 수의 오브젝트만 표시되거나 각 라이트에 대해 설정할 수 있는 쿼드 트리의 깊이 제한에 도달할 때까지 자동으로 계속됩니다.

각 그림자 투사 광선에서는 쿼드 트리의 리프 노드 중 하나에만 있는 오브젝트로 교차점을 테스트해야 합니다. 이렇게 하면 광선 추적 프로세스의 속도를 향상시킬 수 있습니다. 일반적으로 최대 쿼드 트리 깊이를 늘리면 메모리 손실 없이 광선 추적의 속도를 향상시킬 수 있습니다.

쿼드 트리의 최대 크기는 최대 쿼드 트리 깊이의 거듭제곱을 2제곱한 값입니다. 깊이가 7이면 가장 큰 쿼드 트리에 128 x 128개의 리프 노트가 포함되고 깊이가 10이면 1028 x 1028개의 리프 노드가 포함되는 형식입니다. 그러나 연속되는 각 노드에는 더 적은 오브젝트가 포함되므로 트리에서 노드가 깊은 곳에 있을수록 노드의 레코드 크기는 줄어듭니다.

주: 옴니 라이트는 최대 10개의 쿼드 트리를 생성할 수 있으므로 레이트레이싱된 그림자를 투사하는 옴니 라이트는 렌더링할 때 스포트라이트보다 더 많은 메모리를 사용합니다.