Action disabled: source

ShaderLab syntax: Shader

쉐이더는 쉐이더 파일의 루트 명령입니다. 각 파일은 하나의 (오직 한 개의) 쉐이더만을 정의해야 합니다. 그것은 이 쉐이더를 사용하는 그것의 재질이 어떻게 렌더되는지를 지정합니다.

Syntax

_Shader_ "name" _{_ [Properties] Subshaders [Fallback] _}_ 쉐이더를 정의합니다. 그것은 _name_ 아래에 리스트된 재료 인스펙터에서 나타날 것입니다. 쉐이더는 재료 세팅으로서 나타나는 _properties_의 리스트를 선택적으로 정의할 수 있습니다. 이것이 서브 쉐이더의 리스트가 온 후에 선택적으로 대체합니다.

Details

Properties

쉐이더는 properties의 리스트를 가질 수 있습니다. 쉐이더 안에서 선언된 어떠한 속성이라도 Unity내부의 재료 인스펙터에서 보여집니다. 일반적인 속성은 물체의 색상, 텍스쳐 또는 쉐이더에 의해 사용되는 임의의 값입니다.

SubShaders & Fallback

각 쉐이더는 sub-shaders의 리스트로 이루어집니다. 사용자는 최소한 하나를 가져야 합니다. 쉐이더를 로딩할 때 Unity는 서브 쉐이더의 리스트를 통해서 갈 것이고 사용자의 기계에 의해 지원되는 첫 번째 것을 선택합니다. 서브 쉐이더가 지원되지 않으면 Unity는 fallback shader를 사용하려고 노력할 것입니다.

다른 그래픽 카드는 다른 능력을 가집니다. 이것은 게임 개발자를 위한 영원한 이슈를 낳을 것입니다; 사용자는 사용자의 게임이 최신의 하드웨어에서 훌륭하게 보이기를 원하나 그것이 오직 인구의 3%에만 가능하기를 원하지는 않습니다. 이것은 서브 쉐이더가 들어오는 곳에 있습니다. 사용자가 꿈꿀 수 있는 모든 멋진 그래픽 효과를 가지는 서브 쉐이더를 생성하고나서 오래된 카드를 위한 더 많은 서브 쉐이더를 추가합니다. 이러한 서브 쉐이더는 사용자가 원하는 효과를 더 느린 방법으로 구현할지도 모르고 또는 그들은 디테일들을 구현하지 않는 것을 선택할지도 모릅니다.

Examples

Here is one of the simplest shaders possible:

// colored vertex lighting
Shader "Simple colored lighting" {
    // a single color property
    Properties {
        _Color ("Main Color", Color) = (1,.5,.5,1)
    }
    // define one subshader
    SubShader {
        Pass {
            Material {
                Diffuse [_Color]
            }
            Lighting On
        }
    }
} 

이 쉐이더는 색 속성 _Color(material inspector에서 Main Color로 보여지는)을 기본값 (1, 0.5, 0.5, 1)로 정의합니다. 그리고 나서 하나의 서브 쉐이더는 정의됩니다. 서브 쉐이더는 정점 조명을 키는 하나의 Pass로 구성하고 그것을 위한 기본적인 재질을 셋업합니다.

Subsections

(:tocportion:)

역링크