컬 디스턴스 볼륨

레벨에 있는 액터를 크기에 따라 지정된 거리 별로 컬링하는 Cull Distance Volume, 컬 디스턴스 볼륨 사용법 개요입니다.

Windows
MacOS
Linux

Cull Distance Volume (컬 디스턴스 볼륨)은 볼륨 안에 있는 액터를 어느 거리에서 그릴지 (보이게 만들지) 정의하는 유용한 최적화 툴입니다. 이 볼륨은 Cull Distance Pair (컬 디스턴스 짝)이라는 곳에 크기와 거리 조합을 몇이든 저장합니다. 이를 액터의 (가장 긴 축) 바운드에 매핑한 뒤 레벨의 해당 액터 인스턴스에 할당합니다. 컬 디스턴스 볼륨은 인테리어가 세밀한 큰 야외 레벨을 최적화할 때 가장 좋습니다. 인테리어는 중요하지 않다고 생각될만큼 작으면 컬링할 수 있습니다.

구성 및 사용법

컬 디스턴스 볼륨은 에디터의 모드 패널을 통해 추가한 뒤 레벨에 맞게 스케일을 조절할 수 있습니다.

AddCDVToWorld.png

볼륨을 선택한 상태에서 디테일 패널의 Cull Distance (컬 디스턴스) 짝 배열에 액세스할 수 있습니다. 각 컬 디스턴스 짝에는 Size (크기)와 Cull Distance (컬 디스턴스) 값이 포함됩니다. 더하기 (+) 부호를 클릭해서 배열 엘리먼트 목록 하단에 새로운 컬 디스턴스 짝을 추가할 수 있습니다.

AddCDVPairs.png

기본적으로 추가되는 컬 디스턴스 짝은 둘이며, 하나는 크기나 거리 설정 없는 첫 항목으로 편집하기 위한 것이며, 다른 하나는 10000 유닛 보다 큰 오브젝트의 거리가 0 이라 컬링되지 않도록 유지하기 위한 것입니다. 커다란 컬 디스턴스 짝을 설정하면, 큰 빌딩이나 산 같은 오브젝트가 멀리 있어도 컬링되지 않도록 유지할 수 있습니다.

컬 디스턴스 짝 삽입, 삭제, 복제

각 배열 엘리먼트 옆 드롭다운을 사용해서 컬 디스턴스 짝 엘리먼트를 삽입, 삭제, 또는 복제할 수 있습니다.

EditCDVPairs.png

  • Insert (삽입)은 선택된 엘리먼트 위에 컬 디스턴스 짝을 새로 추가합니다.

  • Delete (삭제)는 목록에서 기존 컬 디스턴스 엘리먼트를 제거합니다.

  • Duplicate (복제)는 선택된 컬 디스턴스 짝을 그 아래 새로운 배열 엘리먼트로 복사합니다.

컬 디스턴스 배열 엘리먼트 개수는 원하는 만큼 만들 수 있으며, 정상 작동을 위해 순서대로 있어야 한다든가 하는 제약은 없습니다.

예제 씬 및 구성

이 예제에서는 Infinity Blades Grasslands 프로젝트를 사용하며, 카메라 위치에서 각기 다른 크기의 오브젝트를 컬링하도록 컬 디스턴스 짝을 몇 가지 구성해 두었습니다.

여기서는 컬 디스턴스 짝이 레벨의 액터에 어떻게 작동하는지 빠르게 확인하기 위해 극단적인 값을 사용했습니다. 값의 짝을 추가하면서 테스트하면 예제의 "팝핑" 현상을 개선할 수 있습니다.

몇 가지 컬 디스턴스 및 크기를 정의하는 데모용으로 사용된 값은 다음과 같습니다.

ExampleSceneCDVValues.png

  • 볼륨 내 크기가 200 유닛에 가장 가까운 오브젝트는 카메라와의 거리가 1000 유닛 이상이면 뷰에서 컬링됩니다.

  • 볼륨 내 크기가 500 유닛에 가장 가까운 오브젝트는 카메라와의 거리가 2000 유닛 이상이면 뷰에서 컬링됩니다.

  • 뷸룸 내 크기가 1000 유닛에 가장 가까운 오브젝트는 절대 컬링되지 않습니다. 메우 큰 오브젝트를 무한으로, 즉 카메라에서 아무리 멀어도 컬링되지 않게 취급할 수 있습니다.

컬 디스턴스 짝을 구성할 때, 다음 사항에 유의하세요.

  • 컬 디스턴스 짝 배열은 선형 보간되지 않습니다.

    • 더미 짝을 사용할 필요가 없으며, 컬 디스턴스 짝이 겹치는 경우 엔진이 가장 적극적인 세팅( 또는 0 보다 크면서 가장 낮은 값)을 액터에 할당한다는 뜻입니다.

  • 컬 디스턴스 짝은 필요한 만큼 만들 수 있습니다.

    • 체계 관리를 위해서는, 짝을 순서대로 (내림차순) 유지하는 것이 가장 좋지만, 필수는 아닙니다.

    • 새 짝을 추가할 때, 나중에 삽입 드롭다운으로 언제든 짝을 추가할 수 있습니다.

  • 컬 디스턴스 짝은 크기에 가장 근접한 바운드 직경으로 할당됩니다. 액터의 Current Max Draw Distance (현재 최대 그리기 거리)를 사용하면 컬 디스턴스 짝 값에 따라 어느 캐시의 그리기 거리 그룹이 할당되고 있는지 확인할 수 있습니다.

초기값으로 적당한 값의 짝은 다음과 같습니다.

ExampleScene_SuggestedPairValues.png

모범 사례

효율적인 결과를 얻는 데 도움이 되는 제안사항은 다음과 같습니다.

  • 하나의 컬 디스턴스 볼륨이 전체 레벨을 아우르도록 합니다.

    • 레벨의 대다수를 나타내는 다양한 컬 디스턴스 짝을 포함합니다.

    • 볼륨 내 영역의 경우, 추가 컬 디스턴스 볼륨을 사용하여 컬링을 보다 적극적으로 제어할 수 있습니다.

  • 컬 디스턴스 짝을 구성할 때, 큰 크기와 거리로 시작해서 상하한 값을 파악합니다.

    • 레벨 뷰포트의 "게임" 뷰에서 레벨을 돌아다니며 오브젝트에 "팝핑" 현상이 보이는지 확인합니다.

    • 수정 및 기존 컬 디스턴스 짝 사이에 새로운 짝을 추가합니다. 문제가 있는 액터를 선택하고 그 Cached Cull Distance (캐시 저장 컬 디스턴스) 값을 사용하면 어느 액터가 어느 컬 디스턴스 짝 그룹에 속하는지 파악할 수 있습니다.

  • 컬 디스턴스 짝 그룹은 개별 액터의 Max Draw Distance (최대 그리기 거리) 미만일 때만 사용된다는 점 유의하세요.

  • 컬 디스턴스 볼륨이 절대 컬링해서는 안되는 액터가 있는 경우, 액터 디테일 패널에서 Allow Cull Distance Volume (컬 디스턴스 볼륨 허용)을 비활성화하세요.

    • 이 옵션을 비활성화해야 하는 액터가 많은 경우, 마지막 컬 디스턴스 짝을 “디스턴스 컬링하기에 너무 큰” 값으로 만들어 Size 에는 큰 값을, Cull Distance 에는 0 을 설정하면 됩니다. 그러면 산이나 거대 빌딩같은 정말 큰 오브젝트가 컬링되지 않습니다.

태그
Select Skin
Light
Dark

새로운 언리얼 엔진 4 문서 사이트에 오신 것을 환영합니다!

문서 사이트에 대한 의견을 모을 수 있는 피드백 시스템을 포함해서 여러가지 새로운 기능을 준비하고 있습니다. 아래 Documentation Feedback 포럼(영문) 또는 언리얼 엔진 네이버 공식 카페(한글) 중 편하신 곳에 의견이나 문제점을 알려 주세요.

새 시스템이 준비되면 알려 드리겠습니다.

네이버 카페
공식 포럼