반사 프로브
렌더링 파이프라인 세부 정보

LOD 그룹

LOD Group 컴포넌트는 게임 오브젝트의 디테일 수준(LOD)을 관리합니다.

LOD 그룹 인스펙터
LOD 그룹 인스펙터

A LOD 레벨 간 전환을 위한 컨트롤

B LOD 레벨과 LOD 렌더링 미리보기 간 전환을 위한 LOD 그룹 선택 표시줄

C Lod Bias 품질 설정에 대한 정보. 이 메시지는 Lod Bias 프로퍼티가 1 이외의 값으로 설정되었을 때 표시됩니다.

D 선택한 LOD 레벨에 대한 페이드 전환 너비 설정. 이 프로퍼티는 Animate Cross-fading 프로퍼티를 비활성화할 경우, 즉 시간 대신 너비를 기준으로 전환 영역을 설정할 때 표시됩니다.

E 선택한 LOD 레벨에 대해 설정된 메시 렌더러

또한 컴포넌트 하단에 두 개의 버튼이 있습니다.

  • Recalculate Bounds를 클릭하면 새로운 LOD 레벨이 추가된 후 모든 LOD 메시 게임 오브젝트의 바운딩 볼륨을 다시 계산합니다.
  • Recalculate Lightmap Scale을 클릭하면 LOD 레벨 경계에 적용한 변경 사항에 따라 모든 LOD 메시 렌더러에 대한 Scale in Lightmap 프로퍼티를 업데이트합니다.

LOD 그룹 선택 표시줄

LOD 그룹 선택 표시줄은 다양한 LOD 레벨을 컬러 상자로 표시합니다.

각 LOD 레벨 상자에 표시되는 백분율은 게임 오브젝트의 스크린 공간 높이와 전체 화면 높이 간의 비율에 따라 해당 레벨이 활성화되는 임계값을 나타냅니다. 예를 들어 LOD 1에 대한 임계값이 50%로 설정되면 게임 오브젝트의 높이가 뷰의 반을 채울 만큼 카메라가 충분히 뒤로 이동했을 때 LOD 1이 활성화됩니다.

LOD 그룹 선택 표시줄
LOD 그룹 선택 표시줄

A LOD 미리보기에 대한 재생 헤드. 카메라 아이콘을 앞뒤로 움직여 LOD 레벨과 전환을 테스트할 수 있습니다. 재생 헤드의 하단에 현재 백분율이 표시됩니다.

B 레벨을 선택하려면 레벨 상자를 클릭하십시오. 선택하는 각 LOD 레벨에 대해 사용할 렌더러를 선택하거나 전환 영역을 커스터마이즈할 수 있습니다.

C 선택 표시줄에서 LOD 레벨을 추가 및 제거하려면 LOD 레벨 상자를 마우스 오른쪽 버튼으로 클릭한 후 컨텍스트 메뉴에서 Insert Before 또는 Delete 를 선택합니다.

D 레벨 조정 제어. LOD 레벨의 백분율 값을 변경하려면 LOD 레벨 상자 경계의 왼쪽 테두리를 드래그하십시오.

참고: Lod Bias 프로퍼티가 1로 설정되지 않으면 각 LOD 레벨이 다음 LOD 레벨에서 실제로 전환되는 포지션과 카메라 포지션이 일치하지 않을 수 있습니다. 이 경우 선택 표시줄 아래에 경고 메시지가 표시됩니다.

Lod Bias 경고
Lod Bias 경고

LOD 전환 미리보기

LOD 그룹 선택 표시줄의 카메라 아이콘을 움직이면 씬(Scene) 뷰에 LOD 레벨 간 전환의 미리보기가 표시됩니다. 카메라 아이콘은 재생 헤드 역할을 하기 때문에 LOD 그룹 선택 표시줄에서 컨트롤을 앞뒤로 움직여서 미리 볼 정확한 포지션을 제어할 수 있습니다. 미리보기는 각 LOD 레벨에서 카메라가 렌더링하는 내용을 보여줍니다.

LOD 그룹 선택 표시줄에서 전환 미리보기 제어
LOD 그룹 선택 표시줄에서 전환 미리보기 제어

LOD 미리보기 재생 헤드는 LOD 그룹 선택 표시줄에서의 정확한 포지션을 백분율(왼쪽 100%, 오른쪽 0%)로 보여줍니다. 이 백분율은 게임 오브젝트의 스크린 공간 높이와 전체 화면 높이 간의 비율을 나타냅니다.

레벨을 이동하면 씬(Scene) 뷰가 트리 에셋의 경계 상자를 표시하고 오버레이가 활성화된 LOD를 나타냅니다.

활성화된 LOD 레벨을 표시하는 오버레이
활성화된 LOD 레벨을 표시하는 오버레이

LOD 메시용 렌더러

LOD 그룹 선택 표시줄에서 LOD 레벨 상자를 선택하면 Renderers 패널이 나타납니다.

LOD 3용 빌보드 렌더러가 포함된 Renderers 패널
LOD 3용 빌보드 렌더러가 포함된 Renderers 패널

’Renderers’는 LOD 레벨에 대한 메시를 가지고 있는 실제 게임 오브젝트이며, 대개 LODGroup 컴포넌트를 포함하고 있는 게임 오브젝트의 자식입니다.

현재 LOD 레벨에 대해 렌더러 메시를 설정하려면 Add 상자를 클릭하고 오브젝트 피커에서 해당 LOD 레벨에 대한 게임 오브젝트를 선택하십시오.

렌더러에 대한 게임 오브젝트를 선택할 수 있지만, 아직 자식이 아닌 게임 오브젝트를 선택하면 Unity가 LODGroup 게임 오브젝트를 부모로 지정하라는 메시지를 표시합니다.

LOD 레벨 간의 전환

LOD 레벨 간의 원활한 전환은 게임 플레이어의 경험을 개선합니다. 카메라가 가까이 다가가거나 멀어질 때 플레이어들에게 현재 LOD 레벨에서 다음 LOD 레벨로의 전환 효과(때때로 파핑이라고 불림)를 보여주지 않는 것이 좋습니다.

원활한 전환은 전환 영역 내에서 발생하며, 이때 Unity는 현재 LOD 레벨과 다음 LOD 레벨을 독립적으로 렌더링한 후 함께 크로스 페이딩합니다.

크로스 페이딩은 두 개 레벨을 동시에 렌더링하는 기법으로, 현재 LOD 레벨에 1에서 0 사이의 가중치를 지정하고 다음 LOD 레벨에 0부터 1 사이의 가중치를 지정합니다.

현재 LOD 레벨과 다음 LOD 레벨 간의 크로스 페이딩
현재 LOD 레벨과 다음 LOD 레벨 간의 크로스 페이딩

Unity는 대개 스크린 공간 디더링 또는 투명도를 사용하여 크로스 페이딩을 구현합니다. 마지막 LOD 레벨에는 크로스 페이딩이 없고 현재 레벨만 페이드 아웃됩니다.

LOD 레벨에 대해 원활한 전환을 설정하려면 다음 단계를 따르십시오.

  1. Fade Mode 드롭다운 메뉴를 선택하고 Cross Fade를 선택합니다.

    페이드 모드 드롭다운 메뉴
    페이드 모드 드롭다운 메뉴

    참고: 트리 에셋이 SpeedTree를 통해 생성되었다면 Speed Tree 모드를 선택하십시오. 자세한 내용은 SpeedTree 모델을 사용한 작업을 참조하십시오.

  2. 기본적으로 Animate Cross-fading 옵션이 활성화됩니다. 즉, Unity가 시간 기반 전환을 수행합니다. 카메라의 포지션에 따라 고유한 전환 영역을 정의하고 싶다면 Animate Cross-fading 옵션을 비활성화하고 Fade Transition Width 프로퍼티를 설정하십시오.

    자세한 내용은 전환 영역 커스터마이즈 값을 참조하십시오.

전환 영역 커스터마이즈

두 LOD 레벨 간의 전환은 모델의 높이 비율이 다음 LOD 임계값과 교차하는 순간에 시작됩니다. 예를 들어 LOD 1 임계값이 60%로 설정되면 LOD 0 레벨과 LOD 1 레벨 간의 전환은 항상 모델의 높이가 60%일 때 시작합니다. 전환은 짧은 시간 동안 지속됩니다.

크로스 페이딩 애니메이션화(시간 기준)
크로스 페이딩 애니메이션화(시간 기준)

이 동작은 시간별로 애니메이션화되므로, Animate Cross-fading 프로퍼티를 설정한 후에는 다른 프로퍼티를 설정할 필요가 없습니다. 크로스 페이드의 정확한 지속 시간은 모든 LOD 레벨에서 동일합니다.

또는 포지션을 기준으로 각 LOD 레벨 내에서 전환 영역을 수동으로 정의할 수도 있습니다. 각 영역은 시작된 후 다음 LOD 레벨의 임계값 전에 끝납니다. 전환 영역으로 사용할 각 LOD 레벨의 비율을 정의할 수 있습니다. 즉, 전환이 시작되는 다음 레벨 임계값까지의 거리를 설정할 수 있습니다.

페이드 전환 너비(포지션 기준)
페이드 전환 너비(포지션 기준)

Fade Transition Width 프로퍼티를 사용하여 각 LOD 레벨에 대한 전환 영역을 정의하십시오.

  1. Animate Cross-fading 옵션을 비활성화합니다.

  2. 설정하려는 특정 LOD 레벨 상자를 클릭합니다.

    Fade Transition Width 프로퍼티가 LOD Group 선택 표시줄 아래에 나타납니다.

    Fade Transition Width 프로퍼티가 나타남
    Fade Transition Width 프로퍼티가 나타남
  3. Fade Transition Width 프로퍼티를 설정하여 크로스 페이드 전환 영역의 너비를 현재 LOD 레벨의 전체 길이에 대한 비율(0.0 - 1.0)로 정의합니다. 예를 들어 작은 값을 지정하면 블렌딩의 시작이 지연되고 전환 속도가 빨라집니다.

SpeedTree 모델을 사용한 작업

SpeedTree 지오메트리는 각 버텍스에 대한 다음 LOD 포지션을 저장합니다. 따라서 모든 버텍스는 현재 LOD 포지션과 다음 LOD 포지션 간에 보간하는 방법을 알고 있습니다. Unity는 SpeedTree에서 생성된 모델을 임포트한 후 Speed Tree 모드로 자동으로 설정합니다.

SpeedTree 모델용 Speed Tree 페이드 모드
SpeedTree 모델용 Speed Tree 페이드 모드

Unity는 현재 LOD 지오메트리만 렌더링하고 0과 1 사이의 값을 제공하여 각 버텍스에 다음 LOD 포지션으로 점차 이동하라고 지시해야 합니다. 전환이 끝나면 현재 LOD와 다음 LOD의 지오메트리가 완벽하게 일치합니다.

두 LOD 레벨 간의 블렌딩은 0에서 시작하고 1에서 끝납니다. 이 영역의 모든 포인트는 블렌드 인자입니다. 즉, 현재 LOD 레벨과 다음 LOD 레벨 간의 가중치를 나타냅니다.

SpeedTree 모델용 블렌딩
SpeedTree 모델용 블렌딩

Speed Tree 모드는 블렌드 인자를 사용하여 현재 메시 LOD 레벨 과 다음 메시 LOD 레벨 간의 버텍스 포지션을 보간한 후 해당 포지션에서 지오메트리를 렌더링합니다.

참고: Speed Tree 모드는 두 메시 LOD 레벨 간의 블렌딩에만 사용됩니다. 즉, 현재 LOD 레벨과 다음 LOD 레벨 모두에 메시 렌더러가 있는 경우에만 작동합니다. 빌보드 LOD 레벨로 전환하거나 완전히 페이드 아웃할 때 Unity는 크로스 페이드 스타일의 블렌딩을 수행합니다.

셰이더 코드의 블렌드 인자

Unity는 LOD 지오메트리를 블렌딩하기 위한 기본 빌트인 기술을 제공하지 않습니다. 따라서 게임 타입과 에셋 제작 파이프라인에 따라 고유한 기술을 구현해야 합니다.

Unity는 게임 오브젝트의 화면 크기에서 블렌드 인자를 계산한 후 unity_LODFade.x uniform 변수의 셰이더에 전달합니다. 선택하는 Fade Mode에 따라 LOD 페이딩으로 렌더링된 게임 오브젝트에 LOD_FADE_PERCENTAGE 또는 LOD_FADE_CROSSFADE 키워드를 사용하십시오.

시간 기반 (애니메이션화) 전환의 경우 LODGroup.crossFadeAnimationDuration 멤버를 사용하여 모든 LOD 레벨에 정확한 전환 지속 시간을 전역으로 설정할 수 있습니다.

LOD 명명 규칙에 대한 자세한 내용은 디테일 수준(LOD)을 참조하십시오.



반사 프로브
렌더링 파이프라인 세부 정보