22.02.23 유니티 쉐이더 스타트업
2022. 2. 23. 13:15ㆍUnityShader/수업 내용
텍스쳐를 입히기 위해 uv 매핑을 한다.
uv공간 상에서 해당 버텍스들의 위치를 정해준다.
어떤 복잡한 메쉬든 uv의 좌표 안에 들어갈 수 있다.
해당 메쉬를 해체하여 버텍스들을 uv공간 안에 담은 것 = UV맵.
왜?
2D 텍스쳐를 3D모델에 입히기 위해서.
외부 인터페이스에서 받는 값이 아닌 유니티 내부로부터 받는 데이터는
struct Input 구조체 안에 선언해야 한다.
half 는 float의 반,
fixed 는 half의 반
_Time은 유니티 쉐이더 내장 함수.
rgba 값을 갖고 있고
g번째 요소는 원래 시간을 나타내준다.
시간을 tex2D함수의 텍스쳐 좌표의 칼라를 가져오는 식에 더해서 텍스쳐 애니메이션을 만들 수 있다.
에디터에서 _Speed float를 받아서 애니메이션의 속도를 조절할 수 있다.
스탠다드 라이트모델은 쉐이더를 무겁게 한다.
라이팅 계산을 해줌
알파와 알파끼리 곱하면 모두 흰색인(1인) 부분만 흰색으로 남는다.
tex2D에서 텍스쳐의 특정 위치에 해당하는 텍셀값을 받아오고,
c의 텍셀값을 받아오는 위치를 설정하는 식에
d의 하양색 텍셀값과 겹치는 텍스쳐의 위치를 변화시킨다.
(하양색은 값이 1이므로 위치가 변화할 수 있다.)
d가 단색의 텍스쳐라면 c의 텍스쳐는 변화하지 않는다.
tex2D 함수란?
- 샘플러 텍스쳐에서 텍셀(픽셀과 비슷) 값을 받아오는 함수.
'UnityShader > 수업 내용' 카테고리의 다른 글
유니티 쉐이더 Input 구조체 내장 변수들 (0) | 2022.03.06 |
---|---|
스카이박스 만들기 (0) | 2022.03.05 |
카툰 렌더링 만들기. (프레넬 외곽선, 램프텍스쳐, 스무스스텝 스페큘라) (0) | 2022.03.04 |
22.02.25 쉐이더 라이팅, 커스텀 라이트 (0) | 2022.02.26 |
22.02.24 쉐이더 폴리브러쉬와 멀티텍스쳐링 (0) | 2022.02.24 |