머리카락 마스터 노드
머리카락 머티리얼을 사용하여 고해상도 렌더 파이프라인(HDRP)에서 머리카락과 털을 렌더링할 수 있습니다. 사실적으로 보이는 머리카락 효과를 생성하기 위해 헤어 카드라고 하는 레이어를 사용합니다. 각 헤어 카드는 머리카락의 다른 섹션을 나타냅니다. 반투명 헤어 카드를 사용하는 경우 모든 뷰 방향에서 뒤에서 앞의 순서로 있도록 수동으로 정렬해야 합니다.
머리카락 셰이더는 릿 셰이더에서처럼 인스펙터를 구현하지 않습니다. 따라서 머리카락 머티리얼을 설정하려면 노드 기반 셰이더 에디터인 셰이더 그래프를 사용해야 합니다.
머리카락 마스터 노드는 머리카락 셰이더 그래프에 대한 목표 노드입니다. 여기에는 다른 셰이더 그래프 노드에 연결하여 머리카락 머티리얼의 형상을 제어하는 프로퍼티를 편집할 수 있는 포트가 포함되어 있습니다. 머리카락 머티리얼을 커스터마이즈하려면 반드시 자체 값을 사용하여 이러한 슬롯에 연결된 입력을 오버라이드해야 합니다.
머리카락 머티리얼 생성 및 편집
머리카락 머티리얼은 셰이더 그래프 마스터 노드를 사용합니다. 즉 머리카락 머티리얼을 생성하고 편집하기 위한 특정 메서드를 사용해야 합니다. 이렇게 하는 방법에 대한 자세한 내용은 HDRP 셰이더 그래프 생성 및 편집을 참조하십시오. 셰이더 그래프에서 머티리얼을 생성할 때 Blackboard에 노출한 프로퍼티는 Exposed Properties 섹션에 표시됩니다.
프로퍼티
마스터 노드의 프로퍼티와 마스터 노드를 사용하는 머티리얼의 프로퍼티가 있습니다. 머티리얼 프로퍼티는 이 셰이더를 사용하는 머티리얼에 대한 인스펙터에 있으며 마스터 노드 프로퍼티는 다음과 같이 두 섹션으로 나뉘어 셰이더 그래프 안에 있습니다.
- 마스터 노드 입력 포트: 포트를 다른 노드의 출력에 연결하거나 경우에 따라 자체 값을 추가할 수 있는 마스터 노드의 셰이더 그래프 입력 포트입니다.
- 마스터 노드 설정 메뉴: 이 섹션에는 마스터 노드를 커스터마이즈하고 더 많은 입력 포트를 노출하기 위해 사용할 수 있는 설정이 포함되어 있습니다.
마스터 노드 입력 포트
다음 표는 각 포트에 사용되는 셰이더 단계와 프로퍼티 타입을 포함하여 머리카락 마스터 노드의 입력 포트를 설명합니다. 셰이더 단계에 대한 자세한 내용은 셰이더 단계를 참조하십시오.
프로퍼티 | 타입 | Stage | 설명 |
---|---|---|---|
Position | 벡터 3 | 버텍스 | 헤어 카드나 스플라인의 버텍스 포지션입니다. |
Diffuse Color | 벡터 3 | 프래그먼트 | 픽셀의 컬러입니다. 맵을 할당하려면 샘플링된 Texture2를 연결합니다. |
Specular Occlusion | 플로트 | 프래그먼트 | 스페큘러 전역 조명의 강도에 대한 멀티플라이어입니다. 이 포트는 Specular Occlusion Mode 드롭다운에서 Custom을 선택하는 경우에만 표시됩니다. |
Normal | 벡터 3 | 프래그먼트 | 헤어 카드의 노멀입니다. |
Bent Normal | 벡터 3 | 프래그먼트 | 헤어 카드의 벤트 노멀입니다. |
Smoothness | 플로트 | 프래그먼트 | 기본 스페큘러 하이라이트의 형상을 설정합니다. 매끄러운 표면에 닿는 모든 광선은 예측 가능하고 일관적인 각도로 반사됩니다. 광원을 거울처럼 반사하는 완전히 매끄러운 표면을 얻으려면 이 값을 1로 설정합니다. 거친 표면을 얻으려면 이 값을 더 낮은 값으로 설정합니다. |
Ambient Occlusion | 플로트 | 프래그먼트 | 디퓨즈 전역 조명의 강도에 대한 멀티플라이어입니다. 0으로 설정하면 모든 전역 조명이 제거됩니다. |
Transmittance | 벡터 3 | 프래그먼트 | 뒤에서부터 머리카락을 관통하는 스페큘러 조명의 비율을 설정합니다. 이는 이 프로퍼티를 사용하여 관통하는 광원의 컬러를 설정할 수 있도록 컬러 채널별로 설정합니다. 광원이 머리카락을 관통하지 못하게 하려면 이 비율을 (0, 0, 0)으로 설정합니다. 흰색 광원이 머리카락을 많이 통과하는 강한 효과를 내려면 이 비율을 (1, 1, 1)로 설정합니다. |
Rim Transmission Intensity | 플로트 | 프래그먼트 | 머리카락 가장자리 주위에 있는 역광인 머리카락의 강도를 설정합니다. 투과 효과를 완전히 제거하려면 이 값을 0으로 설정합니다. |
Hair Strand Direction | 벡터 3 | 프래그먼트 | 헤어 카드로 모델링할 때 머리카락이 모근에서 머리카락 끝까지 흐르는 방향을 설정합니다. |
Alpha | 플로트 | 프래그먼트 | 머리카락의 커버리지/불투명도를 설정합니다. 이 알파 값을 0으로 설정하면 머리카락이 완전히 투명합니다. 이 값을 1로 설정하면 머리카락이 완전히 불투명합니다. |
Alpha Clip Threshold | 플로트 | 프래그먼트 | HDRP가 각 픽셀을 렌더링해야 하는지 여부를 결정할 때 사용하는 알파 값 제한을 설정합니다. 픽셀의 알파 값이 제한보다 높거나 같으면 HDRP는 픽셀을 렌더링합니다. 값이 제한보다 낮으면 HDRP는 픽셀을 렌더링하지 않습니다. 이 포트는 Alpha Clipping 설정을 활성화하는 경우에만 표시됩니다. |
Alpha Clip Threshold (Depth Prepass) | 플로트 | 프래그먼트 | 뎁스 프리패스에서 프래그먼트를 폐기해야 하는지 여부를 결정하기 위해 HDRP가 사용하는 알파 값 제한을 설정합니다. 이 포트는 Alpha Clipping과 Transparent Depth Postpass 설정을 활성화하는 경우에만 표시됩니다. |
Alpha Clip Threshold (Depth Postpass) | 플로트 | 프래그먼트 | 뎁스 포스트패스 프래그먼트를 폐기해야 하는지 여부를 결정하기 위해 HDRP가 사용하는 알파 값 제한을 설정합니다. 이 포트는 Alpha Clipping과 Transparent Depth Postpass 설정을 활성화하는 경우에만 표시됩니다. |
Alpha Clip Threshold (Shadow Pass) | 플로트 | 프래그먼트 | 프래그먼트에 대한 그림자를 렌더링해야 하는지 여부를 결정하기 위해 HDRP가 사용하는 알파 값 제한을 설정합니다. 이 포트는 Use Shadow Threshold 설정을 활성화하는 경우에만 표시됩니다. |
Specular AA Screen Space Variance | 플로트 | 프래그먼트 | 지오메트리 스페큘러 안티앨리어싱 효과의 강도를 0과 1사이로 설정합니다. 값이 높을수록 앨리어싱이 더 적은 흐릿한 결과를 생성합니다. 이 포트는 Geometric Specular AA 설정을 활성화한 경우에만 표시됩니다. |
Specular AA Threshold | 플로트 | 프래그먼트 | HDRP가 결함을 줄이기 위해 평활도 값에서 빼는 최대값을 설정합니다. 이 포트는 Geometric Specular AA 설정을 활성화한 경우에만 표시됩니다. |
Specular Tint | 벡터 3 | 프래그먼트 | 기본 스페큘러 하이라이트의 컬러를 설정합니다. |
Specular Shift | 플로트 | 프래그먼트 | 기본 스페큘러 하이라이트의 포지션을 조정합니다. |
Secondary Specular Tint | 벡터 3 | 프래그먼트 | 보조 스페큘러 하이라이트의 컬러를 설정합니다. |
Secondary Smoothness | 플로트 | 프래그먼트 | 보조 스페큘러 하이라이트의 형상을 제어합니다. 이 값을 높이면 하이라이트가 작아집니다. |
Secondary Specular Shift | 플로트 | 프래그먼트 | 보조 스페큘러 하이라이트의 포지션을 조정합니다. |
Baked GI | 벡터 3 | 프래그먼트 | 빌트인 디퓨즈 GI 솔루션을 설정할 수 있는 값으로 교체합니다. 이는 메시의 전면 전용입니다. 이 포트는 Override Baked GI 설정을 활성화한 경우에만 표시됩니다. |
Baked Back GI | 벡터 3 | 프래그먼트 | 빌트인 디퓨즈 GI 솔루션을 설정할 수 있는 값으로 교체합니다. 이는 메시의 후면 전용입니다. 이 포트는 Override Baked GI 설정을 활성화한 경우에만 표시됩니다. |
Depth offset | 플로트 | 프래그먼트 | 셰이더가 프래그먼트의 뎁스를 늘리는 데 사용하는 값을 설정합니다. 이렇게 하면 카메라에서 프래그먼트를 밀어내며 헤어 카드의 플랫 형상을 줄이는 데 도움이 됩니다. 이 포트는 Depth Offset 설정을 활성화하는 경우에만 표시됩니다. |
마스터 노드 설정 메뉴
이 프로퍼티를 보려면 마스터 노드의 오른쪽 상단에 있는 톱니 아이콘을 클릭합니다.
프로퍼티 | 설명 |
---|---|
Precision | 머리카락을 렌더링하는 방법을 알아보기 위해 셰이더가 처리하는 계산의 정밀도를 선택합니다. 더 낮은 정밀도 계산은 더 빠르지만 스페큘러 하이라이트에 대한 잘못된 강도와 같은 문제를 일으킬 수 있습니다. • Inherit: 전역 정밀도 설정을 사용합니다. 이는 가장 높은 정밀도 설정이므로 이 설정을 사용하면 정밀도 문제가 발생하지 않습니다. • Float: 단일 정밀도 부동 소수점 명령을 사용합니다. 이는 각 계산이 리소스를 더 적게 소모하게 하여 머리카락 셰이더의 계산 속도를 개선합니다. 정밀도 수준이 낮은 경우 특히 스페큘러 하이라이트의 강도가 잘못되거나 전환이 거칠 수 있는 등 몇 가지 문제가 발생할 수 있습니다. • Half: 반정밀도 부동 소수점 명령을 사용합니다. 이는 가장 빠른 정밀도 수준이며 이를 사용하는 계산은 처리하는 데 리소스 소모량이 가장 적습니다. 이 정밀도 설정에서는 문제가 발생할 가능성이 가장 높습니다. Half 정밀도는 현재 머리카락 셰이더에서 실험 단계에 있습니다. |
Surface Type | 드롭다운을 사용하여 머티리얼이 투명도를 지원하는지 여부를 정의합니다. Transparent Surface Type이 있는 머티리얼은 Opaque Surface Type이 있는 머티리얼보다 더 리소스를 많이 소모합니다. HDRP는 선택한 Surface Type에 따라 더 많은 프로퍼티를 노출합니다. 해당 기능과 각 Surface Type이 노출하는 프로퍼티 리스트에 대한 자세한 내용은 표면 타입 문서를 참조하십시오. |
Double-Sided | HDRP가 지오메트리의 두 면을 렌더링하도록 하려면 이 설정을 활성화합니다. 이 기능과 이 기능이 노출하는 프로퍼티 리스트에 대한 자세한 내용은 양면 문서를 참조하십시오. |
Alpha Clipping | 체크박스를 활성화하면 이 머티리얼이 컷아웃 셰이더처럼 동작합니다. 이 기능을 활성화하면 더 많은 프로퍼티를 노출합니다. 기능에 대한 정보와 이 기능이 노출하는 프로퍼티 리스트에 대한 자세한 내용은 알파 클리핑 문서를 참조하십시오. |
- Use Shadow Threshold | 이 설정을 활성화하여 알파 클리핑 그림자에 대해 다른 임계값을 설정합니다. |
Receive Decals | HDRP가 이 머티리얼 표면의 데칼을 드로우하도록 허용하려면 이 체크박스를 활성화합니다. |
Receive SSR (Transparent) | HDRP가 스크린 공간 리플렉션 패스를 처리할 때 이 머티리얼을 포함하도록 하려면 이 설정을 활성화합니다. 투명 표면 타입에 대한 별도 옵션이 있습니다. |
Add Precomputed Velocity | 이 설정을 활성화하면 Alembic 파일에 저장되어 있는 미리 계산된 속도 정보를 사용합니다. |
Geometric Specular AA | 이 설정을 활성화하면 HDRP가 이 머티리얼에서 지오메트리 안티앨리어싱을 수행하게 합니다. 이는 스페큘러 결함을 제거하기 위해 커브 지오메트리의 표면에 대한 평활도 값을 수정합니다. 해당 기능과 이 기능이 노출하는 프로퍼티 리스트에 대한 자세한 내용은 지오메트리 스페큘러 안티앨리어싱 문서를 참조하십시오. |
Specular Occlusion Mode | HDRP가 스페큘러 오클루전을 계산하기 위해 사용하는 모드를 설정합니다. • Off: 스페큘러 오클루전을 비활성화합니다. • From AO: 앰비언트 오클루전 맵과 카메라의 뷰 벡터의 스페큘러 오클루전을 계산합니다. • From AO and Bent Normal: 앰비언트 오클루전 맵, 벤트 노멀 맵, 카메라의 뷰 벡터의 스페큘러 오클루전을 계산합니다. • Custom: 스페큘러 오클루전 값을 직접 지정할 수 있습니다. |
Override Baked GI | 이 설정을 사용하면 두 가지 베이크된 GI 입력 포트를 노출합니다. 이렇게 하면 이 머티리얼이 씬의 전역 조명을 무시하게 되고 대신 자체 전역 조명 값을 제공하고 이 머티리얼이 보이는 방식을 커스터마이즈할 수 있습니다. |
Depth Offset | 이 설정을 활성화하면 프래그먼트의 뎁스 값을 높이고 카메라에서 밀어내기 위해 사용할 수 있는 DepthOffset InputPort를 노출합니다. 이를 사용하여 헤어 카드의 플랫 형상을 줄일 수 있습니다. |
Use Light Facing Normal | 이 설정을 활성화하면 헤어 노멀이 항상 빛을 향합니다. 이는 머리카락의 동작을 모방합니다. |
Override ShaderGUI | 이 셰이더 그래프가 사용하는 ShaderGUI를 오버라이드하게 합니다. True 인 경우 ShaderGUI 프로퍼티가 표시되며 이를 통해 사용할 ShaderGUI를 지정할 수 있습니다. |
- ShaderGUI | 사용할 ShaderGUI 클래스의 전체 이름이며 클래스 경로를 포함합니다. |
머티리얼 인스펙터
이러한 프로퍼티는 인스펙터의 Exposed Properties 섹션에 있으며 셰이더 그래프의 Blackboard에 노출한 프로퍼티와 함께 놓여있습니다. Override ShaderGUI를 true
로 설정한 경우 머티리얼 프로퍼티 섹션은 표시되지 않고 대신에 지정한 ShaderGUI가 표시됩니다.
프로퍼티 | 설명 |
---|---|
Enable GPU Instancing | 이 체크박스를 활성화하면 HDRP가 가능한 경우 동일한 지오메트리 및 머티리얼이 포함된 메시를 한 번에 렌더링하도록 지시합니다. 그러면 렌더링 속도가 더 빨라집니다. 다른 머티리얼이 있거나 하드웨어가 GPU 인스턴싱을 지원하지 않으면 HDRP가 한 번에 메시를 렌더링할 수 없습니다. 예를 들어 오브젝트 피벗에 기반한 애니메이션이 있는 게임 오브젝트를 정적으로 배칭할 수 없지만 GPU가 인스턴스화할 수 있습니다. |
Emission | 이미션이 전역 조명에 영향을 주는지 여부를 토글합니다. |
- Global Illumination | 드롭다운을 사용하여 컬러 이미션이 전역 조명과 상호작용하는 방식을 선택합니다. • Realtime: 이 옵션을 선택하면 이미션이 실시간 전역 조명의 결과에 영향을 줍니다. • Baked: 이 옵션을 선택하면 이미션은 베이크 프로세스 동안에만 전역 조명에 영향을 줍니다. • None: 이 옵션을 선택하면 이미션은 전역 조명에 영향을 주지 않습니다. |
Motion Vector For Vertex Animation | 체크박스를 활성화하면 HDRP가 버텍스 애니메이션을 사용하는 게임 오브젝트에 대한 모션 벡터를 작성합니다. 이는 버텍스 애니메이션으로 인해 발생할 수 있는 고스팅을 제거합니다. |
제한 사항
면 광원은 현재 패브릭 또는 머리카락 머티리얼을 지원하지 않습니다. 즉 면 광원은 다음 사항을 사용하는 머티리얼에 그림자를 비추거나 드리우지 않습니다.