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 |