반응형

4gamer의 GDC세션에서 가져왔습니다.
(약간의 의역이 포함되어 있습니다)

201733Game Developers Conference 2017마지막 날 Shoot for the Sky : The Ambitious HDR Time-lapse Skies of Forza Horizon 3라는 제목의 세션이 진행됐다. 최근 게임이 사실적인 그래픽으로 되어있는 것은 여러분들도 잘 아시는 것이지만 특히 자동차는 CG와 친화성이 높고, 스크린 샷을 보고 실사와 구별해 내기가 점점 어려워지고 있다. 특히 최근에는 자동차 이외의 부분의 화질 개선이 눈부신 느낌이다.

20169월에 발매 된 3번째 작품인 Forza HorizonForza 시리즈의 스핀 오프 작품이면서 본편에서 부터 많은 인기를 얻고있는 시리즈이다. 극기심있게 서킷을 달리는 Motor Sport에 세계 각지의 도로를 달리는 Horizon은 경관도 볼거리 중 하나이며, 특히 Horizon 3에서는 하늘의 표현이 극적으로 개선되고 있다. 이번 강연은 점점 사실적으로 되어가는 자동차게임의 구성 요소에서 하늘을 주제로 말한다. 그 서두에서 제시 한 것은 다음 영화이다.


위의 동영상을
"이제 꽤 실사 수준에 가까워지고 있구나"라는 눈높이로 보고 있던 사람에게는 슬픈 소식이 있다.

사진
이었습니다.

GDC
의 단상에서 시리즈의 전개를 설명하고 있던 Jamie Wood는 이 시리즈에서 하늘이 얼마나 중요한 역할을 차지하고 있는지를 말했다. 자동차, 도로, 하늘이 Horizon3 대 요소라고 한다. 그는 어떻게 하늘에 힘을 썼는지 예로 Forza Horizon 2 하늘의 영상을 보여주며 이 영상을 실현하는 기술, 즉 대기 시뮬레이션을 실시하여 128개의 바라메터를 말하며 그 노력을 어필하고 있었다. 그러나 이어 표시된 것은 실사의 하늘사진이었다. 글쎄, 뭐라고 할까, 진짜 구름에는 이길 수 없다. 대기 시뮬레이션은 상당히 난이도가 높은 연산 처리이며, 실제 하늘을 완전 재현하려면 그야말로 지구 시뮬레이터 클래스의 연산 능력이 필요할 것이다.

"그럼 실사 영상을 게임 중에 재생하면 되잖아?" - "1시간 분량이라도 Blu-ray1장 가득차 버릴꺼야"」 「"그럼 스트리밍으로" - "대역폭과 메모리 용량이~"」 「"압축하자" - "화질이 말이지..." "사진 기반으로 돌리면?" - "그것도 용량이~ 게다가, 우리 이미 시스템 만들어 버렸고..." "...... " "...... " 같은 논의를 했지만, 결국 Horizon 3에서는 실사 데이터를 처리하기로 검토되어 있었다. 겨울, 영국에서 이루어졌다는 로케이션 헌팅은 아침부터 저녁까지 오로지 하늘을 촬영하고 있었다고 한다. 촬영지를 결정할 때는 전방위로 선명한 시야와 대기 오염이 적은 등 경관 조건과 함께 접근의 용이성 및 보안 등을 고려하여 선정하고 있었다.

장비의 사진을 보면 보통 DSLR을 3 대 사용하고 있는 것처럼 보인다. 화각 120도 정도에서 사방으로 향한 느낌이다. 노출은 7단의 브라케팅에서 HDR데이터를 생성하는 것. 자동제어에 의해 촬영은 30초 간격으로 실시한다. 촬영시간을 보면 20시간 촬영하고 있기 때문에 카메라 1대당 16800장의 촬영을 실시하는 힘든 촬영현장이 되어 있었던 것 같다 (설치 후 방치해 둔것 뿐이지만)

사진은 1회 촬영에서 I.2TB 정도의 데이터가 된다고 한다. 이것을 어떻게든 압축해야 하는 것이지만, 목표값은 2GB 이하일 것. 디스크용량을 생각하면 이것은 여전히 ​​많은 정도일지도 모르지만, 어려운 목표인 것은 틀림없다. 우선 데이터의 가공이다. 색수차와 왜곡은 렌즈 프로파일을 사용하여 보정하고, 전체적인 색상보정은 컬러관리 전문기업 X-Rite의 제품이 사용되고 있다. 다음은 노드기반 합성도구 Nuke를 사용하여 다단노출로 촬영 된 데이터를 HDR 데이터에 통합한다. 3대의 카메라로 촬영 된 데이터를 조합하여 하나의 전체 하늘데이터로 만들고, 구름 부분은 땅의 빈 부분에서 분리하여 마스크 데이터도 생성 해 둔다. 이 부분은 수작업 공정이 많고, 1종류의 하늘에 최대 1개월정도 소요된다고 한다. 다행히 분업이 있는 공정이므로, 외주 등을 통해 극복 한 것 같다.

Horizon 2 시스템 및 Horizon 3 시스템의 비교 동영상이 재생 되었다. Horizon 2 쪽은 사전에 말한 것과 같은 것이지만, 시스템에서 구름을 시뮬레이션하고 있기 때문에 거의 같은 구름 상태에서 태양의 위치를 ​​바꾸면 경관이 변화하고 있다. 역광상태의 묘사나 그림자 등을 보면 구름의 두께를 추정하고 처리를 하고있는 것을 알 수 있을 것이다. 실사기반 Horizon 3에서는 태양의 위치를 ​​이동할 수는 없지만, 모든 태양의 위치에서 구름의 상태를 촬영하고 있는것 같은 느낌이다. 기술적으로 보면 Horizon 2의 방향성도 대단하지만, 진짜에 가까워지기엔 아직 가야할 길은 먼 것 같다.


광원의 이동에 대응하지 않는 대신 새로운 시스템의 중심이 되는 것은 구름이 움직이는 것이다. 하루 종일 구름의 움직임을 촬영했다고 하니까 당연하기는 하지만, 동적인 구름은 경관을 수놓아 준다.

원래 사진 촬영은 30 초마다 촬영했기 때문에 경우에 따라 적당히 사이를 연결할 필요가 있다. 그렇다면 어떻게 구름을 움직일 것인가 하는 문제가 있지만, 기본적으로 구름의 흐름은 직선 방향이므로 이를 기반으로 보간되어 있다. 이 근처에서도 Nuke 벡터 생성 기능이 사용되고 있다. 움직임의 생성 자체가 축소4 분의 1크기로 산출되었으며, 그것을 실제 이미지에 적용한다. 따로따로인 데이터이며 보간는 어렵지만, 모순된 움직임을 풀 수있는 키가 된다고 그는 말했다.

이렇게 해서 하늘의 이미지는 게임 구현시에 더 광학효과가 더해져 하늘에 있는 태양의 위치를 ​​광원으로 게임의 라이팅을 실행한다. 또한 하늘의 이미지 자체를 라이트 프로브(미리계산한 광원값을 가진 라이트)로 사용, 그늘과 양지를 나타내거나 간접 조명으로 사용하거나 하는 것도 행해지고 있다. 물론 차체도 비친다.

데모 동영상에서는 고정카메라인 채로 구름의 움직임에 따라 지상에 떨어진 그림자가 이동하는 모습이 나타나고 있었다. 레이싱 게임이 아닌 더 느긋한 게임에서 즐기고 싶은 기능지도 모른다. 그런데, Horizon 3에서 하늘의 묘사는 Horizon 2과는 전혀 다른 방식으로 된 것이지만, 그때까지 만들던 시스템이 헛된 것은 아니다. 하늘의 촬영은 비가 올때는 촬영하지 않았지만 (기기들이 젖는 것은 차치하고, 빗방울로 인해 괜찮은 장면을 찍을 수 없기 때문) 레이스도중 우천이 될 수도 있다. 그래서 날씨 시스템 등은 Horizon 2의 시스템을 통합하여 운용되고 있는 이유이다.


Horizon 3의 무대가 되는 호주에서 열린 로케이션 헌팅은 본격적인 것이 되어 있었다. 2동안 실시한 테스트에 이어, 여름 기간에 25일 이상을 사용하여 본 촬영이 진행됐다. 이번에는 24시간 연속으로 하늘을 촬영하는 힘든 일정으로 결국 200만 장의 사진을 촬영 한 것이라고 한다. 그로부터 데이터처리에 걸린 시간과 노력은 미루어 짐작할 수 있겠지만, 그 보람있는 결과물이 되고 있는 것은 아닐까. 생각해 보면 보통은 아무도 할 법하지 않은 것을 완전히 달성했다는 의미에서도 재미있는 기술이라고 할 수 있다.

읽다보니 재미있는 부분이 많네요 ㅎㅎ
실사처럼 만들기 위해 임의의 태양광 변경을 못하게 만든대신 구름의 흐름을 이용한 부분과 자동차, 도로, 하늘이 중요한 포인트라는 점 등...읽어 볼만한 글이라고 생각해서 가져왔습니다.

함께 읽으면 좋은 글

[GAME 이야기] - GDC 2017의 VR이야기

[GAME 이야기] - 젤다 : 야생의 숨결 메이킹 공개



반응형