[Unity Shader] Toon shader

ILSINN·2025년 4월 29일
0

Unity Shader

목록 보기
6/6

개인 공부 기록용 글입니다.
작성자가 이해할 정도로만 정리해 놓은 것이니 설명이 매우 불친절합니다.
작성 기준 유니티 버전 : 6000.0.32 f1 (HDRP)

Toon shader의 핵심은 continious한 색 변화를 discrete하게 바꾸는 것.

물체의 표면이 오른쪽처럼의 연속적인 변화에서 왼쪽처럼 끊어줘야 함.
그러면 끊어주는 기준은 뭔데? → 빛이 들어오는 각도에 따라 나눔.
그럼 빛이 들어오는 각도는 어떻게 아는데? → 노말 벡터 사용.

이게 핵심이자, 끝임.

노말 벡터는 다른 곳에서 더 자세하게 설명해주는 곳에서 찾아 읽고
간략하게 설명하면 mesh가 바라보는 방향.

그래서 노말 벡터를 빛의 반대 방향을 내적해서 두 방향의 유사도를 확인함.
cosine similarity를 생각하면 편함.

그래서 두 방향이 겹치면 = mesh가 빛이 들어오는 방향과 일치하면 = 1
90도 이하로 꺽임 = 0이하 값.

그래서 -1부터 1을 0부터 1로 리매핑함.
이 값을 uv의 좌표 값으로 사용할 것인데, 0이 제일 어두운 값으로 설정 할 것이기 때문.
그리고 shadow texture를 하나 찾아서 넣으면 뜻.

이후 색을 곱하든, 텍스처를 곱하든 원하는 대로 커스텀하면 잘 반영 됨.

왼쪽이 기본, 가운데와 오른쪽이 만든 toon을 적용시킨 사진이다.
리매핑 값을 조정하면서 grayscale 수치를 바꿔나가면서 원하는 쉐이더를 찾으면 재밌다.

profile
유니티유니티유니티

0개의 댓글