셰이더 기본 정책
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를 합성한 후에 조명을 덧칠하는 식으로 입력 소스를 작업해 변환
'Unity' 카테고리의 다른 글
[Unity] Script Life-Cycle (0) | 2023.04.24 |
---|---|
[Unity] Memory leak 유형 및 대처 (0) | 2023.04.24 |
[Unity] 개인프로젝트 - 아트 리소스 버짓 (0) | 2023.04.24 |
[Unity] 개인프로젝트 - 저사양 단말기 구분하기 (0) | 2023.04.24 |
[Unity] 개인프로젝트 - 클라이언트 최적화 (0) | 2023.04.24 |