일반적으로 함수는 다음과 같은 형식의 구성됨

형식 이름 ( 입력값 ) { }
void surf (Input IN, inout SurfaceOutputStandard o) { }

1. void : return 값이 없는 함수 형식을 의미

2. surf : 함수의 이름

3. (Input IN, inout SurfaceOutputStandard o)
함수에서 () 안에 있는 부분은 보통 이 함수에 값을 넣는 입력값의 영역이고 이 부분은 다음과 같이 해석할수 있다.
'input 구조체를 IN이란 이름으로 이 함수 안에 받아들이고, SurfaceOutputStandard라는 구조체를 o 라는 이름으로 
이 함수 안에 받기도 하고 집어 넣기도 (input) 하겠다'

4. SurfaceOutputStandard 구조체는 유니티 내부의 다른 include 파일에 정의되어 있음

struct SurfaceOutputStandard
{
    fixed3 Albedo;  // diffuse color
    fixed3 Normal;  // tangent space normal, if written
    fixed3 Emission;
    half Specular;  // specular power in 0..1 range
    fixed Gloss;    // specular intensity
    fixed Alpha;    // alpha for transparencies
};

 


좌: Albedo (1,0,0) // 우 emission (1,0,0)

Albedo 에 넣으면 조명연산을 추가로 받게되고, Emission에 넣으면 조명 연산을 받지 않아서
'조명과 상관없는 순수한 색상만이 출력 됨'

그래서 순수한 결과물을 보고 싶을 때는 Emission을 사용함

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

연산 규칙  (0) 2022.01.03
float / half / fixed  (0) 2022.01.03
SubShader  (0) 2022.01.03
Properties  (0) 2021.12.24
기본 쉐이더 형태  (0) 2021.12.24

+ Recent posts