Version: 2020.3
ShaderLab
ShaderLab: 머티리얼 프로퍼티 정의

ShaderLab: 셰이더 오브젝트 정의

ShaderLab에서 셰이더 오브젝트를 정의하려면 Shader 블록을 사용하십시오. 이 페이지는 Shader 블록을 사용하는 방법에 대한 정보를 포함합니다.

셰이더 오브젝트의 작동 방식 및 셰이더 오브젝트, 서브셰이더와 패스의 관계에 대해 알아보려면 셰이더 오브젝트 소개를 참조하십시오.

개요

셰이더 오브젝트는 Unity 고유의 개념으로서, 셰이더 프로그램 및 기타 정보를 위한 래퍼입니다. 셰이더 오브젝트를 사용하면 같은 파일에서 여러 개의 셰이더 프로그램을 정의하고 Unity에 이러한 프로그램을 사용하는 방법을 지시할 수 있습니다.

셰이더 오브젝트는 중첩된 구조를 지니고 있습니다. 셰이더 오브젝트는 정보를 서브셰이더와 패스라는 구조로 정리합니다.

렌더 파이프라인 호환성

기능 이름 빌트인 렌더 파이프라인 유니버설 렌더 파이프라인(URP) 고해상도 렌더 파이프라인(HDRP) 커스텀 SRP
ShaderLab: Shader 블록 지원 지원 지원 지원

Shader 블록 사용

Shader 블록 내에서 다음을 수행할 수 있습니다.

서명 기능
Shader "<name>"
{
    <optional: Material properties>
    <One or more SubShader definitions>
    <optional: custom editor>
    <optional: fallback>
}
특정 이름의 셰이더 오브젝트를 정의합니다.

예제

이 예제 코드는 셰이더 오브젝트의 기본적인 구문과 구조를 나타냅니다. 예제 셰이더 오브젝트에는 싱글 패스를 포함하는 단일 서브셰이더가 있습니다. 머티리얼 프로퍼티, 하나의 CustomEditor와 하나의 폴백을 정의합니다.

Shader "Examples/ShaderSyntax"
{
    CustomEditor = "ExampleCustomEditor"

    Properties
    {
        // Material property declarations go here
    }
    SubShader
    {
        // The code that defines the rest of the SubShader goes here

        Pass
        {
           // The code that defines the Pass goes here
        }
    }

    Fallback "ExampleFallbackShader"
}

여러 렌더 파이프라인과 호환되는 예제 커스텀 셰이더에 대한 내용은 예제 커스텀 셰이더를 참조하십시오.

ShaderLab
ShaderLab: 머티리얼 프로퍼티 정의