릿 셰이더
릿 셰이더를 사용하면 돌, 나무, 유리, 플라스틱, 금속 등과 같은 실제 표면을 매우 사실적인 품질로 렌더링할 수 있습니다. 광원 수준과 반사가 사실적으로 보이고 다양한 조명 조건(예: 밝은 햇빛, 어두운 동굴)에서 올바르게 반응합니다. 이 셰이더는 유니버설 렌더 파이프라인(URP)에서 연산 능력을 가장 많이 소모하는 셰이딩 모델을 사용합니다.
릿 셰이더를 사용하는 방법에 대한 예시는 URP 패키지 샘플에 포함된 셰이더 샘플을 참조하십시오.
에디터에서 릿 셰이더 사용
이 셰이더를 선택하고 사용하려면 다음 단계를 따르십시오.
- 프로젝트에서 셰이더를 사용할 머티리얼을 생성하거나 찾습니다. Material 을 선택하면 머티리얼 인스펙터 창이 열립니다.
- Shader 를 클릭한 후 Universal Render Pipeline > Lit 을 선택합니다.
UI 개요
이 셰이더의 인스펙터 창에는 다음의 요소가 포함되어 있습니다.
표면 옵션
Surface Options 는 URP가 화면의 머티리얼을 렌더링하는 방식을 제어합니다.
프로퍼티 | 설명 |
---|---|
Workflow Mode | 이 드롭다운 메뉴를 사용하여 메탈릭 또는 스페큘러 텍스처에 적합한 워크플로를 선택할 수 있습니다. 선택을 마치면 인스펙터의 나머지 부분에 있는 메인 텍스처 옵션이 선택한 워크플로를 따릅니다. 메탈릭 또는 스페큘러 워크플로에 대한 자세한 내용은 Unity 스탠다드 빌트인 셰이더에 대한 이 매뉴얼 페이지를 참조하십시오. |
Surface Type | 이 드롭다운을 사용하여 머티리얼에 Opaque 또는 Transparent 표면 타입을 적용합니다. 이 프로퍼티는 URP가 머티리얼을 렌더링할 렌더 패스를 결정합니다. Opaque 표면 타입은 뒤에 무엇이 있든 관계없이 항상 표시됩니다. URP는 불투명 머티리얼을 먼저 렌더링합니다. Transparent 표면 타입은 배경의 영향을 받으며, 선택하는 투명 표면 타입에 따라 크게 다를 수 있습니다. URP는 불투명 오브젝트 다음에 별도 패스로 투명 머티리얼을 렌더링합니다. Transparent 를 선택하면 Blending Mode 드롭다운이 나타납니다. |
Blending Mode | 투명 머티리얼을 배경과 블렌딩할 때 Unity가 투명 머티리얼의 각 픽셀 컬러를 계산하는 방법을 선택합니다. Blending Mode에서 Source는 블렌딩 모드가 설정된 투명 머티리얼을 나타내고, Destination은 머티리얼이 겹치는 모든 요소를 나타냅니다. |
Alpha | ![]() Alpha 블렌딩 모드. Alpha 는 머티리얼의 알파 값을 사용하여 오브젝트의 투명도를 변경합니다. 0은 완전 투명입니다. 255는 완전 불투명이며, 블렌딩 등식과 함께 사용하면 값이 1로 변환됩니다. 머티리얼은 알파 값에 관계없이 항상 투명 렌더 패스에서 렌더링됩니다. 이 모드에서는 Preserve Specular Lighting 프로퍼티를 사용할 수 있습니다. 알파 등식: OutputRGBA = (SourceRGB × SourceAlpha) + DestinationRGB × (1 − SourceAlpha) |
Premultiply | ![]() Premultiply 블렌딩 모드. Premultiply 는 먼저 투명 머티리얼의 RGB 값에 알파 값을 곱한 후 Alpha 와 유사한 효과를 머티리얼에 적용합니다. 또한 Premultiply 등식을 사용하면 알파 값이 0인 투명 머티리얼 영역에도 애디티브 블렌드 효과를 적용할 수 있습니다. 이렇게 하면 불투명 픽셀과 투명 픽셀이 겹치는 가장자리에 나타날 수 있는 결함을 줄일 수 있습니다. Premultiply 등식: OutputRGBA = SourceRGB + DestinationRGB × (1 − SourceAlpha) |
Additive | ![]() Additive 블렌딩 모드. Additive 는 머티리얼의 컬러 값을 합산하여 블렌드 효과를 생성합니다. 알파 값은 블렌드가 계산되기 전에 소스 머티리얼 컬러의 강도를 결정합니다. 이 모드에서는 Preserve Specular Lighting 프로퍼티를 사용할 수 있습니다. Additive 등식: OutputRGBA = (SourceRGB × SourceAlpha) + DestinationRGB |
Multiply | ![]() Multiply 블렌딩 모드. Multiply 는 머티리얼의 컬러를 표면 뒤에 있는 컬러와 곱합니다. 이렇게 하면 색유리를 통해 보는 것처럼 어두운 효과가 생성됩니다. 이 모드는 머티리얼의 알파 값을 사용하여 컬러가 블렌드되는 정도를 조정합니다. 알파 값을 1로 설정하면 컬러가 조정되지 않은 상태로 곱해지고, 그보다 낮은 값으로 설정하면 컬러가 흰색으로 블렌드됩니다. Multiply 등식: OutputRGBA = SourceRGB × DestinationRGB |
Preserve Specular Lighting | Unity가 게임 오브젝트의 스페큘러 하이라이트를 보존할지 여부를 나타냅니다. 이는 표면이 투명해서 반사된 광원만 표시되는 경우에도 적용됩니다. 이 프로퍼티는 Surface Type 이 Transparent로 설정되고 Blending Mode 가 Alpha 또는 Additive로 설정된 경우에만 나타납니다. ![]() Preserve Specular Lighting 이 비활성화된 머티리얼. ![]() Preserve Specular Lighting 이 활성화된 머티리얼. |
Render Face | 이 드롭다운을 사용하여 지오메트리가 렌더링할 면을 결정합니다. Front Face 는 지오메트리의 전면을 렌더링하고 후면을 컬링합니다. 이는 기본 설정입니다. Back Face 는 지오메트리의 전면을 렌더링하고 전면을 컬링합니다. Both 는 URP가 지오메트리의 양면을 모두 렌더링하도록 만듭니다. 이는 양면을 모두 표시해야 하는 나뭇잎 같이 작고 평평한 오브젝트에 사용하면 유용합니다. |
Alpha Clipping | 머티리얼이 컷아웃 셰이더처럼 동작하도록 만듭니다. 이 프로퍼티를 사용하면 불투명 영역과 투명 영역 사이에 하드 에지가 있는 투명 효과를 생성할 수 있습니다(예: 풀잎 생성). 이러한 효과를 구현하기 위해 URP는 Alpha Clipping 을 활성화하면 나타나는 지정된 Threshold 아래의 알파 값을 렌더링하지 않습니다. 0과 1 사이의 값을 허용하는 슬라이더를 움직여 Threshold 를 설정할 수 있습니다. 임계값 위의 모든 값은 완전 불투명이고, 임계값 아래의 모든 값은 보이지 않습니다. 예를 들어 임계값 0.1은 URP가 0.1 미만의 알파 값을 렌더링하지 않는다는 의미입니다. 기본값은 0.5입니다. |
Receive Shadows | 이 체크박스를 선택하면 게임 오브젝트가 다른 오브젝트가 드리우는 그림자를 받습니다. 이 체크박스를 선택 해제하면 게임 오브젝트에 그림자가 드리우지 않습니다. |
표면 입력
Surface Inputs 는 표면 자체를 묘사합니다. 예를 들어 이 프로퍼티를 사용하여 젖었거나 말랐거나 거칠거나 부드러운 표면을 구현할 수 있습니다.
참고: 빌트인 Unity 렌더 파이프라인의 스탠다드 셰이더에 익숙한 경우 이러한 옵션은 머티리얼 에디터의 Main Maps 설정과 유사합니다.
프로퍼티 | 설명 |
---|---|
Base Map | 디퓨즈 맵이라고 불리는 표면에 컬러를 추가합니다. Base Map 설정에 텍스처를 할당하려면 옆에 있는 오브젝트 피커를 클릭하십시오. 그러면 에셋 브라우저가 열리고, 여기에서 프로젝트의 텍스처 중에서 선택할 수 있습니다. 또는 컬러 피커를 사용할 수도 있습니다. 설정 옆의 컬러는 할당된 텍스처 위에 있는 색조를 표시합니다. 또 다른 색조를 할당하려면 이 컬러 견본을 클릭하면 됩니다. Surface Options 에서 Transparent 또는 Alpha Clipping 을 선택하면 머티리얼이 텍스처의 알파 채널 또는 컬러를 사용합니다. |
Metallic / Specular Map | Surface Options 에서 선택한 Workflow Mode 의 맵 입력을 표시합니다. Metallic Map 워크플로의 경우 맵은 위에서 할당한 Base Map 에서 컬러를 가져옵니다. 슬라이더를 사용하여 표면의 금속성 정도를 제어할 수 있습니다. 1은 완전한 금속성(예: 은, 구리)이고 0은 완전한 유전체(예: 플라스틱, 나무)입니다. 일반적으로 더럽거나 부식된 금속은 0과 1 사이의 값을 사용합니다. Specular Map 설정의 경우 옆에 있는 오브젝트 피커를 클릭하여 텍스처를 할당할 수 있습니다. 그러면 에셋 브라우저가 열리고, 여기에서 프로젝트의 텍스처 중에서 선택할 수 있습니다. 또는 컬러 피커를 사용할 수도 있습니다. 두 가지 워크플로 모두 Smoothness 슬라이더를 사용하여 표면의 하이라이트 확산을 제어할 수 있습니다. 값을 0으로 설정하면 넓고 거친 하이라이트를 구현하고, 값을 1로 설정하면 작고 선명한 하이라이트(예: 유리)를 구현합니다. 0과 1 사이의 값을 사용하면 약간만 광이 나는 모습을 생성할 수 있습니다. 예를 들어 0.5를 사용하면 플라스틱 같은 광택이 만들어집니다. Source 드롭다운 메뉴를 사용하여 셰이더가 평활도 맵을 샘플링할 위치를 선택하십시오. 사용 가능한 옵션은 Metallic Alpha(메탈릭 맵의 알파 채널)와 Albedo Alpha(베이스 맵의 알파 채널)입니다. 기본값은 Metallic Alpha 입니다. 선택한 소스에 알파 채널이 있는 경우 셰이더는 채널을 샘플링하고 각 샘플에 Smoothness 값을 곱합니다. |
Normal Map | 표면에 노멀 맵을 추가합니다. 노멀 맵을 사용하면 범프, 스크래치, 홈 같은 표면 디테일을 추가할 수 있습니다. 맵을 추가하려면 오브젝트 피커를 클릭하십시오. 노멀 맵은 환경의 주변광을 선택합니다. 설정 옆의 플로트 값은 Normal Map 효과의 멀티플라이어입니다. 값이 낮을수록 노멀 맵의 효과가 감소하고, 값이 높을수록 효과가 강해집니다. |
Height Map | URP는 하이트맵을 사용하여 가시 표면 텍스처 영역을 전환함으로써 표면 수준의 오클루전 효과를 달성하는 패럴랙스 매핑 기법을 사용합니다. 맵을 추가하려면 옆에 있는 오브젝트 피커를 클릭하십시오. 설정 옆의 플로트 값은 Height Map 효과에 대한 멀티플라이어입니다. 값이 낮을수록 하이트맵의 효과가 감소하고, 값이 높을수록 효과가 더 강해집니다. |
Occlusion Map | 오클루전 맵을 선택합니다. 이는 주변광과 반사로 인한 그림자를 시뮬레이션합니다. 즉 오브젝트의 모서리와 틈에 더 적은 광원이 도달하도록 만들어 조명의 사실감을 높입니다. 오클루전 맵을 선택하려면 옆에 있는 오브젝트 피커를 클릭하십시오. |
Emission | 표면이 광원을 방출하는 것처럼 보이게 만듭니다. 활성화하면 Emission Map 및 Emission Color 설정이 나타납니다. Emission Map 을 할당하려면 옆에 있는 오브젝트 그림을 클릭하십시오. 그러면 에셋 브라우저가 열리고, 여기에서 프로젝트의 텍스처 중에서 선택할 수 있습니다. Emission Color 의 경우 컬러 피커를 사용하여 컬러 위에 색조를 할당할 수 있습니다. 이 경우 흰색 100%를 초과할 수 있는데, 이는 다른 컬러를 유지한 상태에서 흰색보다 밝게 빛나는 용암 등의 효과를 구현할 때 유용합니다. Emission Map 을 할당하지 않았다면 Emission 설정은 Emission Color 에 할당된 색조만 사용합니다. Emission 을 활성화하지 않으면 URP는 이미션을 검은색으로 설정하고 이미션을 계산하지 않습니다. |
Tiling | U축과 V축에 따라 텍스처의 크기를 메시에 맞게 확대/축소하는 2D 멀티플라이어 값입니다. 이는 바닥과 벽 같은 표면에 사용하면 유용합니다. 기본값은 1이며, 확대/축소가 없음을 의미합니다. 더 높은 값을 설정하면 텍스처가 메시 전체에서 반복됩니다. 더 낮은 값을 설정하면 텍스처가 스트레치됩니다. 다양한 값을 시도하여 원하는 효과를 얻으시기 바랍니다. |
Offset | 메시에 텍스처를 배치하는 2D 오프셋입니다. 메시의 포지션을 조정하려면 U축 또는 V축에서 텍스처를 이동시키십시오. |
디테일 입력
Detail Inputs 설정을 사용하여 표면에 디테일을 더하십시오.
요구 사항: 셰이더 모델 2.5 이상을 지원하는 GPU.
프로퍼티 | 설명 |
---|---|
Mask | Unity가 표면 입력 맵 위에 디테일 맵을 오버레이하는 영역을 정의하는 텍스처를 선택합니다. 마스크는 선택한 텍스처의 알파 채널을 사용합니다. Tiling 및 Offset 설정은 마스크에 아무 영향도 미치지 않습니다. |
Base Map | 표면 디테일이 포함된 텍스처를 선택합니다. Unity는 오버레이 모드를 사용하여 이 맵을 표면 베이스 맵과 블렌딩합니다. |
Normal Map | 노멀 벡터 데이터가 포함된 텍스처를 선택합니다. 노멀 맵을 사용하여 범프, 스크래치, 홈 같은 표면 디테일을 추가할 수 있습니다. 설정 옆의 슬라이더를 사용하여 맵 효과의 강도를 변경합니다. 기본값은 1입니다. |
Tiling | 이 설정을 사용하여 U축 및 V축에서 Base Map 및 Normal Map 을 확대/축소하여 맵을 메시에 꼭 맞출 수 있습니다. 기본값은 1입니다. 맵이 메시 전체에서 반복되도록 하려면 1보다 큰 값을 선택합니다. 맵을 스트레치하려면 1보다 낮은 값을 설정합니다. |
Offset | U축 및 V축에서 메시의 Base Map 및 Normal Map 을 이동시키는 오프셋입니다. |
고급 설정
Advanced 설정은 렌더링의 기본 계산에 영향을 주며, 표면에는 눈에 띄는 영향을 미치지 않습니다.
프로퍼티 | 설명 |
---|---|
Specular Highlights | 활성화하면 머티리얼에 직접 조명(예: 방향, 점 및 스폿 광원)의 스페큘러 하이라이트가 구현됩니다. 즉 머티리얼이 이러한 광원의 빛을 반사합니다. 비활성화하면 이러한 하이라이트 계산을 배제하여 셰이더 렌더링 속도를 향상합니다. 기본적으로 이 기능은 활성화됩니다. |
Environment Reflections | 가장 가까이 있는 Reflection Probe를 사용하거나, 또는 조명 창에서 설정한 경우 조명 프로브를 사용하여 반사를 샘플링합니다. 비활성화하면, 셰이더 계산 횟수가 줄어들고 표면에 아무런 반사도 일어나지 않습니다. |
GPU 인스턴싱 활성화(Enable GPU Instancing) | URP가 가능한 경우 동일한 지오메트리 및 머티리얼이 포함된 메시를 한 번에 렌더링하도록 지시합니다. 그러면 렌더링 속도가 더 빨라집니다. 다른 머티리얼이 있거나, 하드웨어가 GPU 인스턴싱을 지원하지 않으면 URP가 메시를 한 번에 렌더링할 수 없습니다. |
Sorting Priority | 이 슬라이더를 사용하여 머티리얼의 시간적 렌더링 순서를 결정합니다. URP는 값이 낮은 머티리얼을 먼저 렌더링합니다. 이렇게 하면 파이프라인이 먼저 다른 머티리얼 앞에서 머티리얼을 렌더링하도록 만들어 기기의 오버드로우를 줄일 수 있습니다. 즉 겹치는 영역을 두 번 렌더링할 필요가 없습니다. 이는 빌트인 Unity 렌더 파이프라인의 렌더 대기열과 유사하게 동작합니다. |
채널 패킹
셰이더는 채널 패킹을 사용하므로 메탈릭, 평활도 및 오클루전 프로퍼티에 단일 RGBA 텍스처를 사용할 수 있습니다. 텍스처 패킹을 사용하면 세 개의 개별 텍스처가 아니라 하나의 텍스처만 메모리에 로드하면 됩니다. Substance 또는 Photoshop 같은 프로그램에서 텍스처 맵을 작성할 경우 다음과 같이 맵을 패킹할 수 있습니다.
채널 | 프로퍼티 |
---|---|
Red | 메탈릭 |
Green | 오클루전 |
Blue | None |
Alpha | 평활도 |