본문 바로가기
게임 그래픽 리서치

"Unreal Engine4" 풀 다이나믹, 동적 리얼타임 GI 렌더링 시스템을 탑재

by Raypop 2012. 7. 7.

니시카와 젠지의 3D 게임 팬을위한 그래픽스 강좌 · E3 특별편 일곱번째

차세대 게임기에서 동작까지 상정한 Unreal Engine 4 가 등장 미리 계산없는 경악의 풀 다이나믹, 동적 리얼타임 GI 렌더링 시스템을 탑재



지금 세대의 플레이스테이션3, Xbox 360으로 대표되는 DirectX 9 세대 프로그래머블 쉐이더 3.0 사양 (Shader Model3.0) 기반의 3D 게임 그래픽스 개발에 매우​​ 큰 영향을 준 것은 EPIC GAMES의 Unreal Engine3 (UE3 )이었다.

UE3는 PS3, Xbox 360의 여명기의 프로그래머블 쉐이더 기반의 게임 그래픽 벤치 마크적 존재가 되었을뿐만 아니라 "게임 엔진을 가지고 개발 효율의 향상"이라는 것을 전세계 개발자에게 전파 하였다.

UE3는 PS3가 등장하는 2년전 (Xbox 360이 등장하는 1년전)의 2004 년 봄에 첫 선을 보였고  거기서 보여 주었던 것이 정말 실제 기기에서 실시간으로 제공되는 인가는 반신반의 했다. 하지만 후에 에픽 게임즈에서 출시 한 'Gears of War'시리즈 등으로 그것이 실제로 실현되는 것을 목격하고 "확실하게 진실이었다"고 탄복 하곤 했다.


200 만 폴리곤에서 전 모델을 디자인 이것을 5,000 폴리곤까지 절감
수백만 폴리곤 상당의 디테일은 노멀맵으로 떨어 뜨려 지오메트리 부하는 5,000 폴리곤 상태로 렌더링 이러한 파이프 라인은 현재 PS3, Xbox 360 세대의 게임 그래픽은 당연이 된 것이지만, 당시는 이것이 리얼 타임 렌더링 그리 그리 움직이는 게 믿기지 않았다

그런 "차세대 게임 그래픽 선구자"인 EPIC GAMES가 차세대 게임 엔진 "Unreal Engine4"를 이번 E3에서 공개 한 것이다. 사실, 3월 GDC2012에서, UE3 라이센스 사용자에겐 보여 주었지만, 이번 E3에서는 경사스럽게 일반 매체에 공개가 된 것이다.




■ UE4도 전체 Deferred 계 렌더링 엔진으로 전환

우선 아래 영상을 보자.

엔진의 본질을 영상 작품으로 정리 한 시네마틱 동영상

해설 동영상

UE4에서 렌더링 시스템이 전체 Deferred 기반됐다고 설명되어있다.

Deferred 계열의 렌더링 메소드에 대해서는 본 연재 "KILLZONE2 '편 이 자세하기 때문에 그 쪽을 참조 해 주었으면 하지만 쉽게 설명하면 먼저 형상을 렌더링하고 그 때 라이팅이나 음영에 필요한 중간 매개 변수들을 텍스처 에 출력 해 버린다. DirectX 9 세대 이후의 GPU는 단일 렌더링 패스로 복수 버퍼 (텍스처)에 출력 할 수있는 MRT (다중 렌더 타겟)의 기능이 있으므로 이를 활용하는 것이다. DirectX 9 세대는 4 출력 4MRT까지 DirectX 10 세대 이후의 GPU라고 8MRT까지 가능하다. 그리고 MRT로 출력 한 다 중간 매개 변수가 기록되는 텍스처를 참조하여 최종 렌더링 단계로 동작시킨다. 그 때 광원을 포스트 이펙트 처럼 렌더링 해 나가는 접근법을 취한다. 쉐이더 및 라이팅을 "나중에"하기 때문에 Deferred (지연) 계열 렌더링 메소드로 불리는 것이다. 반면 전통적인 렌더링 방법은 Forward 계라고 한다.


데칼 텍스처를 투사매핑하는 것이 아니라, 머트리얼 특성을 투사매핑 "Deferred Decals"

Deferred 계의 특징은 일반적인 렌더링 메소드는 개수가 한정되어 동적 광원 수를 성능이 허락하는 범위에서 무제한으로 둘 것, 따라서 매우 풍부한 비주얼이 실현 될 수있다.

UE4에서 전체 Deferred 계열 엔진으로 된 것으로, 독특한 라이팅 표현, 머트리얼 표현을 할 수 있게 되었다고 한다.

그 중 하나가 "Deferred Decals '이다.

이것은 리얼타임으로 머트리얼 특성을 현장에 투사 매핑하는 것으로, 데모에서는 얼음으로 만든 구체를 굴려 조약돌 바닥에 문질러 바르고 그 얼음의 질감이 조약돌 질감과 믹스되는 모습을 보이고 했다.

"Emissive Materials"(발광체)와 같은 스스로 발광하는 소재 표현도 Deferred 계열의 자랑으로 여기는 곳이다. 데모에서는 용암에서 나온 같은 망치를 용광로 에서 꺼내어 방안이 좀더 환해 지는 것을 보여주고 있었다.


자체 발광 개체의 표현. 물론 그 빛은 다른 물체를 비춰 질수도 있다




■ UE4 렌더링 엔진의 가장 큰 장점은 사전 계산 없이 스펙큘러에 대응하는 실시간 GI


Alan Willard 씨 (Senior Technical Artist, EPIC GAMES)

UE4 렌더링 엔진 핵심라고 말할 수는 간접 조명 (Indirect Lighting) 라이팅 시스템이다. 이것은 다른 말로하면 대국 조명 (Global Illumination : GI)의 것이다.

UE4는 사전 계산없이, 대국 조명 엔진을 탑재하고 있으며, 이는 현장에 고정을 강요하지 않는다 풀 다이나믹하고 실시간 GI 시스템이라고 설명되어있다.

Alan Willard 씨 (Senior Technical Artist, EPIC GAMES)에 어떤 구조인지를 물어 보면 "SPARSE VOXEL OCTREE"(SVO) 법임을 밝혀 주었다.

UE4가 채용 한 SVO 법을 이용한 GI 기술은 Cyril Crassin 씨 등이 SIGGRAPH2011라고 발표 한 ' Interactive Indirect Illumination Using Voxel Cone Tracing : An Insight "를 구현 한 것이라고해도 좋을 것 같다.

"Interactive Indirect Illumination Using Voxel Cone Tracing : An Insight '의 데모 영상으로 부터


현장을 복셀화

결론부터 말하면, 이것은 CRYTEK이 개발 한 Light Propagation Volume (LPV) 법을보다 스마트하게 진화시킨 것이라고 할 수있다.

자세한 내용은 논문으로 양보하겠으며, 여기서 개념 만 설명하지만, 크게 두 단계로 렌더링을 행한다.

먼저 수행 하는것이 앞으로 렌더링하는 장면의 형상을 통째로을 복셀화하는 과정이다.
덧붙여서 픽셀은 x, y 평면을 구성하는 화소 복셀은 x, y, z (가로 세로 높이)를 구성하는 입체 화소와 같은 이미지 다.


옥트리에 의한 복셀화. 여기가 포인트

LPV 법에서는 공간을 일정한 간격으로 분할한 복셀의 개념을 이용했다. 그래서 넓은 장면에서 빈 공간이 많으면 대부분의 복셀이 '실체가 없는 "NULL 노드가 되며 데이터로 중복 가능성이 크다.

UE4가 채택한의 SVO 기법은 씬을 팔진트리(Octree)로 분할한다.

실체가 있는 곳에는 최소 단위 복셀을 할당, 아무것도없는 곳에는 적은 수의 최대 크기의 복셀을 할당한다.


사전 계산없이 1번으로 씬 옥트리 복셀화한다. 그 처리 자체도 GPU만으로 처리

"폴리곤 기반의 형상 공간을 복셀화 → 옥트리화 '의 흐름은 라이팅이나 음영없이 Z 버퍼 렌더링과 같은 방법과 GPGPU적인 접근 방식을 결합하여 행한다. 이 근처의 발상은 그야말로 '차세대'라는 느낌이 든다.


LPV 법 레이 트레이싱 법과 비교. 2 바운스이므로 깊숙히 있는 배경까지 간접 조명의 영향을 주는것은 레이 트레이싱 미치지 못하지만 LVP 기법보다는 넓게 영향을 주고 있다

실제 라이팅 파이프 라인은 먼저 보통 직접 빛 기반 렌더링을 수행하고 그 면에 둘 라이팅 결과와 광원의 방향을 대응하는 복셀에 기록한다.

이대로라면 너무 이산적이기 때문에 해당 정보를 동일한 옥트리에서 필터링 처리 하고 확산시킨다 (단적으로 말하면 뭉갠다).

최종 라이팅 단계에서는 확산 반사하면 전방위 (여러 방향)을 향해 레이를 쏘아 (사실은 옥트리에서 검색 처리된다) 복셀에 저장되는 광량을 얻을 하여 라이팅 결과에 반영 준다.

이 기술이 강력한 것은 지금까지 의사 GI 기법과 달리, 간접 조명에 의한 스펙큘러의 표현까지도 실현 가능하게되는 점이다. 구체적으로는, 레이를 쏘는 (옥트리로 검색) 방향을, 시선 벡터와 법선 벡터에서 요구되는 반사 벡터 방향으로 하면 되는 것이다.

옥트리 구조이므로, 아무것도없는 공간에서 검색도 NULL 노드를 끝없이 덮어쓸 필요가 없기 때문에 광범위로 퍼지는 간접광의 표현도 빠르게 행할 수있는 장점도있다.

알고리즘상, 2바운스 (2차 반사광)까지 GI는되지만, 여가까지의 표현이 된다면 필요 충분하다고 할 수있다.


512 × 512 × 512 옥트리 복셀화는 GeForce GTX 480에서 5.5ms 정도. 차세대 기라면 더 단축 할 수있을까?

무엇보다 강력한 것이 그 씬에 인체와 같은 변형 개체가 있고 씬이 오브젝트를 괴멸 적으로 파괴하려고 그 장면을 매번 옥트리 복셀화하여 다시 고치는것만으로 GI 시스템을 사용 할수 있다는 것이다. GPU 파워가 충분하면 매 프레임마다 옥트리 복셀화를 다시해도 좋을 것이다.


간접 조명으로 밝게 조명되는 실내

이번 데모에서는 동적 광원이 거의 없음에도 불구하고 햇볕에 비친 강한 간접 조명이 존재하는 전체 장면이 희미하게 밝아지는 모습이 나타났다.

또한 동적 + 리얼타임으로 이루어지는 것을 보여주기 위해 빙글 빙글 회전하는 태양계 의식이 놓여있는 방에서의 간접 조명 라이팅 데모도 있다. 여기도 "태양이 지면을 비추고 있다"는 상황 자체는 방금 전의 장면과 같지만,이 바닥에 빨강 / 녹색 / 파랑 색이 바뀌는 융단이 깔려 있고, 실내의 모든 개체가 태양 빛을 받아 둔하게 빛나는 카펫 색상의 간접 조명으로 조명된다.

이어 광원 자체가 움직이더라도, 간접 조명이 제대로 발생하여 타인을 조명하는 것을 보여주기 위해 이 태양계 의식의 방에서 스포트라이트를 이동시키면서 조명 실험을 선보였다. 스포트라이트를 커튼 방향으로 하면 그 커튼 반사광이 이번에는 방을 비추게 되고, 그 스포트라이트의 방향을 바꾸면, 그 반사광이 나오는 위치도 바뀌어 있었다.


카펫의 색상을 바꾸면, 방이 제대로 색의 간접 조명으로 조명된다

스포트 라이트로 천장 빨간 커튼으로 빛을 비추면 그 간접광이 벽으로 퍼진다


이 간접 조명 라이팅 시스템은 UE4에서 기본적인 조명 엔진 역할을 하고 있으므로, 파티클 시스템에 제대로 영향을 준다. 데모에서는 파티클로 표현되는 연기가 직접 빛과 간접 조명 모두에 라이팅되어, 게다가 부드러운 그림자까지 땅에 투사​​하는 것처럼 나타났다.

간접 조명 라이팅은 파티클 시스템에 영향을 미친다




■ UE4 기반의 게임이 실제로 작동하는 것은 언제인가?

UE4는 GPGPU의 활용이 적극적으로 진행되고있다.

그 응용처 중 하나가 "GPU 입자 '라고 불리는 기술이다.

이것은 입자 자체의 발생, 물리 시뮬레이션, 최종 렌더링에 이르기까지 모든 GPU에서 완결 실행하는 구조다.

처리에 CPU가 전혀 개입하지 않기 때문에 매우 성능이 높고, 이번 데모에서는 100 만개 이상의 입자를 발생시켜 그 모든 특정 역장의 영향을 받게 움직이는 모습을 보이고 있었다. 총알이 벽에 충돌했을 때의 불꽃과 화염, 비나 눈 같은 기상 현상 등 크게 게임의 본론에는 관계가없는 "화려한 표현" "연출 효과 목적"효과는 유효 할 것이다.


GPU 파티클 데모. 불똥

GPU 파티클 데모 2. 얼음 파티클


이 밖에 데모에서는 광학 이론에 비교적 정확한 포스트 이펙트, 천구 시뮬레이션에 의한 밤낮의 표현과 실시간 그림자 생성 등도 소개되었다.


UE4는 광학적으로 정확한 각종 렌즈 효과를 포스트 효과의 형태로 탑재한다. 예를 들어, 렌즈 플레어는 프레임의 아무리 작은 것이라도, 고휘도라면 허상에 어떠한 영향을 미친다

동일한 장면의 밤낮의 표현. 여기서도 간접 조명 라이팅 위력을 알 수 있다
"표면하산란 기술도 구현 완료"라고 어필되었지만, 이것은 3D 모델의 뒷면과 표면의 깊이 값의 차이에서 두께를 구하고 그 두께에 따라 투과광을 결정하는 같은 유사적인 방법에 의한 것이라고 추측된다

이번 데모는 Shuttle제 작은 인클로저 64bit Windows 7 기반 PC에서 작동하고 있으며, 하드웨어 스펙 적으로는 CPU에 인텔 Core i7, GPU에서 NVIDIA GeForce GTX 680, 메인 메모리는 16GB 같은 소위 현세대의 하이 엔드 PC에서 작동했다는 느낌이다.

UE4는 DirectX 11 세대 이상의 그래픽 프로세서와 64bit 시스템을 전제로 한 설계가되어 있으며,이 요구 사항에 적합한 가정용 게임기는 현재는 존​​재하지 않는다. 따라서, EPIC GAMES로는 당분간 UE4는 "하이 엔드 PC 용 '이라는 자리 매김 할 것 같고, 가정용 게임기에 대한 대응에 관해서는 차세대 게임기의 스펙이 밝혀질때 "UE4가 어떻게 호환 할것인가? "등의 방침을 재차 발표 할 것 같다. 또한, Wii U는 DirectX 10 세대의 그래픽 시스템이므로, UE4 대신 필연적으로 UE3의 대응이된다 (실제로 UE3는 Wii U에 대응 됨).

UE3와의 호환성은 스크립트 관련 기능의 일부 호환성은 없지지지만, 컨텐츠 워크 플로우는 거의 그대로이며 메쉬 모델은 그대로 유효한 것.

유져 입장으로써 신경 쓰이는 것은, 이 UE4을 기반으로 한 게임이 언제 나올 것인가라고 것이지만, 현재 EPIC GAMES는 UE4 개발과 병행하여 UE4 기반 게임 개발도 행하고 있다고 한다. 그러나, 이쪽도 출시시기 등에 대해서는 언급하지 않고 "적절한 시기에 발표한다 '는 코멘트가 시종일관 하고 있다.

아직 많은 부분에서 수수께끼가 많은 UE4는 있지만, EPIC은 착착 "차세대"을 위한 준비를 시작하는 것만은 틀림 없다.




출처 : http://game.watch.impress.co.jp/docs/series/3dcg/20120610_539330.html