면/울 셰이더
면/울 셰이더는 고해상도 렌더 파이프라인(HDRP)에서 디퓨즈 패브릭을 렌더링하기 위한 시작점입니다. 면/울 셰이더를 사용하여 면, 울, 리넨, 벨벳과 같은 패브릭을 만들 수 있습니다.
패브릭의 편직이나 제직과 마찬가지로 패브릭을 구성하는 섬유 타입은 패브릭의 형상에 영향을 줍니다. 천연 섬유는 일반적으로 더 거칠기 때문에 광원을 산란시킵니다.
자세히 들여다보면 면/울 셰이더는 미리 설정된 셰이더 그래프입니다. 면/울 셰이더 구현에 대해 자세히 알아보거나 패브릭 셰이더 배리언트를 생성하려면 패브릭 마스터 스택에 대한 셰이더 그래프 문서를 참조하십시오.
면/울 패브릭 샘플 임포트
HDRP에는 시작하는 데 더 도움이 될 수 있도록 면/울 머티리얼 샘플이 제공됩니다. 이 샘플을 찾으려면 다음 단계를 따르십시오.
- Windows > Package Manager로 이동하여 패키지 리스트에서 High Definition RP를 선택합니다.
- 패키지의 세부 사항을 표시하는 메인 창에서 Samples 섹션을 찾습니다.
- 샘플을 패키지로 임포트하려면 Import into Project 버튼을 클릭합니다. 이렇게 하면 프로젝트에 Samples 폴더가 생성되며 이 폴더로 선택한 샘플을 임포트하게 됩니다. 또한 이는 Unity가 향후 샘플을 임포트하는 폴더입니다.
- 에셋 창에서 Samples > High Definition RP > 11.0으로 이동하여 Fabric 씬을 엽니다. 여기에서 해당 씬의 컨텍스트 안에 설정된 샘플 머티리얼을 볼 수 있으며 사용할 수 있습니다.
면/울 머티리얼 생성
HDRP에서 새로운 머티리얼은 기본적으로 릿 셰이더를 사용합니다 면/울 머티리얼을 완전히 새로 만들려면 머티리얼을 생성한 다음 면/울 셰이더를 사용할 수 있도록 만들어야 합니다. 이렇게 하려면 다음 단계를 따르십시오.
Unity 에디터에서 프로젝트의 Asset 창으로 이동합니다.
Asset 창을 오른쪽 클릭한 후 Create > Material을 선택합니다. 그러면 Unity 프로젝트의 Asset 폴더에 새 머티리얼이 추가됩니다.
머티리얼 인스펙터 상단의 Shader 드롭다운을 클릭하여 HDRP > Fabric > Cotton/Wool을 선택합니다.
스레드 맵
패브릭 셰이더는 패브릭이 보여주는 고주파수 세부 사항에 대한 스레드 맵을 사용할 수 있습니다. 이는 HDRP의 릿 셰이더에 있는 디테일 맵과 유사합니다. 스레드 맵 입력은 메모리를 최적화하기 위해 채널이 패킹되며 노멀 맵에 대한 정밀도를 최적화하는 방법으로 정렬됩니다. 패브릭 머티리얼 샘플에는 미리 저작된 스레드 맵이 일부 포함되어 있습니다.
스레드 맵 텍스처 포맷은 다음과 같습니다.
- 빨간색: 앰비언트 오클루전
- 초록색 및 알파: 노멀
- 파란색: 평활도
자세히 들여다보면 패브릭 셰이더는 하위 그래프 연산자를 사용하여 스레드 맵을 적용합니다. 스레드 맵 구현 또는 그 사용 방법에 대해 자세히 알아보려면 다음을 참조하십시오.
- Unity 에디터에서 셰이더 그래프 에셋의 Shader Editor를 엽니다.
- 그래프 뷰 위에서 마우스 오른쪽 버튼을 클릭한 다음 Create Node를 선택합니다.
- Utility > High Definition Render Pipeline > Fabric > Thread Map Detail로 이동하여 선택합니다. 이를 통해 그래프에 스레드 맵 연산자를 추가합니다.
퍼즈 맵
패브릭 셰이더는 퍼즈 맵을 사용하여 추가 퍼즈 세부 사항을 표면에 제공합니다. 퍼즈 맵은 단일 채널 텍스처입니다. 이를 적용하기 위해 패브릭 셰이더는 기본 컬러 맵과 혼합하여 패브릭 머티리얼을 셰이딩하는 데 사용되는 최종 컬러를 생성합니다.
프로퍼티
표면 옵션
Surface Options는 머티리얼 표면의 전반적인 모습과 Unity가 화면에 머티리얼을 렌더링하는 방식을 제어합니다.
Property | Description |
---|
노출 프로퍼티
프로퍼티 | 설명 |
---|---|
Base UV Mask | 원하는 채널의 해당하는 열에 "1"을 입력하고 다른 채널의 열에는 0을 입력하여 기본 UV 채널을 설정합니다. |
Base UV Scale Transform | 기본 UV에 대한 타일링 속도(xy)와 오프셋(zw)을 설정합니다. |
Base Color Map | 머티리얼의 기본 컬러를 제어하는 텍스처를 할당합니다. |
Base Color | 머티리얼의 컬러를 설정합니다. 텍스처를 할당하지 않으면 이 컬러가 머티리얼의 절대 컬러가 됩니다. 텍스처를 할당하면 머티리얼의 최종 컬러는 할당한 텍스처와 선택한 컬러가 조합됩니다. Surface Type 드롭다운에서 Transparent를 선택하면 컬러의 알파 값은 머티리얼에 대한 투명도 수준을 제어합니다. |
Mask Map AO(G) S(A) | RGBA 채널에 다음의 머티리얼 맵이 있는 채널이 패킹된 텍스처를 할당합니다. • Green: 앰비언트 오클루전 맵을 저장합니다.• Alpha: 평활도 맵을 저장합니다. 채널이 패킹된 텍스처와 마스크 맵에 대한 자세한 내용은 마스크 맵을 참조하십시오. |
Smoothness Min | 머티리얼의 최소 평활도를 설정합니다. |
Smoothness Max | 머티리얼의 최대 평활도를 설정합니다. |
Anisotropy | 포인트의 로컬 기준에 관해 스페큘러 항의 비대칭 정도를 설정합니다. |
Specular Color | 스페큘러 하이라이트 컬러를 설정합니다. |
Normal Map | 탄젠트 공간에서 이 머티리얼의 노멀 맵을 정의하는 텍스처를 할당합니다. |
Normal Map Strength | 0과 8 사이 노멀 강도를 조절합니다. |
Use Thread Map | 머티리얼에 스레드 맵 세부 사항을 적용할지 여부를 설정합니다. |
Thread Map AO(R) Ny(G) S(B) Nx(A) | RGBA 채널에 있는 다음의 맵을 사용하여 패브릭 스레드에 대한 파라미터를 정의하는 텍스처를 할당합니다. • Red: 앰비언트 오클루전 맵을 저장합니다. • Green: 노멀의 Y 컴포넌트를 저장합니다.• Blue: 평활도 맵을 저장합니다. • Alpha: 노멀의 X 컴포넌트를 저장합니다. 채널이 패킹된 텍스처와 마스크 맵에 대한 자세한 내용은 마스크 맵을 참조하십시오. |
Thread UV Mask | 원하는 채널의 해당하는 열에 "1"을 입력하고 다른 채널의 열에는 0을 입력하여 스레드 UV 채널을 설정합니다. |
Thread UV Scale Transform | 스레드 UV에 대한 타일링 속도(xy)와 오프셋(zw)을 설정합니다. |
Thread AO Strength | 스레드 맵에 저장되어 있는 AO의 강도를 수정합니다. |
Thread Normal Strength | 스레드 맵에 저장되어 있는 노멀의 강도를 수정합니다. |
Thread Smoothness Scale | 스레드 맵에 저장되어 있는 평활도의 스케일을 수정합니다. |
Fuzz Map | 머티리얼의 기본 컬러에 퍼즈 세부 사항을 추가하는 텍스처를 할당합니다. |
Fuzz Map UV Scale | 퍼즈 맵을 샘플링하는 데 사용되는 스레드 UV 스케일을 설정합니다. |
Fuzz Strength | 기본 컬러에 추가되는 퍼즈 컬러의 강도를 설정합니다. |
고급 옵션
프로퍼티 | 설명 |
---|
제한 사항
면 광원은 현재 패브릭 또는 머리카락 머티리얼을 지원하지 않습니다. 즉 면 광원은 다음 사항을 사용하는 머티리얼에 그림자를 비추거나 드리우지 않습니다.