카툰렌더링 기법

카툰렌더링 기법

Tags
Graphics
Unreal
Published
Author

카툰 렌더링 기법 소개

소개하게 된 이유

요즘 서브컬쳐 게임들이 핫한데 어떤 기법들이 쓰이는지 기초적인 부분을 소개해보고 싶어 가져왔습니다.
 
notion image
붕괴 스타레일 경원의 카툰 렌더링
notion image
젤다의 전설의 카툰렌더링

카툰렌더링의 특징

물리적으로 올바르지 않다. ⇒ 물리적으로 올바르다고 그것이 이쁜 렌더링이 아니다.
그것이… 카툰이니까
그것이… 카툰이니까
 

Lambert 모델

N dot Light 를 통해서 빛을 받는 각도에 따라 빛의 영향도를 표현할 수 있는 모델
notion image
[출처] 이득우의 카툰렌더링 강의 중 일부
notion image
들어오는 라이트의 방향은 편의상 1, 1, 1로 가정합니다! Normal 값은 Vertex Normal 사용
notion image
색상의 표현은 R,G,B 각각 0 ~ 1사이의 값으로 표현하기 때문에 0 이하의 값은 전부 검은색
Half Lambert 모델 0부터 -1까지의 구간이 전부 검은 색(0,0,0)이 되는 Lambert 모델을 좀 더 유하게 표현하기 위함
빨간선(하프 램버트) 파란선(램버트)
notion image
[출처]어제와 내일의 나 그 사이의 이야기어제와 내일의 나 그 사이의 이야기11 - 03 ~ 04 Half-Lambert(하프 램버트) 연산 및 완성 (Unity Shader) - 어제와 내일의 나 그 사이의 이야기
램버트 모델
notion image
notion image
 
올림함수(Ceil) 적용
notion image
notion image
하프 램버트 모델
notion image
notion image
 
 
notion image
하프 램버트에 Round(반올림 함수) 특정 영역이 과하게 어두워지는 단점(0으로 반올림)
notion image
notion image
notion image
[출처] 이득우의 카툰렌더링 기법 영상
하프램버트에 올림함수 적용 지정된 숫자(6.0)만큼 곱한뒤에 올림함수를 적용한 뒤 나누어 줄여줌
notion image
notion image
 

Ramp Texture를 사용하여 임의로 Gradient 지정

UV 가로 U 값 ⇒ Half Lambert 값의 1대1 대응되는 값 추가
notion image
notion image
notion image
실제로 색상의 변화를 아티스트가 조절할 수 있게 됩니다.
 

그외의 기타 기법들

Mapcap Texture
notion image
Texture를 만들고 각각의 UV를 지정하여 카툰렌더링을 구현
notion image

Normal Unmapping?

지저분한 노말때문에 정리가 힘들때 그냥 펴서 정리해버린다.
notion image
[출처]언리얼 웨비나 카툰렌더링 세션
수식으로만 줄 수 있는 한계점을 우회
 

Vertex Color 예외처리

3D 모델 위의 씌워지는 컬러(대개 Texture)값과 별개로 3D모델의 Vertex(정점)의 색을 결정하여 이를 활용한 예외처리
 

마치며 아무말

테크니컬 아티스트를 채용공고에서 종종 보게 되는데 그래픽스에 대한 기반 이해와 아트의 감각이 둘 다 필요한 테크니컬 아티스트가 이래서 필요하구나 하고 느끼게 됩니다.
 

참조

네이버 블로그 | 마둠파 테크니컬 아트 연구소네이버 블로그 | 마둠파 테크니컬 아트 연구소언리얼 엔진 카툰 렌더링 Part 1,2,3
YouTubeYouTube2강 - 카툰 명암을 조절하고 색을 입히는 방법
네이버 블로그 | Shading Box네이버 블로그 | Shading Box유니티와 언리얼에서 NdotL 구현하기
  • N dot Light에서 Light는 무슨 수로 구하는가?
Fandom, Inc.Fandom, Inc.MMD Tools/Manual | MMD & Blender Wiki | Fandom
→ 호요버스에서 제공하는 MMD 파일 포맷을 블렌더로 불러올 수 있는 Plugin