빌트인 렌더 파이프라인에서 표면 셰이더는 조명과 상호작용하는 셰이더를 더욱 간단하게 작성하는 방법입니다.
| 기능 이름 | 유니버설 렌더 파이프라인(URP) | 고해상도 렌더 파이프라인(HDRP) | 커스텀 SRP | 빌트인 렌더 파이프라인 |
|---|---|---|---|---|
| 표면 셰이더 | 지원 안 함 URP에서 셰이더 오브젝트를 보다 간단하게 만드는 방법을 알아보려면 Shader Graph를 참조하십시오. |
지원 안 함 HDRP에서 셰이더 오브젝트를 보다 간단하게 만드는 방법을 알아보려면 Shader Graph를 참조하십시오. |
지원 안 함 | 지원 |
조명과 상호작용하는 셰이더를 작성하는 과정은 복잡합니다. 셰이더는 다양하고 복잡한 광원 유형, 섀도우 옵션, 렌더링 경로(포워드 및 디퍼드 렌더링)를 모두 처리해야 하기 때문입니다.
표면 셰이더를 사용하면 로우레벨 버텍스/픽셀 셰이더 프로그램을 사용할 때보다 더욱 간편하게 셰이더를 작성할 수 있습니다.
표면 셰이더 예시에서 몇 가지 예를 확인하십시오.
필요한 UV 또는 데이터를 입력으로 받아 출력 구조 SurfaceOutput을 채우는 ’표면 함수’를 정의합니다. SurfaceOutput은 기본적으로 표면의 프로퍼티(알베도, 컬러, 노멀, 이미션, 스페큘러러 등)를 기술합니다. 이 코드는 HLSL로 작성됩니다.
그 다음 표면 셰이더 컴파일러가 어떤 입력이 필요한지, 어떤 출력이 채워졌는지 등을 알아내고, 실제 버텍스 및 픽셀 셰이더와 포워드/디퍼드 렌더링을 처리할 렌더링 패스를 생성합니다.
현재 표면 셰이더 컴파일 파이프라인의 일부분은 DirectX 11에 특화된 HLSL 구문을 인식하지 못합니다. 따라서 StructuredBuffers, RWTextures 및 기타 비DX9 구문 등의 HLSL 기능을 사용하는 경우 DX–11 전용 프리 프로세서 매크로로 래핑해야 합니다.
자세한 내용은 플랫폼별 차이점 및 HLSL 사용 페이지를 참조하십시오.