Version: Unity 6.0 (6000.0)
언어 : 한국어
표면 셰이더 작성
빌트인 렌더 파이프라인의 표면 셰이더 출력 구조

빌트인 렌더 파이프라인의 표면 셰이더 소개

빌트인 렌더 파이프라인에서 표면 셰이더는 조명과 상호작용하는 셰이더를 더욱 간단하게 작성하는 방법입니다.

렌더 파이프라인 호환성

기능 이름 유니버설 렌더 파이프라인(URP) 고해상도 렌더 파이프라인(HDRP) 커스텀 SRP 빌트인 렌더 파이프라인
표면 셰이더 지원 안 함

URP에서 셰이더 오브젝트를 보다 간단하게 만드는 방법을 알아보려면 Shader Graph를 참조하십시오.
지원 안 함

HDRP에서 셰이더 오브젝트를 보다 간단하게 만드는 방법을 알아보려면 Shader Graph를 참조하십시오.
지원 안 함 지원

개요

조명과 상호작용하는 셰이더를 작성하는 과정은 복잡합니다. 셰이더는 다양하고 복잡한 광원 유형, 섀도우 옵션, 렌더링 경로(포워드 및 디퍼드 렌더링)를 모두 처리해야 하기 때문입니다.

표면 셰이더를 사용하면 로우레벨 버텍스/픽셀 셰이더 프로그램을 사용할 때보다 더욱 간편하게 셰이더를 작성할 수 있습니다.

표면 셰이더 예시에서 몇 가지 예를 확인하십시오.

작동 방식

필요한 UV 또는 데이터를 입력으로 받아 출력 구조 SurfaceOutput을 채우는 ’표면 함수’를 정의합니다. SurfaceOutput은 기본적으로 표면의 프로퍼티(알베도, 컬러, 노멀, 이미션, 스페큘러러 등)를 기술합니다. 이 코드는 HLSL로 작성됩니다.

그 다음 표면 셰이더 컴파일러가 어떤 입력이 필요한지, 어떤 출력이 채워졌는지 등을 알아내고, 실제 버텍스 및 픽셀 셰이더와 포워드/디퍼드 렌더링을 처리할 렌더링 패스를 생성합니다.

표면 셰이더 및 DirectX 11 HLSL 구문

현재 표면 셰이더 컴파일 파이프라인의 일부분은 DirectX 11에 특화된 HLSL 구문을 인식하지 못합니다. 따라서 StructuredBuffers, RWTextures 및 기타 비DX9 구문 등의 HLSL 기능을 사용하는 경우 DX–11 전용 프리 프로세서 매크로로 래핑해야 합니다.

자세한 내용은 플랫폼별 차이점HLSL 사용 페이지를 참조하십시오.

추가 리소스

표면 셰이더 작성
빌트인 렌더 파이프라인의 표면 셰이더 출력 구조