상세성 레벨(Level of Detail )(Pro 전용)

사용자의 씬 규모가 커짐에 따라, 성능이 점점 더 이슈화 됩니다. 이를 관리하는 방법 중 하나는, 카메라가 오브젝트에서 얼마나 떨어져 있는 가에 따라 메쉬의 상세성 레벨을 다양화하는 것입니다. 이것을 상세성 레벨(Level of Detail, 약자로 LOD)이라고 부릅니다

다음은 오브젝트를 여러 LODs 로 설정하는 방법 중 한 가지입니다.

  1. 씬(Scene)에서 빈 Game Object 을 생성합니다.
  2. 2 가지 버전의 메쉬를 만든다 – 고해상도 메쉬(L0D:0는 카메라가 가장 근접했을 때)와 저해상도 메쉬(L0D:1는 카메라가 가장 멀리 있을 때)
  3. 이 오브젝트에 LODGroup 컴포넌트를 추가합니다 (ComponentRenderingLOD Group)
  4. 고해상도 메쉬를 가지고 있는 오브젝트를 L0D:0에 대한 첫 번째Renderers 박스 위로 드래그하고, "Reparent game objects?" 대화창에서 yes을 선택합니다.
  5. 저 해상도의 메쉬를 가진 오브젝트를 LOD:1에 대한 첫 번째 Renderers 박스 위로 드래그하고, "Reparent game objects?" 대화장에서 yes 을 선택합니다.
  6. LOD:2 위로 마우스 오른쪽 버튼을 클릭하여 그것을 제거합니다.

이 시점에서 빈 오브젝트는 양 버전의 메쉬를 모두 포함하고 있어야 하고, 카메라가 얼마나 떨어져 있는가에 따라 어떤 메쉬를 나타낼지 “알고” 있어야 합니다.

사용자가 이 효과를 미리 확인하려면, LODGroup 컴포넌트에 대해 카메라 아이콘을 창의 왼쪽 오른쪽으로 드래그해 보면 됩니다.

lod0_demo.jpgcamera at LOD 0 lod1_demo.jpgcamera at LOD 1

Scene View 내에서, 사용자는 다음을 확인할 수 있어야 합니다

  • 해당 오브젝트가 차지하는 뷰(view)의 퍼센트
  • 어느 LOD 가 현재 표시되고 있는지
  • 삼각면(triangles)의 개수

에셋 들여오기 파이프라인(asset import pipeline)에서 LOD 기반의 명명규칙

LOD의 설정을 단순화하기 위하여, Unity는 들여오는 모델에 대한 명명 규칙을 제시합니다. 사용자 모델링 툴에서 메쉬를 생성할 때 _LOD0, _LOD1, _LOD2 등으로 끝나는 이름으로 명명하면, 적당한 설정을 가진 LOD 그룹이 사용자에 대해 생성될 것입니다. 이 규칙이 LOD 0 을 가장 높은 해상도로 가정함을 주의합니다.

다양한 플랫폼에 대한 LODs 의 설정

Quality Settings 에서 각 플랫폼에 대해 사용자의 LOD 설정을 조정할 수 있으며, 특히 LOD biasMaximum LOD Level의 속성에 대해 수행할 수 있습니다.

Utilities

다음의 사용자의 LODs 작업에 데 필요한 옵션들입니다

Recalculate Bounds바운딩 볼륨(bounding volume)에 반영되지 않고 LODGroup에 추가되는 새 기하구조(geometry)가 있다면, 해당 bound을 업데이트 하려면 이를 누릅니다. 이것이 필요한 예의 하나로는 기하구조(geometries)의 하나가 프리팹 prefab의 일부인 경우이며, 새 기하구조가 해당 프리펩에 추가된다. LODGroup 에 직접적으로 추가되는 기하구조는 bound에 자동으로 업데이트 될 것입니다
Update Lightmapslightmaps 내의 Scale in Lightmap 의 속성을 LOD 레벨 바운더리를 기반으로 업데이트 합니다.
Upload to ImporterLOD 레벨 바운더리를 들여오기로 업로드 합니다

역링크