본문 바로가기

shader6

Unity Shader : 외부의 입력값을 출력하기. 1. 인터페이스제작과 변수를 이용, 색상을 출력 ​ 우선 인터페이스를 만들고, 그 크기에 맞는 해당 변수를 Shader 코드의 함수 영역에 속하지 않는 빈 자리를 선언해준후, 그 변수를 다시 출력값에 넣어주면 됨. ​ 인터페이스를 만들고, 초기값은 1,1,1,1 즉 white가 됨. 변수 이름이 testColor , Color 는 flaot4(r,g,b,a) 크기를 가지고 있음. 즉, testColor 는 float4임을 알수 있다. 그러므로 float4 변수를 코드안에 선언해 주면 된다. 코드는 CGPROGRAM ~ ENDCG fixed4 아래쯤에 해주면 될듯. float4 _TestColor; 선언하고, o.Albedo = _TestColor.rgb *Albedo 는 알파가 필요없음. ​ 결과. te.. 2021. 7. 16.
Unity Shader 04 - 변수 이용. 변수는 아래와 같이 데이타 타입과 변수명으로 이루어져있음. ​ float4 testName ; ​ 규칙 1. 변수명은 첫글자가 영어로 시작 2.한글, 공백, 숫자, 특수문자 불가 - 언더바( _ ) 만 예외 3.예약어 사용불가. (float, Color등 이미 사용하고 있는 용어) 4.이미 사용중인 변수는 다시 사용 불가 5.대소문자 구별함. (가급적 시작은 소문자로 할것) 변수 test를 선언하고, 초기값을 입력, 그리고 Albedo에 대입시켰음. 결과는 붉게 표현됨. 여기서 주의..... ​ struct SurfaceOutputStandard { fixed3 Albedo; (반사율) fixed3 Normal; fixed3 Emission; (방사) half Metallic; half Smoothnes.. 2021. 7. 15.
Unity Shader 03 - 간단한 색상의 사칙연산 간단한 색상의 사칙연산 ​ Red1, Green 1 은 Yellow ​ Red1 Blue 1 은 Purple ​ ​ Red 1 - Red 0.5 = Red 0.5, 그리고 Green1 - Yellow green ​ 0을 곱하면,... 0 0.5 * 0.5 = 0.25 0.25,0.25,0.25 0.5,0.5,0.5 ​ 0,1 최소값과 최대값. 0이하 없고, 1 이상 없음. 결과값이 2가 나와도 1로 표현. 역시 값이 -1 이 나와도 0으로 표현. 이 이상 표현하는 것은 HDR (High Dynamic Range) 에서 가능. 2021. 7. 14.
Unity Shader 02 색상을 출력하고 연산하기. 1번은 Properties 영역. 인터페이스를 제작하는 영역. 진짜 쉐이더를 작업하는 부분은 2번 부터. CGPROGRAM ~ ENDCG 3번은 유니티 자체의 스크립트가 아닌 CG언어를 이용해 쉐이더를 직접 짜는 부분 서페이스 쉐이더의 특징, 스크립트와 쉐이더 언어를 같이 씀. 1,2번은 스크립트를 썼고, 3번은 쉐이더 언어를 쓰고 있음. 1번은 설정 부분. '전처리' 또는 '스니핏(Snippet)' 이라고 부르기도 함. 쉐이더의 조명계산 설정이나, 기타 세부적인 분기를 정해주는 부분. ​ 2번은 'Input'이라는 이름을 가진 구조체(Structure 스트럭쳐) 이 안에 넣은 내용은 '엔진으로부터 받아와야 할 데이터' 들이 들어감. 괄호 끝에 { }; 세미클론이 붙음 ​ 3번.. 2021. 7. 13.