데칼
고해상도 렌더 파이프라인(HDRP)에는 씬에서 데칼을 생성하는 두 가지 방법이 포함되어 있습니다. 데칼 메시를 사용하고 수동으로 데칼 위치를 지정하거나 Decal Projector 컴포넌트를 사용하여 데칼을 투사합니다. 이러한 메서드는 둘 다 데칼 셰이더나 데칼 마스터 스택 중 하나를 사용하는 머티리얼인 데칼 머티리얼을 만들어야 합니다. 이 중 하나를 사용하여 씬에 배치하거나 투사할 수 있는 데칼 머티리얼을 만들 수 있습니다.
제한 및 호환성
데칼 프로젝터는 데칼 셰이더나 데칼 마스터 스택으로 불투명한 머티리얼에 영향을 줄 수 있습니다. 하지만 데칼 셰이더로는 투명한 머티리얼에만 영향을 줄 수 있습니다. 투명 머티리얼에는 이미시브를 지원하지 않고 데칼 레이어를 지원합니다. 데칼 메시는 데칼 셰이더나 데칼 마스터 스택으로 불투명 머티리얼에만 영향을 줄 수 있습니다. 데칼 메시는 데칼 레이어를 지원하지 않습니다.
데칼 레이어
데칼 레이어 활성화
데칼 레이어를 사용하려면 먼저 프로젝트의 HDRP 에셋에서 활성화합니다. 그런 다음 프레임 설정에서 데칼 레이어를 활성화하여 데칼 레이어를 처리하기 위해 카메라를 설정할 수 있습니다.
- 프로젝트 창에서 HDRP 에셋을 선택하고 인스펙터에서 Decal > Layers로 이동하여 체크박스를 활성화합니다.
- 모든 카메라의 기본 프레임 설정에서 데칼 레이어를 활성화하려면 HDRP 에셋에서 Default Frame Settings For 섹션으로 이동하고 드롭다운에서 Camera를 선택한 다음 Rendering 섹션에서 Decal Layers 체크박스를 활성화합니다.
카메라의 프레임 설정을 오버라이드하고 개별적으로 데칼 레이어를 설정합니다.
- 씬 뷰나 계층 창에서 카메라를 클릭하여 인스펙터에서 해당 프로퍼티를 확인합니다.
- General 섹션으로 이동하고 Custom Frame Settings 체크박스를 활성화합니다. 이렇게 하면 이 카메라만 커스터마이즈하기 위해 사용할 수 있는 Frame Settings Overrides를 노출합니다.
- Rendering 섹션에서 이 카메라가 데칼 레이어를 사용하도록 Decal Layers 체크박스를 활성화합니다.
데칼 레이어 사용
데칼 레이어를 활성화한 다음 이를 사용하여 메시를 씬의 특정 데칼 프로젝터에서 분리할 수 있습니다. 이렇게 하려면 다음 단계를 따르십시오.
- 계층 구조나 씬 뷰에서 데칼 프로젝터를 클릭하여 인스펙터에서 확인합니다.
- Decal Layer 프로퍼티 드롭다운을 사용하여 이 데칼 프로젝터가 영향을 줄 데칼 레이어를 선택합니다.
- 계층 구조나 씬 뷰에서 메시 렌더러나 터레인을 클릭하여 인스펙터에서 확인합니다.
- Rendering Layer Mask 드롭다운을 사용하여(게임 오브젝트의 경우 MeshRenderer를 참조하고 터레인의 경우 OtherSettings를 참조) 이 메시 렌더러나 터레인에 영향을 줄 데칼 레이어를 선택합니다. 데칼 레이어를 활성화하면 데칼은 메시 렌더러나 터레인이 모두 일치하는 데칼 레이어를 사용하는 경우에만 영향을 줍니다.
데칼 레이어 이름 변경
기본적으로 데칼 프로젝터나 메시 렌더러, 터레인용 UI에서 데칼 레이어 이름은 Decal Layer 1-7로 지정됩니다. 더 쉽게 구분하려면 각 데칼 레이어에 특정 이름을 지정할 수도 있습니다. 이렇게 하려면 Default Settings Windows를 열고 Decal Layer Names로 이동합니다. 여기에서 각 데칼 레이어의 이름을 개별적으로 설정할 수 있습니다.
성능 영향
데칼 레이어를 활성화하면 메모리가 증가하고 GPU 성능 비용이 발생하며 더 많은 셰이더 배리언트를 생성해야 합니다(이로 인한 빌드 시간 증가).
메시 렌더러나 터레인의 Rendering Layer Mask를 통해 데칼 레이어 시스템을 사용하여 데칼을 비활성화하는 경우 성능이 절약되지 않습니다. 대신 성능을 절약하려면 메시 렌더러나 터레인의 머티리얼에 대한 Receive Decals 프로퍼티를 비활성화해야 합니다.
구현 세부 정보: HDRP가 불투명 머티리얼에 데칼을 적용할 수 있도록 하려면 작업의 CPU 리소스 강도에 추가되는 뎁스 프리패스에서 뎁스를 반드시 렌더링해야 합니다. 전체 뎁스 프리패스를 강제로 실행하지 않으면 활성화된 Receive Decals가 있는 머티리얼만 뎁스 프리패스에서 렌더링됩니다. 데칼 레이어 시스템으로 데칼을 비활성화하는 경우 HDRP는 계속 뎁스 프리패스에서 렌더링합니다. 따라서 성능을 절약하려면 머티리얼에서 Receive Decals 프로퍼티를 비활성화해야 합니다.
Unity 2020.2 이전 데이터 마이그레이션
Unity 2020.2 이전에 새로운 메시 렌더러와 터레인용 Rendering Layer Mask에 대한 기본 값에는 데칼 레이어 플래그가 포함되지 않습니다. 즉 데칼 레이어를 활성화하면 이러한 메시 렌더러와 터레인이 기본적으로 데칼을 수신하지 않습니다. 이후의 버전은 기본적으로 Decal Layer Default를 사용합니다.