Simple Screen Transiton -1-

a-a·2024년 5월 10일

UnityShader

목록 보기
5/6

참고 공부 자료 => 홍마루_유튜브


>최종 결과물<


>>핵심 그래프 노드<<

설명

  1. Tiling And Offset 노드로 Tiling(Vector2) 값으로 UV를 타일링 해주었다.
  2. 위 이미지에서 (10, 10)으로 나누어주었고, 이를 사각형으로 표현해 주기 위해서 Rectangle 노드를 생성해 주었다.
  3. 다만, Rectangle 노드는 Tiling을 지원하지 않는데, 공식 문서에서 타일링을 표편하기 위해서는 Fraction(입력값의 소수점 숫자를 반환함)을 사용을 권했다.

>>기능 그래프 노드<<

설명

  1. 왼쪽부터 오른쪽으로 차오르는 화면 전환을 만들고 있기 때문에, UV의 U 좌표를 활용했다. (left=0left=0, right=1right=1)
  2. Posterize 노드를 사용하여 Tiling(10)만큼 UV의 값에 구분을 주어 색을 단일화 시켰다.
  3. 자연스러운 연출을 위해 One Minus, 사칙연산을 활용하여 자연스러운 화면 전환 연출을 만들고자 했다.
  4. Rectangle 노드의 Width, Height에 결정된 값들을 대입해 주었다.
  5. 배경색과(InColor), 사각형 포인트 색(OutColor)을 정해주고, 출력했다.


추가학습
Lerp은 보간 함수이다. T의 값을 A와 B값 사이로 반환한다.
1. 사진에서 보이는 Rectangle 노드의 하얀색에 해당하는 부분의 값은 1이다.
2. 검은색에 해당하는 부분의 값은 0이다.
3. Lerp 노드로 다시 보면 A에 해당하는 색상은 노란색, B에 해당하는 색은 검은색이다.
4. 즉, Rectangle 노드의 배경색은 0이므로, A~B 사이의 보간 값은 A을 반환한다.
그래서 출력 화면의 배경이 InColor(A), 마찬가지의 이유로 사각형의 색깔이 OutColor(B)로 칠해진 것을 알 수 있다.


>>학습 후 느낀점<<

  1. 셰이더는 역시 대단하고 신기하다.
  2. 영상을 보면서 프로퍼티를 다양하게 제공하고자 하는 것을 보고 클라이언트 개발과 마찬가지로 확장성과 재사용성을 염두에 두고 짜야 한다는 것을 배웠다.
  3. (2)번을 이행하기 위해서는 내가 상상한 것을 옮길 수 있는 능력이 선행되어야 한다. (문득 c언어를 잘 모르고 알고리즘 문제를 풀었던 때가 생각났다.)
profile
"게임 개발자가 되고 싶어요."를 이뤄버린 주니어 0년차

0개의 댓글