Properties                          //쉐이더 인터페이스 구간
    {   //괄호시작
        _Color ("Color", Color) = (1,1,1,1)
        _MainTex ("Albedo (RGB)", 2D) = "white" {}
        _Glossiness ("Smoothness", Range(0,1)) = 0.5
        _Metallic ("Metallic", Range(0,1)) = 0.0
    }   //괄호끝

[위 프로퍼티로 보이는 인스펙터창]


Properties 인터페이스

// Float을 받는 인터페이스
{
    _Name("display name", Range(min, max)) = number     //1. Range
    _Name("display name", Float) = number               //2. Float
    _Name("display name", int) = number                 //3. int
}

//Float4을 받는 인터페이스
{
    _Name("display name", Color) = (number, number, number, number)     //1. Color
    _Name("display name", Vector) = (number, number, number, number)    //2. Vector     
}

//기타 Sampler을 받는 인터페이스
{
    _Name("display name", 2D) = "name" { option }       //1. 2D
    _Name("display name", Rect) = "name" { option }     //2. Rect
    _Name("display name", Cube) = "name" { option }     //3. Cube
    _Name("display name", 3D) = "name" { option }       //4. 3D
}

◇  _Name
이 기능의 <변수명>
_을 부이는 건 외부에서 입력받았다는 것을 표시하기 위해 쓰임

변수명은 
한글 X
띄어쓰기 X
숫자로 시작 X
_이외의 특수문자 X
예약어(color flooat 처럼 미리 시스템에 정의된 명칭) 이용해도 안됨

◇ "display name"
    큰 따옴표 안에 글은 순수하게 '화면에 나타나는 글자'이고, 엔진에서는 이 안의 내용을 순순한 글씨로 인식함.
    유일하게 한글을 입력도 가동되는 곳이지만, 한글을 권하지 않음.

◇ number 
    이 쉐이더가 처음 만들어졌을 떄 초기값을 의미함
    사용자가 값을 조금이라도 조절한다면 이 값은 이제부터 무시하게됨.


Properties - Range (min, max)

 _Name("display name", Range(min, max)) = number

- Range의 의미는 슬라이더 바를 만들겠다는 뜻이고, min, max는 각각 슬라이더 바의 최소 최대값을 의미함.


Properties - Float

 _Name("display name", Float) = number

- float은 한자리의 소수점을 입력받는 인터페이스를 만들어 줌.
- Range와 동일하게 한자리의 소수점을 입력받지만, 슬라이더 방식이 아닌 직접 값을 입력하는 인터페이스가 생김.
- 범위에 제한이 없기 떄문에 입력값의 자유도를 주고 싶거나 결과값 예측이 어려운떄 사용이 좋음


Properties - Color

_Name("display name", Color) = (number, number, number, number)

- Color는 R G B A라는 4자리 숫자을 입력 받을 수 있으므로, float4을 받게 됨
- 흔히 알고 있는 일반적인 컬러픽커를 만들 수가 있음


Properties - Vector

_Name("display name", Vector) = (number, number, number, number)

- flaot4를 직접 숫자로 이벽 받을 수 있는 인터페이스을 만들 수 있음
- Color와 같은 float4 데이터 이지만, 색상이 아닌 값으로 입력을 받음


Properties - text2D

_Name("display name", 2D) = "name" { option }

- float 계열로 분류되지 않는 sampler 들
- 텍스처 UV 좌표와 함께 계산되어야 float4로 출력될 수 있기 떄문에, 아직 UV와 계산되지 않은 텍스쳐는
색상(float4)으로 나타날 수 없으므로, 이때까지는 sampler 라고 부름


 

'Unity > Shader' 카테고리의 다른 글

Function  (0) 2022.01.03
SubShader  (0) 2022.01.03
기본 쉐이더 형태  (0) 2021.12.24
유니티 쉐이더의 작성요령  (0) 2021.12.22
쉐이더 란 / 랜더링 파이프라인  (0) 2021.12.22

+ Recent posts