2018.3 지형 업데이트: 시작하기

CHRIS TCHOU / UNITY TECHNOLOGIESContributor
Oct 10, 2018|5 분
2018.3 지형 업데이트: 시작하기
이 웹페이지는 이해를 돕기 위해 기계 번역으로 제공됩니다. 기계 번역으로 제공되는 콘텐츠에 대한 정확도나 신뢰도는 보장되지 않습니다. 번역된 콘텐츠의 정확도에 관해 의문이 있는 경우 웹페이지의 공식 영어 원문을 참고해 주시기 바랍니다.

이제 지형 전담 팀이 생겼으며, 초기 작업 결과를 곧 공개할 예정입니다! Unity 2018.3은 지형 시스템 업데이트와 함께 출시됩니다. 이번 업데이트는 GPU를 더 잘 활용하여 도구와 성능을 개선한 것이 특징입니다. 또한 HDLW 렌더 파이프라인에 대한 지원이 추가되었으며, 빌트인 렌더 파이프라인 및 기존 Unity 터레인 시스템과 역호환됩니다.

지금 Unity 2018.3 베타 버전을 다운로드하여 업데이트를 미리 사용해 보세요! 베타 버전은 아직 개발 중이므로 사용자 인터페이스와 API는 모두 변경될 수 있다는 점에 유의하세요.

성능

성능 측면에서는 지형에 GPU 인스턴스화된 렌더링 경로를 추가했습니다. 대부분의 경우 인스턴싱을 사용하면 추첨 콜을 발행하는 횟수가 크게 줄어듭니다. 많은 테스트에서 CPU 비용이 50% 이상 절감되었습니다(물론 실제 수치는 플랫폼과 사용 사례에 따라 달라질 수 있습니다). 지형 설정에서 '인스턴스화 그리기'를 활성화하여 이 새 렌더링 경로를 선택할 수 있습니다:

이미지

이 기능을 활성화하면 Unity는 높이 맵과 스플랫 맵과 같은 무거운 지형 데이터를 모두 GPU의 텍스처로 변환합니다. CPU에서 각 지형 패치에 대한 커스텀 메시를 구성하는 대신 GPU 인스턴싱을 사용하여 단일 메시를 복제하고 하이트 맵 텍스처를 샘플링하여 올바른 지오메트리를 생성할 수 있습니다. 인스턴스화된 몇 번의 드로 콜이 잠재적으로 수천 개의 커스텀 메시 드로를 대체하므로 지형 CPU 작업량이 크게 줄어듭니다.

좋은 부수적인 효과로 로딩 시간도 개선되었습니다! 커스텀 메시를 모두 빌드하지 않아도 될 뿐만 아니라 GPU를 사용하여 베이스맵(사전 블렌딩된 LOD 텍스처)을 빌드할 수 있는데, 이런 종류의 작업은 GPU가 훨씬 빠릅니다. 즉, 커스텀 지형 셰이더가 있는 경우 이제 '베이스맵 빌드' 셰이더를 오버라이드하고 일치하는 베이스맵 LOD 텍스처를 생성할 수 있습니다.

지형 비주얼

인스턴싱은 지형 노멀의 모양도 개선합니다. 지형 메시 노멀을 하이트맵에서 생성되고 픽셀 셰이더에서 샘플링되는 노멀 맵 텍스처에 저장하여 지오메트리에서 노멀을 분리합니다. 즉, 노멀은 메시 LOD 레벨과 무관합니다. 결과적으로 '픽셀 오류율'을 높여 버텍스 비용을 줄이면서 아티팩트를 줄일 수 있습니다.

이미지

또한 유니티는 인스턴스 렌더링과 픽셀 단위 노멀을 지원하는 HD 및 LW 렌더 파이프라인용 지형 셰이더를 개발했으며, 패키지 버전 4.0.0 이상에서 사용할 수 있습니다. HD 셰이더는 높이 및 밀도 블렌드 모드, 일반 스케일링, 텍스처 제어 표면 금속성 및 평활도와 같은 새로운 기능을 지원하도록 더욱 향상되었습니다. HD 지형 셰이더는 단일 패스로 제한되지만 한 패스에서 최대 8개의 지형 레이어를 블렌딩할 수 있습니다.

스크립트 가능한 GPU 도구

에디터 측면에서는 커스텀 지형 툴을 직접 제작할 수 있는 스크립트 API와 GPU에서 원활한 교차 타일 조각 및 페인팅 작업을 쉽게 구현하는 데 사용할 수 있는 유틸리티 함수를 공개했습니다. 새로운 TerrainAPI에는 지형 툴을 위한 베이스 클래스인 TerrainPaintTool<T0>과 지형 데이터 수정을 위한 유틸리티 함수가 포함된 TerrainPaintUtility가 포함되어 있습니다.

이러한 변경 사항을 적용하여 기존의 모든 지형 툴을 GPU 작업으로 전환했습니다. 이러한 도구를 훨씬 빠르게 만들었을 뿐만 아니라 브러시 크기가 커지고 브러시 미리보기가 개선되었으며 자동 심 스티칭 기능으로 지형 타일 테두리를 가로질러 페인팅할 수 있게 되었습니다.

이미지

또한 브러시 회전, 무작위화 등의 브러시 기능과 하이트맵, 메시 스탬핑, 복제 브러시 등의 고급 페인팅 도구도 실험하기 시작했습니다. 이러한 페인팅 툴 기능은 현재 2018.3에는 제공되지 않지만, GitHub 지형 툴 프로젝트를 통해 제공될 예정입니다.

다중 지형 지원
이미지

여러 지형 타일로 더 쉽게 작업할 수 있도록 했습니다. 이제 지형 간 페인팅을 매끄럽게 처리하는 것 외에도 인접한 지형 간의 연결을 자동으로 관리할 수 있습니다. 이전에는 수동으로 이웃을 연결하기 위해 스크립트를 작성해야 했습니다.

지형 설정에서 '자동 연결'을 활성화하면 지형이 동일한 그룹 ID를 가진 이웃 지형에 자동으로 연결됩니다.

기존 지형을 확장할 때 새로운 '이웃 지형 만들기' 도구를 사용하면 빈 테두리를 따라 일치하는 지형 타일을 빠르게 추가할 수 있습니다.

이미지

또한 크기 조정과 해상도 변경이 덜 파괴적일 수 있도록 노력하고 있습니다. 2018.3에서는 해상도를 변경하면 데이터를 지우고 모든 작업이 손실되는 이전 동작 대신 하이트맵과 스플랫맵이 다시 샘플링됩니다. 가까운 시일 내에 모든 크기 조정 작업을 개선하기 위해 노력하고 있습니다.

새로운 자산 유형

워크플로를 간소화하기 위해 터레인 레이어 에셋과 브러시 에셋이라는 두 가지 새로운 지형 관련 에셋 유형도 만들었습니다.

이미지

터레인 레이어를 사용하면 터레인 오브젝트와 독립적으로 터레인 머티리얼을 정의할 수 있으므로 여러 지형에서 동일한 머티리얼을 쉽게 추적할 수 있습니다. 이는 원활한 페인팅과 머티리얼 수정에 도움이 됩니다. 또한 임의의 셰이딩 목적으로 사용할 수 있는 "마스크 맵" 텍스처와 스크립트 인터페이스를 지원하도록 TerrainLayer 에셋을 확장하여 셰이더에 따라 달라지는 커스텀 GUI를 제공합니다.

이미지

브러시는 페인팅 및 조각 도구에서 사용하는 GPU 브러시 모양을 나타냅니다. 이제 텍스처와 방사형 감쇠 커브로 정의됩니다. 이제 브러시 모양을 훨씬 쉽게 만들고 조정할 수 있습니다(이전에는 특수하게 제작된 이미지 파일을 특수한 이름의 폴더에 넣어야 했습니다).

또한 Unity에 R16 텍스처 포맷(단일 채널 16비트 포맷)에 대한 지원도 추가했습니다. 이렇게 하면 하이트맵 스탬프로 사용할 경우 원치 않는 '계단식' 효과를 유발할 수 있는 브러시 모양에 대한 8비트 양자화를 피할 수 있습니다.

이미지

지형 팀은 이제 막 시작 단계이며 개발은 계속 진행 중입니다. 월드 빌딩 포럼에서 피드백을 보내주세요!