본문 바로가기
3D & Metaverse/Unity

Unity Shader 04 - 변수 이용.

by kauree 2021. 7. 15.

변수는 아래와 같이 데이타 타입과 변수명으로 이루어져있음.

float4 testName ;

규칙

1. 변수명은 첫글자가 영어로 시작

2.한글, 공백, 숫자, 특수문자 불가 - 언더바( _ ) 만 예외

3.예약어 사용불가. (float, Color등 이미 사용하고 있는 용어)

4.이미 사용중인 변수는 다시 사용 불가

5.대소문자 구별함. (가급적 시작은 소문자로 할것)


변수 test를 선언하고, 초기값을 입력, 그리고 Albedo에 대입시켰음.

결과는 붉게 표현됨.

여기서 주의.....

struct SurfaceOutputStandard

{

fixed3 Albedo; (반사율)

fixed3 Normal;

fixed3 Emission; (방사)

half Metallic;

half Smoothness;

half Occlusion;

half Alpha;

}

정의 된것 같이 Albedo는 float3로 선언되어 있음.

그런데, 변수 test 는 float4로서 Albedo에 값을 입력하고 있음

정확히는 틀린것임. (그러나 에러는 나지 않음.)

float 3 에 float 4를 넣는 방법

o.Albedo = test.rgb;

' . '는 내부에 들어있는 부분값을 나타내는 문법.

test.rgb 의 뜻은 float4 test가 가지고 있는 값중 r,g,b 만 사용하겠다.

test.rgb를 선언함으로 float3로 변함.


RGB 순서를 바꿈.

o.Albedo = test.grb;

test grb; 는 test(0,1,0) 란 뜻.

test(1,1,1) 이므로 White

test.b; 라면, test(0,0,0)이란 뜻.


float r = 1;

float2 gg = float2(0.5,0);

float3 bbb = float3(1,0,1);

float3(1,0,0)

float3(0,0.5,0)

float3(1,0.5,1)

 

'3D & Metaverse > Unity' 카테고리의 다른 글

Unity free Asset : Third person camera  (0) 2022.02.24
Unity Shader : 외부의 입력값을 출력하기.  (0) 2021.07.16
Unity Shader 03 - 간단한 색상의 사칙연산  (0) 2021.07.14
Unity Shader 02  (0) 2021.07.13
Unity Shader 01  (0) 2021.07.12