데칼 프로젝터
고해상도 렌더 파이프라인(HDRP)에는 특정 머티리얼(데칼)을 씬에 투사할 수 있도록 해주는 Decal Projector 컴포넌트가 있습니다. 데칼은 데칼 셰이더나 데칼 마스터 스택을 사용하는 머티리얼입니다. Decal Projector 컴포넌트가 씬에 데칼을 투사하면 데칼이 씬의 조명과 상호작용하고 메시를 래핑합니다. HDRP가 데칼을 인스턴스화하므로 씬에 수천 개의 데칼을 동시에 사용할 수 있습니다. 즉 데칼이 동일한 머티리얼을 사용하는 한 렌더링 프로세스가 많은 리소스를 소모하지 않습니다.
데칼 프로젝터는 또한 데칼 레이어를 지원하며 이는 레이어별로 데칼을 수신하는 머티리얼 종류를 제어할 수 있다는 의미입니다.
데칼 프로젝터의 프로퍼티를 편집하려면 Decal Projector 컴포넌트가 있는 게임 오브젝트를 선택하고 인스펙터를 사용합니다. 투사 크기를 변경하고자 하는 경우 인스펙터를 사용하거나 데칼 프로젝터의 씬 뷰 기즈모를 사용할 수 있습니다.
씬 뷰 사용
데칼 프로젝터에는 프로젝터 위치 지정에 도움이 되는 경계와 투사 방향에 대한 씬 뷰 표현이 포함되어 있습니다. 씬 뷰 표현은 다음 사항을 포함합니다.
상자는 프로젝터의 3D 크기를 설명합니다. 프로젝터는 상자 안의 모든 머티리얼에 데칼을 드로우합니다.
화살은 프로젝터가 향하는 방향을 나타냅니다.
데칼 프로젝터에는 또한 프로젝터 경계 크기를 변경할 수 있도록 클릭하고 드래그하는 모든 면에 핸들을 추가하는 두 가지 기즈모가 포함됩니다.
버튼 | 기즈모 | 설명 |
---|---|---|
Scale | 프로젝터 상자가 있는 데칼을 확대/축소합니다. 이는 머티리얼의 UV를 변경하여 프로젝터 상자의 크기를 일치시킵니다. 이렇게 하여 데칼을 늘입니다. | |
Crop | 프로젝터 상자가 있는 데칼을 자릅니다. 이는 프로젝터 상자의 크기를 변경하지만 머티리얼의 UV는 변경하지 않습니다. 이렇게 하면 데칼을 자릅니다. |
인스펙터 사용
인스펙터를 사용하여 모든 Decal Projector 프로퍼티를 변경하고 Size, Tiling, Offset에 숫자 값을 사용하여 기즈모 메서드를 클릭하여 드래그하는 방식보다 정확도를 더 높일 수 있습니다.
프로퍼티
프로퍼티 | 설명 |
---|---|
Size | 프로젝터 인플루언스 상자와 투사된 평면에 따른 데칼의 크기입니다. 프로젝터는 데칼을 확대/축소하여 Size의 Width(로컬 x축을 따라) 및 Height(로컬 y축을 따라) 컴포넌트에 맞춥니다. |
Projection Depth | 프로젝터 인플루언스 상자의 뎁스입니다. 프로젝터는 데칼을 확대/축소하여 Projection Depth에 맞춥니다. Decal Projector 컴포넌트는 로컬 z축 상에 데칼을 투사합니다. |
Material | 투사할 데칼 머티리얼입니다. 데칼 머티리얼은 HDRP/데칼 셰이더를 사용해야 합니다. |
Decal Layer | 데칼을 투사할 머티리얼을 지정하는 레이어입니다. 일치하는 데칼 레이어를 사용하는 모든 메시 렌더러나 터레인은 해당 데칼을 수신합니다. |
Draw Distance | 프로젝터가 데칼 투사를 멈추고 HDRP가 데칼을 더 이상 렌더링하지 않는 카메라에서 데칼까지의 거리입니다. |
Start Fade | 슬라이더를 사용하여 프로젝터가 데칼을 페이드아웃하기 시작하는 카메라로부터의 거리를 설정합니다. 0에서 1 사이에서 확대/축소되며 Draw Distance의 백분율을 표현합니다. 값으로 0.9를 설정하면 Draw Distance의 90%에서 데칼을 페이드아웃하기 시작한 후 Draw Distance에서 페이드아웃을 완료합니다. |
Angle Fade | 최소-최대 슬라이더를 사용하여 수신하는 표면의 데칼 후방과 버텍스 노멀 사이에서 각도를 토대로 데칼의 페이드아웃 범위를 제어합니다. Decal Layers 기능이 활성화된 경우에만 사용할 수 있습니다. |
End Angle Fade | 슬라이더를 사용하여 데칼을 페이드아웃하기 위해 프로젝터가 멈추는 데칼 후방에서 각도를 설정합니다. 0에서 180까지 확대/축소하고 각도를 도 단위로 표현합니다. Decal Layers 기능이 활성화된 경우에만 사용할 수 있습니다. |
Tiling | 해당 UV축상에서 데칼 머티리얼을 확대/축소합니다. |
Offset | 해당 UV축상에서 데칼 머티리얼을 오프셋합니다. 데칼에 머티리얼 아틀라스를 사용하는 경우 이 프로퍼티를 UV Scale과 함께 사용하십시오. |
Fade Factor | 데칼을 수동으로 페이드인/페이드아웃할 수 있습니다. 값을 0으로 설정하면 데칼이 완전히 투명해지고, 값을 1로 설정하면 데칼이 Material에 정의된 정도로 불투명해집니다. Material은 Global Opacity와 불투명도 맵을 사용하여 데칼의 최대 불투명도를 관리합니다. |
Affects Transparent | 체크박스를 활성화하면 HDRP가 투명 표면 위에 프로젝터의 데칼을 그릴 수 있습니다. HDRP는 Affects Transparency가 활성화된 데칼의 모든 텍스처를 아틀라스에 패킹하며, 이는 메모리와 성능에 영향을 줄 수 있습니다. Unity 프로젝트의 HDRP 에셋에 있는 Decals 섹션에서 이 아틀라스의 크기를 편집할 수 있습니다. |
제한 사항
- 데칼 프로젝터는 데칼 셰이더나 데칼 마스터 스택으로 불투명 머티리얼에 영향을 줄 수 있습니다. 하지만 데칼 셰이더로는 투명한 머티리얼에만 영향을 줄 수 있습니다.
- 데칼 이미시브는 투명 머티리얼에서 지원되지 않습니다.
- HDRP에서 머티리얼의 Receive Decals 프로퍼티는 이미시브 데칼에 영향을 주지 않습니다. 레이어별로 이미시브 데칼을 비활성화할 수 있는 데칼 레이어를 사용하지 않으면 HDRP는 항상 이미시브 데칼을 렌더링합니다.
- 데칼을 투명 표면에 투사하는 경우 HDRP는 데칼의 텍스처 타일링을 무시합니다.
- Project Settings > Graphics에서 Instancing Variants가 Strip All로 설정되어 있는 경우 Unity는 프로젝트를 빌드할 때 이 컴포넌트가 레퍼런스하는 데칼 셰이더를 스트리핑합니다. 이는 Always Included Shaders 리스트에 셰이더를 포함하는 경우에도 발생합니다. Unity가 빌드 프로세스 동안 셰이더를 스트리핑하는 경우 데칼은 빌드된 애플리케이션에 표시되지 않습니다.