토픽 다이제스트 일부
HI-FI Rush Character Self Shadow
목표로 하고 있는 것은 셀 세이딩 모드에서 쉐입의 그림자 영역이 언제나 깔끔한 것.
얼굴을 제외한 곳의 툰 쉐도잉은 일반적인 NdotL 을 사용 했음.
버택스 노말을 사용할 때의 얼굴에서 스무스 커브를 생성하기에는 어려움이 있었음.
아무튼... 첫 번째 문제는 물론 두 번째 문제가 있음. 캐릭터 얼굴이 디포밍 될 때 버택스 노말을 사용 해서 쉐도잉 처리 하는 점은 문제점이 가장 큼. 알겠지만 얼굴의 본을 사용해서 페이셜 모션을 실행 하면 버택스 오리엔트도 계속 바뀜. 당연히 이 장면은 테스트이며 매우 과장되게 디포밍 한 것임.
그래서 우리는 하이트맵 기반으로 스레스홀드맵을 사용하기로 함.
스레스홀드 값은 앵글임. lightAngleHorizontal 값을 구하고 PI 로 나누며 레인지 0 부터 1 을 노말라이즈 함. 그 다음 결정 하죠 어디가 그림자고 어디가 그림자가 아닌지 말이죠...
이 기법은 오직 수평에만 대응하도록 고려되었음. 즉 이 그림자 기법은 좌우방향에만 반응함. 어쨌거나 이것은 하이파이 러시에 충분했음.
이 방법은 유니티 서울 2018 에서 미호요가 발표한 방식을 리프러덕션 한 것임.
스레스홀드맵을 어떻게 제작했는지 말 해 보자.
우리는 일단 DCC 툴을 사용해서 버택스 노말을 사용한 계산 방법으로 180도 대응 되는 텍스처를 만들었어. 위에 보는것 처럼... 우리는 조명을 매5도 마다 회전 시키고 총 36장의 텍스처를 추출 했다. 여기서 핵심은...
그 다음 아티스트는 수동으로 만족할 만한 결과에 도달하기 위해 리처팅을 수행 했어.
이렇게 만들어진 텍스처는 내부에서 제작한 툴을 사용해서 병합 되었다. 디스턴스 필드와 같은 인터폴레이션을 사용함.
이렇게 해서 완성 했어. 첫 번째 문제 였던 스무스 커브를 만들기 어렵다는 것은 이렇게 해결 되었다. 하지만... 아티스트 역량으로 이것을 게런티 해야 함. 몇 번의 테스트와 리터칭으로 가능하다.
두 번째 문제였던 디포밍 되었을 때의 문제점도 어느정도 해결 됨.
솔루션 적용 전과 후의 비교. 해결 된 것 같죠?
버택스 노말을 사용할 때 노말을 수정해서 1번과 2번 문제를 수정하는 것에 문제가 있었지만 스레스홀드 맵을 아티스트가 리더칭 해서 이렇게 문제를 해결 함.
게시자 주:
이 내용 외에도 전반적으로 디퍼드 렌더링 각 버퍼와 볼륨을 어떻게 사용했는지 유익한 내용이 꽤 많아요.
'TECH.ART.FLOW.IO' 카테고리의 다른 글
[번역] Hierarchical-Z map based occlusion culling ( Old Post ) (0) | 2024.04.23 |
---|---|
[번역] 피부 렌더링 연구 기록 (1) | 2024.04.19 |
[번역]Rendering a Scene with Deferred Lighting in Objective-C (0) | 2024.04.04 |
[번역]테크아트 케이스 스터디: 갓 오브 워 4 아트레우스 캐릭터 반전: 재료 복원 (0) | 2024.04.03 |
[번역]초보자를 위 lilToon의 FakeShadow 쉐이더로 앞머리의 떨어지는 그림자를 표현하고 싶어요! (2) | 2024.04.03 |