[Post Process] 카툰 렌더링 2탄

Woogle·2022년 9월 28일
0

언리얼 그래픽

목록 보기
3/7
post-thumbnail

어제 만든 내적을 이용한 카툰 렌더링 효과를 심화시켜보았다.
https://velog.io/@woojoo0407/Material-카툰-렌더링-기초

💡 핵심 아이디어

  • Normal Vector: 오브젝트의 면에 수직 방향인 벡터
  • 벡터의 내적: 두 벡터가 서로 같은 방향으로 평행하면 양수, 반대 방향으로 평행하면 음수, 서로 직교하면 0에 수렴

📄 그림자 구현

(1차) 마스터 머터리얼

  • Directional Light 벡터와 면의 노말 벡터의 내적을 구한다.

  • if 표현식으로 분기를 나눈다.

  • 내적값
    1) > Shadow Depth(=0)
      Diffuse Tex 색깔을 출력
    2) ≤ Shadow Depth(=0)
      Shadow Tint(=0)를 곱한 색깔(=Black)을 출력

중간 결과

(2차) 마스터 머터리얼

  • if 표현식을 하나 더 추가하여 분기를 3개로 나눈다.

  • 내적값
    1) > Shadow Depth(=0.25)
      Diffuse Tex 색깔을 출력
    2) ≤ Shadow Depth(=0.25) "AND" > Band Depth(=0)
      Shadow Tint(=0.4)를 곱한 색깔을 출력
    3) ≤ Band Depth(=0)
      Shadow Tint를 2번 곱한(=0.16) 색깔을 출력

중간 결과

📄 외곽선 구현

외곽선 머터리얼

  • 기존 스켈레탈 메쉬보다 살짝 두꺼운(Offset) 외각선을 표현하기 위한 머터리얼을 제작
  • Two-sided + TwoSidedSign + OneMinus : 양면 중에서 뒷면만 보이게 표현

스켈레탈 메쉬

  • 기존의 스켈레탈 메쉬(CharacterMesh)는 그대로 두고,
    외곽선 머터리얼을 입힌 메쉬(OutlineMesh)를 덧씌워서 외곽선을 표현한다.

중간 결과

📄 마무리 다듬기

  • 얼굴 머터리얼 인스턴스의 Shadow Depth와 Band Depth를 감소시켜 얼굴에 음영을 줄였다.

  • 얼굴에 살짝 붉은 기운이 돌면 더 이쁠 것 같아서 얼굴 마터리얼 인스턴스의 Shadow Tint에 R 채널을 높였다.

  • 얼굴 외 피부에도 붉은 기운이 돌게 하려면 Shadow Tint를 UV map으로 바꾸고 피부 부위의 R 채널을 높이면 될 듯 하다.


참고 자료

profile
노력하는 게임 개발자

0개의 댓글