LOD 생성 및 사용

LOD 생성 및 사용 하우투입니다.

Windows
MacOS
Linux

플레이어가 레벨에 배치된 스태틱 메시에 가까이 다가갈 때 메시에 디테일이 살아있으면 보기 좋을 것입니다. 하지만 플레이어가 메시에서 멀어진 이후에도 디테일이 살아있는 복잡한 모습일 필요는 없습니다. 화면상에 겨우 몇 픽셀 차지해서 잘 보이지도 않는데 매우 복잡하고 디테일한 메시가 있어봐야 소용이 없지요. 하지만 플레이어가 가까이 갔을 때는 디테일을 명확히 볼 수 있어야 할 것입니다. UE4 에서는 메시를 레벨에 배치한 뒤 플레이어가 그 메시에서 멀어지면 덜 복잡한 버전으로 바꾸어 레벨 퍼포먼스를 높이는 것이 가능합니다. 이는 레벨 오브 디테일, 줄여서 LOD 라는 것을 통해 가능합니다. 이 하우투에서는 UE4 에 메시의 디테일이 덜한 버전을 임포트하여 플레이어와의 거리에 따라 필요한 대로 매끄럽게 바꾸는 방법을 보여드리도록 하겠습니다.

셋업

이 하우투에서는 UE4 에 바로 임포트할 수 있는 .FBX 로 저장된 메시가 이미 있어야 합니다. 이 예제에서는, Maya 에서 만든 간단한 폴리곤 구체를 사용하겠습니다. 참고로 다른 어플리케이션에서 직접 만든 애셋을 사용해도 됩니다.

메시를 익스포트했으면, UE4 를 실행합니다. 작업하고자 하는 프로젝트가 이미 있는 경우, 그 프로젝트를 사용하셔도 됩니다. 없으시다면, 새 프로젝트 탭에서 블루프린트 일인칭 템플릿을 선택합니다. 그 후 시작용 콘텐츠 가 포함되었는지 확인합니다. 포함시키지 않으면 나중에 이 하우투에서 사용할 애셋이 없어 따라하기 힘들 것입니다.

NewProjectWithStarterContent.png

완료되었으면 프로젝트에 이름과 위치를 지정하고 프로젝트 생성 버튼을 클릭합니다.

LOD 생성

프로젝트가 로드된 이후, 콘텐츠 브라우저 에서 Meshes 폴더로 이동하여 FirstPersonCube_Rounded 라는 애셋을 찾습니다.

CubeInContentBrowser.png

찾았으면 더블클릭 또는 우클릭 컨텍스트 메뉴에서 편집 을 선택하여 스태틱 메시 에디터에서 엽니다. 그러면 아래와 비슷해 보일 것입니다.

CubeInStaticMeshEditor.png

스태틱 메시 에디터에서 애셋을 연 이후에는, 디테일 패널을 찾습니다. 기본적으로 우상단 구석에 있습니다. 찾았으면, 아래와 같을 것입니다.

DetailsLOD0.png

맨 위 섹션 라벨은 LOD0 입니다. LOD 는 0 부터 시작하므로, LOD0 이 첫 항목이며, LOD1 이 두 번째 식입니다. LOD0 은 메시의 바탕 LOD 로, 메시에 LOD 가 한 개 밖에 없을 때 사용되는 것이기에 현재는 이것이 사용될 것입니다. 이제 그것을 바꿔보도록 하겠습니다.

그 바로 아래 섹션 이름은 LOD Settings (LOD 세팅)입니다. 이 섹션에는 다뤄볼 옵션이 몇 가지 있습니다. 먼저 Number of LODs (LOD 수)입니다. 기본적으로 1 이지만, LOD 를 임포트하면서 늘어나게 됩니다. 이 값은 자동 메시 감소 기능을 사용할 수 있는 경우 편집도 가능합니다. 하지만 그러기 위해서는, Simplygon 라이선스가 필요합니다.

다음으로 다룰 옵션은 LOD Import (LOD 임포트)입니다. 이 옵션은 ImportLODLevel1.png 와 같은 드롭다운 메뉴가 뜹니다. 여기서 Import LOD Level 1 (LOD 레벨 1 임포트)를 선택합니다. 그러면 이 전의 하우투에서 언급한 .FBX 파일을 탐색할 수 있는 창이 열립니다. .FBX 파일을 탐색하여 선택하면 LOD1, 즉 두 번째 LOD 를 임포트합니다. 그러고 나면 화면 우하단에 다음과 같은 알림창이 보일 것입니다.

SuccessfulImport.png

이 예제에서는 LOD 를 한 개만 임포트하므로 총 두 개가 생길 것이지만, 원하는 만큼 더 임포트해도 됩니다. 그 방법은, LOD 임포트 드롭다운 메뉴를 다시 선택한 다음 LOD 레벨 X 임포트 (X 는 다음에 임포트할 번호)를 선택하면 됩니다. 이미 임포트한 LOD 를 다시 임포트해도 됩니다. LOD1 에 이미 임포트한 것 대신 다른 것을 임포트하려는 경우, LOD 임포트 의 드롭다운을 선택한 다음 Reimport LOD Level 1 (LOD 레벨 1 리임포트)를 선택하면 됩니다. 이제 드롭다운 메뉴를 클릭하면 옵션이 다음과 같아 보일 것입니다.

ImportLODLevel2.png

LOD1 에 대한 메시가 임포트되었으니, 값을 몇 개 조정하여 LOD 의 위력을 선보이도록 하겠습니다. 디테일 패널의 LOD Settings 섹션에서 먼저 살펴볼 옵션은 Auto Compute LOD Distances (LOD 거리 자동 계산)인데요. 화면 크기 백분율을 LOD 갯수로 균등하게 나누어, 한 LOD 에서 다른 LOD 로 전환시켜 주는 것입니다. 예를 들어 여기서는, LOD 가 두 개 있으니 메시가 화면의 50% 이상을 차지하면, LOD0 이 나타납니다. 메시가 화면의 50% 미만을 차지하는 경우, LOD1 이 나타납니다. LOD 가 셋이라면, LOD0 은 메시가 화면의 66.7% 이상을 차지할 때, LOD1 은 33.3% 에서 66.7% 사이일 때, LOD2 는 33% 미만일 때 나타납니다. 우리가 사용하는 메시가 화면의 50% 이상을 차지할 일은 거의 없으니, 그리 유용하지는 않습니다. 그냥 (아래 초록색 부분) Auto Compute LOD Distances 체크를 해제한 다음, (아래 노랑색 부분) 개별 LOD 에 Screen Size (화면 크기) 값을 수동 조절해 주면 됩니다.

AutoComputeLODDist.png

이 데모의 목적상, Auto Compute LOD Distances 체크를 해제하겠습니다. 그리고서 LOD1 아래 Screen Size 값을 찾아 0.01 로 변경합니다. 레벨에 있는 큐브 메시가 화면 크기의 1% 미만을 차지하면, 큐브를 LOD1 에 임포트한 메시(여기서는 구체)로 변환한다는 뜻입니다. 각 LOD 의 머티리얼을 변경할 수도 있습니다. LOD 의 위력과 유용성을 더욱 잘 보여드리기 위해, LOD1 의 머티리얼을 M_Metal_Gold 로 변경하겠습니다.

ChangeMaterial1.png

콜리전

스태틱 메시 가 임포트된 LOD 에 대해 (트라이앵글 별로) Complex Collision (복합 콜리전)을 사용하도록 설정할 수 있습니다. 이렇게 하면 피직스 퍼포먼스를 최적화시키는 데 좋습니다. 스태틱 메시 에 복합 콜리전이 많이 있을 때 또는 Complex Collision Traces (복합 콜리전 트레이스)를 할 때 특히 그렇습니다. 하지만 LOD 가 변할 때 실행시간에 복합 콜리전 사이의 변환이 일어나지는 않으며, 선택된 LOD 가 메시에 대한 모든 복합 콜리전에 사용될 것입니다.

구성법 관련 상세 정보는 LOD 콜리전 구성 문서를 참고하세요.

사용중인 LOD

그렇게 한 이후에는, 메시를 저장한 다음 레벨 에디터 로 돌아갑니다. 메시에 가까이 가면 라운딩 처리된 큐브입니다. 메시에서 멀어지면 임포트한 구체가 됩니다. 참고로 거리에 따라 계산되는 것이 아닌, 화면 크기에 따라 계산되므로, 메시의 작은 인스턴스 옆에 메시의 커다란 인스턴스를 배치한 다음 그 둘과 동일한 거리를 움직이면, 큰 인스턴스보다 작은 인스턴스가 먼저 다음 LOD 로 전환됩니다. 아래 예제를 살펴보세요.

LODExampleFar.png

LODExampleNear.png

LOD 원거리

LOD 근거리

멀리 움직이는 와중에 앞쪽의 큐브만 화면 1% 이상을 차지했기에 여전히 LOD0, 즉 큐브입니다. 하지만 뒤쪽의 작은 메시는 1% 미만을 차지했으므로 LOD1, 즉 이 예제에서는 황금 구체로 전환되었습니다. 또한 이 부분은 화면 크기에 따라 스케일이 조절되므로, 뷰포트를 떼어내서 크기를 조절하면, 메시가 차지하는 비율이 뷰포트 비율에 따라 같이 조절되므로 사용하는 LOD 도 바뀝니다.

분명 큐브를 구체로 바꾸는 것은 LOD 를 제대로 활용하는 것이 되지 못합니다만, 사용법을 익히기에는 충분할 것입니다. 이제 레벨의 메시에 LOD 를 적용하여 가까이서는 디테일을, 멀리서는 퍼포먼스를 살릴 수 있는 준비가 되셨습니다.

Select Skin
Light
Dark

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

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

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

네이버 카페
공식 포럼