지금까지 한 것 정리
- 텍스쳐나 색상, 값들은 Properties에 넣은 후 서로 연산/처리하는 과정
- 버텍스의 UV 값을 엔진에 직접 요청하여 사용하는 과정
(Position, Texcoord(UV), Normal, Tangent들은 버텍스 안에 내장되어 있는 대표적인 정보들임)
Vertex Color 활용
- Vertex Color 적용
- 3D DCC(Digital Contents Creation) - ex. 3ds Max
- 엔진 자체의 툴
Package Manager 내의 Polybrush를 standard 버전으로 임포트하였다.
Polybrush Window를 꺼내어 Plane에 버텍스 컬러를 페인팅하였지만 기본 쉐이더는 버텍스 컬러를 출력하지 않기 때문에 일반적으로는 버텍스 컬러가 보이지 않는다.
코드 수정을 통한 버텍스 컬러 출력
아래와 같이 텍스쳐와 곱하는 등 다양한 방식으로 출력 컬러를 변경해볼 수도 있다.
마스킹 기능
- Vertex Color는 일반적인 텍스쳐가 갖고 있는 UV와는 별개
- Vertex Color는 일반적인 컬러와 동일하게 RGBA로 구성되어 있음.
Vertex Color를 마스킹으로 이용하여 멀티 텍스쳐링 기능 제작
멀티 텍스쳐 기능을 활용하기 위하여 여러 장의 텍스쳐를 받아올 수 있도록 코드를 변경하였다.
현재 Plane 오브젝트에는 Vertex Color가 칠해져 있는 상태이다.
R 채널만 출력
o.Albedo = IN.color.r;
lerp 함수 활용 (1)
o.Albedo = lerp(c.rgb, d.rgb, IN.color.r);
lerp 함수 활용 (2)
o.Albedo = lerp(c.rgb, d.rgb, IN.color.r);
o.Albedo = lerp(o.Albedo, e.rgb, IN.color.g);
o.Albedo = lerp(o.Albedo, f.rgb, IN.color.b);
'Unity > Shader' 카테고리의 다른 글
[유니티 쉐이더 스타트업] Part9 | Lambert(램버트), Blinn Phong(블린 퐁) (1) | 2024.02.09 |
---|---|
[유니티 쉐이더 스타트업] Part8 | SurfaceOutputStandard 사용하기 (1) | 2024.02.07 |
[유니티 쉐이더 스타트업] Part6 | UV 개념/응용 (1) | 2024.01.24 |
[유니티 쉐이더 스타트업] Part5 | Surface Shader를 이용한 Texture 제어 (0) | 2024.01.22 |
[유니티 쉐이더 스타트업] Part4 | 기초 서피스 쉐이더 작성 (0) | 2024.01.22 |