1. 프러스텀 컬링(=절두체 컬링, Frustum Culling)이란?
프러스텀 컬링은 컴퓨터 그래픽과 게임 개발에서 씬의 오브젝트가 카메라 뷰 프러스텀(카메라에 보이는 공간의 일부)의 안쪽인지 바깥쪽인지 결정하는 데 사용되는 기법입니다. 이 기술은 카메라에 실제로 보이는 오브젝트만 렌더링하고 프러스텀 외부에 있는 오브젝트는 버림으로써 렌더링을 최적화하는 데 사용됩니다.
카메라의 뷰 프러스텀은 카메라 위치에서 먼 평면까지 확장되는 3D 피라미드 모양의 볼륨으로, 카메라의 위치는 피라미드의 정점에 위치합니다. 프러스텀은 6개의 평면(왼쪽, 오른쪽, 위, 아래, 근거리, 원거리)으로 정의되며, 각 평면은 프러스텀의 경계 평면을 나타냅니다. 이러한 평면은 카메라에 표시되는 공간의 경계를 정의하며, 이러한 평면 중 하나와 교차하는 물체는 모두 표시되는 것으로 간주됩니다.
프러스텀 컬링을 수행하려면 씬의 각 오브젝트를 카메라 뷰 프러스텀의 6개의 평면과 비교하여 프러스텀 내부에 있는지 외부에 있는지 확인합니다. 이는 오브젝트의 바운딩 볼륨(예: 구 또는 AABB)을 프러스텀의 6개의 평면에 대해 테스트하여 수행됩니다. 오브젝트의 바운딩 볼륨이 어느 평면에도 완전히 벗어나면 카메라에 표시되지 않으므로 오브젝트를 컬링(즉, 렌더링하지 않음)할 수 있습니다.
프러스텀 컬링은 특히 오브젝트 수가 많거나 지오메트리가 복잡한 씬에서 렌더링 성능을 크게 향상시킬 수 있습니다. 렌더링 파이프라인에서 보이지 않는 오브젝트를 제거하면 그래픽 카드에 필요한 작업량을 크게 줄일 수 있으므로 프레임 속도가 향상되고 사용자 경험이 더 부드럽고 반응성이 높아집니다.
하지만 프러스텀 컬링은 씬의 각 오브젝트를 프러스텀과 비교하여 확인해야 하므로 약간의 오버헤드가 발생한다는 점에 유의해야 합니다. 따라서 프러스텀 컬링의 이점과 컬링 자체에 드는 비용의 균형을 맞추고, 프러스텀 컬링과 함께 다른 최적화 기법을 사용하여 최상의 결과를 얻는 것이 중요합니다.
'공부 > C#' 카테고리의 다른 글
평면과 한 점의 최단거리를 어떻게 구할까? (0) | 2023.03.17 |
---|---|
드로우콜(DrawCall)을 줄이는 방법 (1) | 2023.03.13 |
오클루전 컬링(Occlusion Culling)이란? (0) | 2023.03.11 |
Distance() 함수와 Magnitude() 함수 보다 왜 sqrMagnitude() 함수가 빠를까? (0) | 2023.03.11 |
메카님 애니메이션(Mecanim Animation)이란? (0) | 2023.03.06 |