The Chase
우리가 그것을 만든 방법
The Chase는 두 캐릭터가 중력을 거스르는 호버바이크를 타고 힘차게 달리는 미래 지향적인 풍경을 소개합니다. 그들의 필사적이고 짜릿한 라이딩은 갈등과 열정의 더 깊은 뒷이야기를 암시합니다.
우리가 그것을 생생하게 구현한 방법은 다음과 같습니다.
캐릭터
극단적인 캐릭터 디테일
모든 캐릭터 중심 스토리와 마찬가지로 악마는 디테일에 있습니다. 이것이 우리가 무려 40,000개의 정점을 가진 각 캐릭터를 만든 이유입니다. 이는 현재 세대의 콘솔과 PC 게임 표준에서도 매우 높은 캐릭터 폴리카운트입니다. 각 캐릭터의 얼굴과 몸에는 피부색, 반사도, 노멀 맵 등에 대한 여러 2048x2048 텍스처가 있습니다.
현실적인 피부
캐릭터의 피부를 보셨나요? 우리는 화면 공간 확산이라고도 알려진 프로세스인 화면 공간에서 들어오는 조명을 흐리게 하는 SSS(하위 표면 산란) 스킨 셰이더를 구현하여 탁월한 현실감을 달성했습니다. 우리는나비 효과에서 배운 많은 내용을 모바일 GPU에 최적화했습니다.
질감과 음영
우리는 동적 물체에 대한 조명을 계산할 때 에너지 보존과 프레넬 효과를 고려했으며 피부와 금속 모두의 반사 성분에 대해 Beckmann 분포를 사용했습니다.
호버바이크의 금속 페인트 및 기타 반사 표면에 광택을 더하기 위해 저확산 재료와 함께 사용하도록 스킨 시스템을 조정했습니다.
블룸을 달성하기 위해 전체 화면 후처리를 사용하는 대신, 우리는 화면 공간 확산 접근 방식을 피기백하고 스킨 셰이더에서 직접 블루밍되는 확산 스킨 구성 요소를 평가했습니다. 이를 통해 최소한의 비용으로 원하는 효과를 얻을 수 있었습니다.
조명
선형 공간 조명 근사
거의 모든 최신 콘솔 또는 PC 게임은 감마 보정을 수행하지만, 많은 모바일 GPU는 여전히 자동 감마 보정(sRGB) 읽기 및 쓰기를 지원하지 않습니다. sRGB를 에뮬레이트하기 위해 우리는 감마 2를 사용하여 예를 들어 2.2의 거듭제곱을 계산하는 것보다 훨씬 빠른 제곱(자체와의 곱셈) 및 제곱근 연산을 사용할 수 있었습니다. 우리는 피부 픽셀과 중요한 피부 음영 처리 세 번째 패스만 수정했습니다.
대기 산란
이 데모의 목표 중 하나는 모바일 플랫폼에서 배경이 얼마나 인상적인지 보여주는 것이었습니다. 이를 달성하기 위해 우리는 기존의 원거리 안개를 사용하는 대신 모바일 친화적인 대기 산란 시스템을 사용하기로 결정했습니다. 우리는 태양에 대한 각도와 물체까지의 거리를 고려하여 공중에서의 산란을 시뮬레이션했습니다. 결과적으로 Chase는 카메라에서 가장 멀리 있는 가시 물체가 4km 떨어져 있는 매우 크고 개방적인 보기 환경을 제공할 수 있습니다.
새로운 렌즈 플레어 시스템
플레어 레이어를 사용하면 다음과 같은 다양한 효과를 얻을 수 있습니다.
- 아나모픽 현상: 렌즈의 아나모픽 모양으로 인해 플레어가 수평 또는 수직 축으로 이동하는 현상입니다.
- 내부 그림자: 헤드 마운트의 내부 폐색이나 렌즈의 고르지 못한 반사로 인해 플레어의 강도가 부분적으로 컬링되는 곳입니다.
- 빛 누출: 플레어의 형상이 화면 가장자리에서 늘어나 프레임 외부의 매우 밝은 광원을 시뮬레이션합니다.
향후 계획
The Chase는 실현되지 않은 먼 미래를 배경으로 하고 있지만, 이를 만드는 데 사용된 기술은 지금 바로 여기에서 사용할 수 있습니다. 모바일 개발자로 시작하고 고급 그래픽을 모바일 게임에 적용하는 방법을 배우고 싶다면모바일 최적화에 대한 실용 가이드가바로 시작점입니다.
Google은 Nexus7/OpenGL ES 3.0 공개 기조연설에서 The Chase를 사용했으며, 많은 주요 전시업체의 SIGGRAPH 2013 데모 영상에서 널리 보여지고 호평을 받았습니다.