본문 바로가기

Unity

[Unity] 개인프로젝트 - 캐릭터 렌더링

셰이더 기본 정책

PBR에 맞춘 공정으로 셰이더는 Unity5의 기본 셰이더보다 단순하게(저렴하게) 구성.
Linear color space가 아닌 Gamma color space로 계산한다.
 

텍스쳐 구성

캐릭터의 텍스쳐 구성은 다음과 같이 이루어져 있다.
  • Diffuse (BaseColor)
  • Normal
  • Metallic
  • Glossiness
  • AO
 
AO 맵을 Diffuse에 multiply 시켜서 처리한다. (상-하로 갈리는 감쇄 표현 표함)
[Unity] D2 - 클라이언트 최적화 문서의 캐릭터-텍스쳐에서 텍스쳐 사이즈를 확인할 수 있다.
 
5장의 텍스쳐를 사용하지만, 텍스쳐 병합을 통해 런타임엔 Diffuse + Normal + (Metallic + Glossiness + AO)의 3장만 사용하는 방식이다.
 

라이팅

로비 & 캐릭터 선택화면과 전투 화면에서의 캐릭터 라이팅을 다음과 같이 분리하였다.
  • 로비/캐릭터 선택 : IBL + 포인트라이트 2개 (HQ Light라 불렀음)
  • 전투 : IBL
 
기본적으로 D2의 라이팅은 IBL 기반이다.
한마디로 실시간 라이트를 사용하지 않고, 주광을 포함해 모두 IBL로만 계산한다는 것이다.
 
로비/캐릭터 선택화면에서의 포인트 라이트 2개(실시간 라이트)는 캐릭터를 돋보이는데 사용되는 라이트들이다.
아무래도 전투 화면에서보다 훨씬 더 High Quality로 보여야 하기 때문이다.
 

IBL 설정

D2의 IBL은 다음과 같이 구성/설정되어 있다.
  • Diffuse irradiance cubemap (32 x 32 x 6)
  • Specular irradiance cubemap (128 x 128 x 6) with mipmap
  • HDR panorama를 합성한 후에 조명을 덧칠하는 식으로 입력 소스를 작업해 변환