{}!Google Tag Manager end}} 데칼 렌더러 기능 | Universal RP | 14.0.9
docs.unity3d.com
    목차 표시/숨기기

    데칼 렌더러 기능

    Unity는 데칼 렌더러 기능을 사용하여 특정 머티리얼(데칼)을 씬의 다른 오브젝트에 투사할 수 있습니다. 데칼은 씬의 조명과 상호작용하고 메시를 둘러쌉니다.

    데칼이 없는 샘플 씬
    데칼이 없는 샘플 씬

    데칼이 있는 샘플 씬
    데칼이 있는 샘플 씬. 데칼은 머티리얼 간에 경계 부분을 숨겨서 예술적 디테일을 더합니다.

    데칼을 사용하는 방법에 대한 예시는 URP 패키지 샘플에 포함된 데칼 샘플을 참조하십시오.

    기능을 사용하는 방법

    씬에 데칼을 추가하려면 다음 단계를 따르십시오.

    1. 데칼 렌더러 기능을 URP 렌더러에 추가합니다.

    2. 머티리얼을 생성하고 Shader Graphs/Decal 셰이더를 할당합니다. 머티리얼에서 베이스 맵과 노멀 맵을 선택합니다.

      예제 데칼 머티리얼

    3. 새로운 데칼 프로젝터 게임 오브젝트를 생성하거나 Decal Projector 컴포넌트를 기존 게임 오브젝트에 추가합니다.

    다음 그림은 씬에 있는 데칼 프로젝터를 보여줍니다.

    씬에 있는 데칼 프로젝터.

    자세한 내용은 Decal Projector 컴포넌트를 참조하십시오.

    씬에 데칼을 추가하는 또 다른 방법:

    1. 사각형 게임 오브젝트를 생성합니다.

    2. 게임 오브젝트에 데칼 머티리얼을 할당합니다.

    3. 데칼을 배치할 표면에 사각형을 배치합니다. 필요한 경우 메시 바이어스 값을 조정하여 Z 파이팅을 방지합니다.

    제한 사항

    이 기능에는 다음의 제한 사항이 있습니다.

    • 데칼 투사는 투명한 표면에서는 작동하지 않습니다.

    데칼 렌더러 기능 프로퍼티

    이 섹션에서는 데칼 렌더러 기능의 프로퍼티를 설명합니다.

    데칼 렌더러 기능, 인스펙터 뷰.
    데칼 렌더러 기능, 인스펙터 뷰.

    Technique

    렌더러 기능에 대한 렌더링 기법을 선택합니다.

    이 섹션에서는 이 프로퍼티의 옵션에 대해 설명합니다.

    Automatic

    Unity가 빌드 플랫폼에 따라 자동으로 렌더링 기법을 선택합니다.

    DBuffer

    Unity가 데칼을 데칼 버퍼(DBuffer)로 렌더링합니다. Unity는 불투명 렌더링 동안 불투명 오버레이 위에 DBuffer의 콘텐츠를 오버레이합니다.

    이 렌더링 기법을 선택하면 Surface Data 프로퍼티가 표시됩니다. Surface Data 프로퍼티를 사용하면 Unity가 기본 메시와 블렌딩하는 데칼의 표면 프로퍼티를 지정할 수 있습니다. Surface Data 프로퍼티에는 다음과 같은 옵션이 있습니다.

    • Albedo: 데칼이 기본 컬러와 이미션 컬러에 영향을 미칩니다.
    • Albedo Normal: 데칼이 기본 컬러, 이미션 컬러, 노멀에 영향을 미칩니다.
    • Albedo Normal MAOS: 데칼이 기본 컬러, 이미션 컬러, 노멀, 메탈릭 값, 평활도 값, 앰비언트 오클루전 값에 영향을 미칩니다.

    제한 사항:

    • 이 기법에는 뎁스 노멀 프리패스가 필요하므로, 타일 기반 렌더링을 구현하는 GPU에서는 이 기법의 효율성이 떨어집니다.

    • 이 기법은 파티클 및 터레인 디테일에 대해서는 동작하지 않습니다.

    Screen Space

    Unity가 뎁스 텍스처에서 재구성하는 노멀을 사용하여 불투명 오브젝트 이후 데칼을 렌더링합니다. Unity가 불투명 메시 위에 데칼을 메시로 렌더링합니다. 이 기법은 노멀 블렌딩만 지원합니다.

    타일 기반 렌더링을 사용하는 모바일 플랫폼에는 스크린 공간 데칼을 사용하는 것이 좋습니다. Use Rendering Layers를 활성화하지 않으면 URP가 DepthNormal 프리패스를 생성하지 않기 때문입니다.

    이 렌더링 기법을 선택하면 다음 프로퍼티가 표시됩니다.

    프로퍼티 설명
    Normal Blend 이 프로퍼티의 옵션(Low, Medium, High)은 뎁스 텍스처에서 노멀 벡터를 재구성할 때 Unity가 사용하는 뎁스 텍스처의 샘플 수를 결정합니다. 품질이 높을수록 재구성된 노멀의 정확도가 더 높아지고 성능에 미치는 영향도 더 커집니다.
        Low Unity가 노멀을 재구성할 때 하나의 뎁스 샘플을 사용합니다.
        Medium Unity가 노멀을 재구성할 때 3개의 뎁스 샘플을 사용합니다.
        High Unity가 노멀을 재구성할 때 5개의 뎁스 샘플을 사용합니다.

    Max Draw Distance

    Unity가 데칼을 렌더링하는 카메라로부터의 최대 거리입니다.

    렌더링 레이어 사용

    이 체크박스를 선택하면 렌더링 레이어 기능이 활성화됩니다.

    Use Rendering Layers를 활성화하면 URP가 DepthNormal 프리패스를 생성합니다. 그럴 경우 타일 기반 렌더링을 구현하는 GPU에서 데칼의 효율성이 떨어집니다.

    Decal Projector 컴포넌트

    Decal Projector 컴포넌트를 통해 Unity 프로젝트는 씬의 다른 오브젝트에 데칼을 투사할 수 있습니다. Decal Projector 컴포넌트는 할당된 데칼 셰이더 그래프(Shader Graphs/Decal)와 함께 머티리얼을 사용해야 합니다.

    데칼 프로젝터를 사용하는 자세한 방법은 기능을 사용하는 방법 섹션을 참조하십시오.

    Decal Projector 컴포넌트에는 씬 뷰 편집 툴과 Decal Projector 프로퍼티가 들어 있습니다.

    인스펙터의 Decal Projector 컴포넌트.
    인스펙터의 Decal Projector 컴포넌트.

    참고: 데칼 머티리얼을 게임 오브젝트에 직접(Decal Projector 컴포넌트를 통하지 않고) 할당하면 데칼 프로젝트가 해당 게임 오브젝트에 데칼을 투사하지 않습니다.

    데칼 씬 뷰 편집 툴

    데칼 프로젝터를 선택하면 Unity는 해당 경계와 투사 방향을 표시합니다.

    데칼 프로젝터는 경계 상자 내부의 모든 메시에 데칼 머티리얼을 그립니다.

    흰색 화살표는 투사 방향을 나타냅니다. 화살표의 밑면이 피벗 포인트입니다.

    데칼 프로젝터 경계 상자

    Decal Projector 컴포넌트는 다음의 씬 뷰 편집 툴을 제공합니다.

    씬 뷰 편집 툴

    아이콘 동작 설명
    Scale 선택하면 프로젝터 상자와 데칼의 크기를 조정할 수 있습니다. 이 툴은 머티리얼의 UV를 변경하여 프로젝터 상자의 크기에 맞춥니다. 이 툴은 피벗 포인트에 영향을 주지 않습니다.
    Crop 선택하면 프로젝터 상자로 데칼을 자르거나 타일링할 수 있습니다. 이 툴은 프로젝터 상자의 크기를 변경하지만 머티리얼의 UV는 변경하지 않습니다. 이 툴은 피벗 포인트에 영향을 주지 않습니다.
    Pivot / UV 선택하면 프로젝터 상자를 이동시키지 않고도 데칼의 피벗 포인트를 이동시킬 수 있습니다. 이 툴은 트랜스폼 포지션을 변경합니다.
    이 툴은 투사된 텍스처의 UV 좌표에도 영향을 미칩니다.

    Decal Projector 컴포넌트 프로퍼티

    이 섹션에서는 Decal Projector 컴포넌트 프로퍼티에 대해 설명합니다.

    프로퍼티 설명
    Scale Mode 이 데칼 프로젝터가 루트 게임 오브젝트의 Transform 컴포넌트에서 Scale 값을 상속할지 여부를 선택합니다.
    옵션:
    • Scale Invariant: Unity는 이 컴포넌트에서만 스케일 값(Width, Height 등)을 사용하고 루트 게임 오브젝트의 값은 무시합니다.
    • Inherit from Hierarchy: Unity가 루트 게임 오브젝트 트랜스폼의 lossy Scale 값에 데칼 프로젝터의 Scale 값을 곱하여 데칼의 스케일링 값을 평가합니다.
    참고: 데칼 프로젝터는 직교 투사를 사용하므로, 루트 게임 오브젝트가 비뚤어진 경우 데칼이 올바르게 확대/축소되지 않습니다.
    Width 프로젝터 경계 상자의 너비입니다. 프로젝터는 로컬 X축에서 이 값과 일치하도록 데칼을 확대/축소합니다.
    Height 프로젝터 경계 상자의 높이입니다. 프로젝터는 로컬 Y축에서 이 값과 일치하도록 데칼을 확대/축소합니다.
    Projection Depth 프로젝터 경계 상자의 뎁스입니다. 프로젝터가 로컬 Z축에서 데칼을 투사합니다.
    Pivot 루트 게임 오브젝트의 원점을 기준으로 프로젝터 경계 상자 중심의 오프셋 포지션입니다.
    Material 투사할 머티리얼입니다. 머티리얼은 데칼 머티리얼 타입이 있는 셰이더 그래프를 사용해야 합니다. 자세한 내용은 데칼 셰이더 그래프 페이지를 참조하십시오.
    Tiling 해당 UV축에서 데칼 머티리얼에 대한 타일링 값입니다.
    Offset 해당 UV축에서 데칼 머티리얼에 대한 오프셋 값입니다.
    Opacity 이 프로퍼티를 사용하면 불투명도 값을 지정할 수 있습니다. 값을 0으로 지정하면 데칼이 완전히 투명해지고, 값을 1로 지정하면 데칼이 Material 에 정의된 대로 불투명해집니다.
    Draw Distance 프로젝터가 데칼 투사를 멈추고 URP가 데칼을 더 이상 렌더링하지 않는 카메라에서 데칼까지의 거리입니다.
    Start Fade 이 슬라이더를 사용하여 프로젝터가 데칼을 페이드아웃하기 시작하는 카메라로부터의 거리를 설정합니다. 0에서 1 사이의 값은 Draw Distance 의 일부를 나타냅니다. 값이 0.9이면 Unity는 Draw Distance 의 90%에서 데칼을 페이드아웃하기 시작한 후 Draw Distance 에서 페이드아웃을 완료합니다.
    Angle Fade 슬라이더를 사용하여 데칼의 뒤쪽 방향과 수신 표면의 버텍스 노멀 사이의 각도를 기반으로 데칼의 페이드아웃 범위를 설정합니다.

    성능

    데칼은 머티리얼 프로퍼티 블록을 사용하기 때문에 설계상 SRP 배처를 지원하지 않습니다. 드로우 콜 수를 줄이기 위해 GPU 인스턴싱을 사용하여 데칼을 일괄 처리할 수 있습니다. 씬의 데칼이 동일한 머티리얼을 사용하고 머티리얼에 Enable GPU Instancing 프로퍼티가 활성화된 경우 Unity는 머티리얼을 인스턴스화하여 드로우 콜 수를 줄입니다.

    데칼에 필요한 머티리얼의 수를 줄이려면 여러 개의 데칼 텍스처를 하나의 텍스처(아틀라스)에 넣으십시오. 데칼 프로젝터의 UV 오프셋 프로퍼티를 사용하여 아틀라스의 어느 부분을 표시할지 결정할 수 있습니다.

    다음 이미지는 데칼 아틀라스의 예를 보여줍니다.

    데칼 아틀라스
    왼쪽: 데칼 아틀라스에 네 개의 데칼이 있습니다. 오른쪽: 데칼 프로젝터가 그중 하나를 투사하고 있습니다. 데칼 머티리얼에 GPU 인스턴싱이 활성화된 경우 네 개 데칼의 모든 인스턴스가 하나의 인스턴스화된 드로우 콜로 렌더링됩니다.

    맨 위로
    Copyright © 2023 Unity Technologies —
    • Your Privacy Choices (Cookie Settings)