yhc509

URP - Saturation 쓰지 않고 Grayscale 구현

·2 min read

셰이더 공부를 하고 있다.

대마왕의 유니티 URP 셰이더 그래프 스타트업 - Yes24

아티스트를 위해 쓴 책이라고 하는데 그래픽에 관심 있는 프로그래머가 봐도 도움이 된다.

이 책의 7-3 챕터에 있는 문제를 풀어보자.


텍스쳐 한 장만 받아서, lerp를 이용해 텍스쳐가 컬러에서 흑백으로 변하는 기능을 만들려면 어떻게 해야할까요? Saturation 노드를 사용하지 않고 만들어 보도록 합시다

대마왕의 유니티 URP 셰이더 그래프 스타트업 - 191P

Shader Graph

  • Float 입력값에 따라 텍스쳐가 컬러에서 흑백으로, 흑백에서 컬러로 바뀌어야 한다.

  • 그럼 일단 텍스쳐를 두 종류로 쪼개보자.

    • 흑백은 R0.21 , G0.71, B*0.07을 곱하면 흑백 텍스쳐가 된다. (책 내용 참고)

    • 컬러는 입력받은 것 그대로 가면 된다.

  • 두 텍스쳐를 Lerp로 입력받는다. A에 흑백, B에 컬러, T에 Float (0~1 Slider)

    • Lerp(A,B,T)는 T의 값에 따라 A~B를 보간한다. (선형보간)
  • Slider를 조절해본다. 완료.