Choose your operating system:
Windows
macOS
Linux
자동 LOD 생성 시스템은 언리얼 엔진 4 에디터만으로도 스태틱 메시의 LOD 를 자동으로 만들어 폴리곤 수를 줄여주는 시스템입니다. 자동 LOD 생성 기능은 소위 이차(quadratic) 메시 단순화 기법을 활용하여 스태틱 메시의 LOD 를 생성합니다. 이차 메시 단순화 기법의 작동 원리는, 먼저 두 버텍스를 합쳤을 때 생성되는 에지를 접었을 때 발생하는 시각적 차이를 계산합니다. 그런 다음 시각적인 영향이 제일 적은 에지를 선택한 뒤 접습니다. 그 때 툴에서는 새로 병합된 버텍스를 놓을 최적의 장소를 선택함과 동시에, 에지와 같이 접힌 트라이앵글을 제거합니다. 지정한 트라이앵글 목표 개수가 될 때까지 계속해서 이런 식으로 에지를 접습니다. 여기서는 UE4 프로젝트에서 자동 LOD 생성 시스템을 구성하고 사용하는 방법에 대해 살펴보겠습니다.
단계
여기서는 시작용 콘텐츠 가 들어있는 프로젝트를 새로 만든 뒤 작업할 스태틱 메시 애셋을 열어보겠습니다.
여기서는 시작용 콘텐츠에 포함된 SM_Rock 스태틱 메시를 사용하지만, 아무 스태틱 메시나 사용해도 무방합니다.
-
프로젝트가 준비되어 있지 않은 경우, 시작용 콘텐츠 를 포함시킨 UE4 프로젝트를 새로 만들어 엽니다.
-
프로젝트 로드가 끝나면, SM_Rock 스태틱 메시를 찾아 더블클릭하여 스태틱 메시 에디터에서 엽니다.
LOD 생성
LOD 생성에는 두 가지 방법이 있습니다. 첫째는 에픽에서 추천하는 방법으로, 미리 환경설정된 세팅에 따라 LOD 를 자동 생성하는 LOD Group (LOD 그룹) 프리셋 사용 방법입니다. 두 번째 방법은 LOD 를 직접 구성하는 것입니다. 아래는 각 LOD 생성 방법을 사용하는 법에 대한 구체적인 설명입니다.
LOD 그룹 사용법
UE4 안에서 LOD 를 만들 때는 LOD 그룹을 사용해야 자동 LOD 툴로 LOD 가 생성되어 좋습니다. 여기서는 UE4 프로젝트에서 LOD 그룹을 구성하고 사용하는 법에 대해 다루겠습니다.
-
먼저 프로젝트의 BaseEngine.ini 파일을 찾아 텍스트 에디터에서 열고 [StaticMeshLODSettings] 섹션을 찾습니다. BaseEngine.ini 파일에 이 항목이 보이지 않는 경우, 다음 코드를 복사하여 BaseEngine.ini 파일에 붙입니다.
[StaticMeshLODSettings] LevelArchitecture=(NumLODs=4,LightMapResolution=32,LODPercentTriangles=50,PixelError=12,SilhouetteImportance=4,Name=LOCTEXT("LevelArchitectureLOD","Level Architecture")) SmallProp=(NumLODs=4,LODPercentTriangles=50,PixelError=10,Name=LOCTEXT("SmallPropLOD","Small Prop")) LargeProp=(NumLODs=4,LODPercentTriangles=50,PixelError=10,Name=LOCTEXT("LargePropLOD","Large Prop")) Deco=(NumLODs=4,LODPercentTriangles=50,PixelError=10,Name=LOCTEXT("DecoLOD","Deco")) Vista=(NumLODs=1,Name=LOCTEXT("VistaLOD","Vista")) Foliage=(NumLODs=1,Name=LOCTEXT("FoliageLOD","Foliage")) HighDetail=(NumLODs=6,LODPercentTriangles=50,PixelError=6,Name=LOCTEXT("HighDetailLOD","High Detail"))
이 섹션의 각 항목을 추가, 제거, 조정하면 그 LOD 그룹 사용시의 작동 방식을 추가, 제거, 조정합니다.
-
이제 UE4 에디터를 열고 콘텐츠 브라우저에서 LOD 를 생성하고자 하는 스태틱 메시를 더블클릭하여 엽니다. 이 예제에서는 시작용 콘텐츠에 들어있는 SM_Rock 을 사용하겠습니다.
-
스태틱 메시 에디터에 스태틱 메시가 열린 상태로, 디테일 패널 아래 LOD Settings 섹션을 펼칩니다.
-
LOD Settings 섹션에서 LOD Group 버튼을 클릭하고 표시되는 목록에서 SmallProp 옵션을 선택합니다.
-
그러면 현재 세팅을 SmallProp 의 세팅으로 덮어쓴다는 알림창이 뜹니다. 예 를 눌러 계속합니다.
-
스태틱 메시 에디터에는 이제 LOD0, LOD1, LOD2, LOD3 까지 총 네 개의 LOD 항목이 디테일 패널에 새로 추가되어 있을 것입니다. 각 LOD 항목을 클릭하면, 프로젝트 BaseEngine.ini 파일의 StaticMeshLODSettings 에 정의되어 있는 세팅을 확인할 수 있습니다.
Auto Compute LOD Distances (LOD 거리 자동 계산) 옵션이 체크되어 있는지 확인하세요. LOD 에 사용할 화면 크기를 결정하는 데 도움이 됩니다. 알고리즘을 통해 에지가 접힐 때마다 얼마만큼의 시각적 차이가 더해지는지 알고 있기 때문에, 이 정보를 사용하여 거리 오차 허용 범위를 결정할 수 있습니다. 이 옵션을 끄면 각 LOD 의 화면 크기를 손수 설정해야 하므로 오차가 발생할 수 있다는 뜻입니다.
이제 다양한 LOD 그룹 세팅으로 실험해 보면서 오브젝트에 LOD 가 어떻게 생성되는지 확인해 봅니다. 다음 섹션에서는 LOD 를 수동 생성하는 법에 대해 다뤄보겠습니다.
LOD 수동 생성
여기서는 프로젝트 애셋에 쓸 LOD 를 수동 구성하고 생성하는 법을 알아봅니다.
다음 방법으로 LOD 생성이 가능은 하지만, 에픽에서 추천하는 방법은 위에 설명한 LOD 그룹을 사용하는 것입니다.
-
스태틱 메시 에디터의 디테일 패널에서, LOD Settings 섹션을 펼치고 Number of LODs 옵션을 찾습니다.
LOD Group (LOD 그룹)에는 프리셋 목록이 제공되어 프로젝트에 맞는 LOD 세팅을 빠르게 선택할 수 있습니다. 이는 BaseEngine.ini 의 [StaticMeshLODSettings] 아래에서 프로젝트 별로 설정할 수 있습니다. 모든 LOD 를 일일히 조절하기 보다는, 범주별로 잘 구성해 둔 다음 LOD 그룹을 주로 사용할 것을 추천합니다.
-
LOD 개수 는 4 로 설정한 뒤 변경사항 적용 버튼을 누르면 메시에 네 개의 LOD 가 새로 추가됩니다.
Auto Compute LOD Distances (LOD 거리 자동 계산) 옵션이 체크되었는지 확인하세요. LOD 에 사용할 화면 크기를 정하는 데 도움이 됩니다. 알고리즘 상으로는 에지를 접을 때마다 시각적으로 얼마나 차이가 나는지 알고 있으므로, 이 정보를 사용하여 얼마만큼의 거리에서 그만큼의 오차를 허용할지 결정할 수 있습니다. 이 옵션을 끄면 각 LOD 의 화면 크기를 수동 설정해줘야 해서 오차가 발생할 수 있습니다.
-
LOD1 옆의 작은 흰색 삼각형을 클릭하여 그 부분을 펼친 뒤 Reduction Settings (감소 세팅) 옆의 작은 흰색 삼각형을 클릭합니다.
-
감소 세팅 아래 Percent Triangle (퍼센트 트라이앵글) 섹션을 찾아 75 로 설정한 뒤 변경사항 적용 버튼을 누릅니다.
-
이제 LOD2 와 LOD3 를 펼치고 LOD2 의 퍼센트 트라이앵글 은 25, LOD3 의 퍼센트 트라이앵글은 12 로 설정합니다. 완료되면 아래 그림처럼 각 LOD 이름 옆 LOD 가 사용하는 트라이앵글 수가 보일 것입니다.
-
스태틱 메시 에디터에서 카메라를 오브젝트에 가까이 또는 멀리 이동하면, LOD 변화를 확인할 수 있을 것입니다. LOD 의 시각적 변화가 잘 확인되지 않는 경우, LOD 변화 관련 정보가 화면 왼편에 표시됩니다.
이제 이 스태틱 메시에 LOD 가 구성되었으므로, 이 스태틱 메시를 레벨에 배치하면 카메라와의 거리에 따라 LOD 를 자동 선택할 것입니다.
최종 결과
다음에는 UE4 가 제공하는 자동 LOD 생성 툴 사용법 두 가지를 살펴보겠습니다. 자동 LOD 툴을 사용할 때는, 먼저 프로젝트의 요구에 맞는 다양한 LOD 그룹을 먼저 구성하고 정의한 뒤 LOD 세팅 아래에서 찾을 수 있는 LOD 그룹 드롭 다운으로 여러 세팅 중 하나를 선택하는 것이 좋습니다.