2011년 4월 25일 월요일

니시카와 젠지(西川善司)의 3D게임 팬을 위한 Unreal Engine3 강좌 Ver.2011

당신은 차세대 기기에 바치는 러브레터 ‘SAMARITAN’데모를 보았습니까?


 GDC2011 기간 중, EPic Games의 언리얼3 엔진(UE3) 2011년 버전이 공개되었다. Epic Games는 프라이빗 부스에서 관계자, 사용자, 보도관계자를 초대하여 테크놀러지 데모를 공개했는데, 행사 기간 중 촬영이 일체 금지되어 눈으로만 보고 있었다. Epic Games로 부터 받은 최신 자료와 함께 전하도록 하겠다.



[저자의 최근 사진]
GDC2011에서 귀국하여 닌텐도 3DS를 샀다. 나안입체시(裸眼立体視)는 작년 E3 때의 프로토타입 보다 화질이 향상된 느낌이다. 다만, DSi LL에 길들여져 있다면 화면이 매우 작게 보인다. 개인적으로는 3DS LL 등장에 기대를 걸어본다. 사진은 GDC2011의 실리콘스튜디오 부스에서 체험한 아이폰 앱, Motion Portrait 응용 어플리케이션 '좀비 부스'. 자신의 얼굴을 3D에 적용해 좀비화 할 수 있다. 많은 사람들로부터 절찬을 받았기 때문에 모두에게 알리기 위해서... 블로그는 여기로



UE3, DirectX 11 완벽지원~ 차세대 기기에 바치는 러브레터 'SAMARITAN 데모'에 주목

 UE3 2011년 버전의 기능강화에 있어 주요 특징은 '다이렉트X 11로의 대응'이다. Epic Games에서는 2009 10월의 윈도우7 발매에 맞춰 발표 한 DirectX 11에 대하여, 2010년 초 경에는 '근시일 내에 대응 예정은 없고, UE3 플렛폼의 환경정비 강화에 착수'라고 했다.

 작년 연재에서도 다룬 UE3 2010년 버전에서는 정점속성(頂点) Visual Authoring Tool, 'Mesh Painting Tool'과 스플라인 고차곡선(高次曲線) 기반으로 3D모델링을 변형할 수 있는 'Spline Deformation Tool', Procedural 건물 생성/setting Tool 'Facade Tool' , 툴 기능에 대한 충실화를 꾀하였지만, 그것들은 확실히 그런 방침이 구현 되었다고 할 수 있다.

UE3 2010년 버전에서 그러한 '환경정비' 부분을 일단락 했기 때문인지, UE3 2011년 버전은 이펙트와 비주얼 기능강화에 중점을 두게 된 것 같다. PS3, Xbox360 등 가정용 게임기의 그래픽 아키텍쳐는 DirectX 9세대 Programmable Shader model 3.0(SM3.0) 기반이지만, 이펙트나 비주얼에 있어 현 세대에서 가능한 것, 경쟁 엔진이 실현한 기술 트랜드 등을 망라해버려 '차세대'도 주목한 형태로 DirectX 11세대 Programmable shader model 5.0으로의 대응에 착수한 것이라고 말할 수 있겠다.

 실질적으로는 DirectX 10세대 Programmable Shader model 4.0은 생략한 것이 되지만, ‘업계로서는 DiretX 10은 거의 없는 것과 마찬가지다'라는 취급을 받고 있어 실질적인 피해는 적다.

 이번 Epic Games가 발표한 UE3에 대한 기능강화는 올 봄부터 제공되고 있는 최신 버전 UE3부터 적용된다고 한다. 작년에도 그랬듯이 최근의 Epic Games는 매년, 정례 기능강화라고 할 수 있는 업데이트를 하고 있지만, Unreal Engine의 버전은 3으로 그대로 둘 방침이다. 올해도 그 방침은 변화가 없는 듯하다. 글 머리에서 말한 것과 같이 Epic Games는 이번 UE3 DirectX 11/SM5.0 대응에 관한 테크놀러지 데모를 개발하여 공개했다.

 기능 설명을 들어가기 전에, 우선 아래의 테크놀러지 데모 영상을 봐주기 바란다. 이 데모는 UE3 2011년 버전의 기능을 최대한 활용한 것이기 때문에, 이정도 퀄리티의 영상이 가까운 시일 내에 PC게임으로 실현된다는 것은 아니다. 다만, pre render(off line rendering) 된 영상이 아니라 GDC 행사기간 데모 진행 중 리얼타임 영상이라는 증거를 보여주기 위해, 움직이는 상태에서 시점을 이쪽저쪽으로 옮기는 조작을 보여줬다.

 GDC 데모에서 사용된 머신은 GeForce GTX580 3장 장착한 3WAY SLI 기반으로 한 울트라 하이엔드 시스템이어서 얼핏 보면 현실성이 없는 것처럼 보였다.
 하지만, 2004 PS3 Xbox360이 등장하기 전, '차세대 게임 그래픽은 이렇게 된다'는 메세지를 전하며 Epic Games가 처음 UE2를 공개했을 때도 비슷한 인상을 받았지만, 뚜껑을 열어보니 현재 그들이 당시에 보여준 비주얼은 확실히 실현되어 있다.
2004년 당시, PS3 Xbox360도 등장하기 전에 Epic Games차세대 게임 그래픽으로 공개한 UE3의 리얼타임 테크니컬 데모 영상. 이 영상의 퀄리티는 ‘Gears of War’에서 실현되었다.

 DirectX를 사용해서 현재 얻을 수 있는 기술의 모든 것을 실현하여 영상의 형태로 보여준 것이 이번 데모다. Epic Games Vice President Jay Wilbur씨는 이 SMARITAN데모에 대해 아래와 같은 코멘트를 했다.

 얼핏 보면 과도하게 보일 수도 있지만, 이것은 차세대 게임 그래픽의 미래 예상도이다. 2004년 당시에도 그랬지만 '분명 이렇게 될 것이다'라기 보단 '이 정도를 당연히 만들 수 있다면 좋겠다'고 하는 메세지로 받아들이면 좋겠다. 이를테면 '결국 등장하게 될 "차세대 기기"에 보낸 러브레터'라고나 할까?(웃음)
Epic Games, Vice President, Jay Wilbur

[UE3 2011년 버전 테크니컬 데모 'SAMARITAN']


[UE3 2011년 버전 테크니컬 데모 (참고)]


Tessellation Stage의 활용

그럼 SAMAEITAN데모를 기반으로 UE2 2011년 버전의 기능을 알아 보도록 합시다. DirectX 11피쳐 대응이란 것으로 당연하게 UE3 2011 버전도 Tessellation(stage)에 대응하고 있다. Tessellation이란 DirectX 11에서 신설된 shader stage로 간단하게 말하자면 폴리곤을 동적으로 분할하거나, 점토세공과 같이 붙이거나 깎는 것이 가능한 방법을 말한다.
  
DirectX 11의 랜더링 파이프라인과 Tessellation Stage


 SAMAEITAN데모에서는 이 Tessellation을 주인공 남성의 목과 얼굴에 적용했다. 시점이 가까워지면 poping이 나오지 않도록 동적으로 폴리곤을 증가시켜 매끈한 곡면표현을 실현하고 있다.
Tessellation displacement mapping의 병용

 UE3 2011년 버전의 MATINEE Material Editor 등의 각 툴에서는 이 Tessellation Stage에 완전 대응되어 있어, 아티스트나 디자이너가 캐릭터나 오브젝트의 어떤 부위에 어느 정도 빈도의 Tessellation을 행할 것인가를 설정 할 수 있다고 한다.

 주인공 남성이 표피를 인간상태로부터 울퉁불퉁한 바위표면과 같이 경화(硬化) 시키는 연출이 들어 있는데, 이것은 Tessellation StageDomain Shader에 의한 Displacement Mapping에 의한 것이다.
 베이스가 되는 사람 얼굴 모델에 사전에 준비한 돌출 정보를 기재한 텍스쳐에 따라 사람 얼굴 표피 폴리곤을 지오메트리 레벨에서 변화시키는 것으로 실현하고 있다. 요철이 성장하는 것과 같은 연출은 이 displacement mapping의 스케일 값을 애니메이션 시켜 표현하고 있다. 물론, 동시에 표피 텍스쳐도 피부색에서 바위색으로 애니메이션 시키고 있다.

 게다가, 수수하면서 유니크한 Tessellation의 활용이라고 말할 수 있는 것은, 주인공 남성이 피우는 담배 연기다. 준비해 놓은 모델은 단순한 원기둥인데, 이것을 Tessellation으로 고차곡면화하고 한층 작은 요철을 displacement mapping하여 반투명하게 그리고 있는 것 뿐이라 한다. 물론 설득력을 높이기 위해 Tessellation은 계수를 변화시키고 displacement mapping은 스케일 값이나 텍스쳐 좌표를 애니메이션 시켜 복잡하게 움직이고 있다. 유체물리 시뮬레이션 등을 사용하지 않고 유사하게 보이는 방법으로써 꽤 괜찮은 방법이라 할 수 있다.
유체물리 시뮬레이션이 아닌, Tessellation displacement mapping의 병용으로 그럴듯한 연기를 표현

[Tessellation의 활용 예]
 
 

고품질 얼굴 랜더링, 표면하산란(表面下散乱) 시뮬레이션 장착

 UE3 2011년 버전의 표면하산란 시뮬레이션 효과를 가장 쉽게 알 수 있는 것이 SAMAEITAN데모의 주인공 남성 얼굴이 위를 보는 장면이다.
 이것은 통상의 거울반사 모델과 확산반사 모델을 조합한 통상의 라이팅을 한 결과와 그것을 색변조규칙(変調規)을 기준으로 화면좌표계(画面座標) blur 시킨 것을 합성하여 구현하고 있다. 색변조규칙이란 한 점을 빛이 투사했을 때 그 빛이 피부에 침투, 확산하여 색이 변한 뒤(주로 빨간 경향을 띈다) 재차 출사(出射) 측정결과에 근거한다. 이 기법은 AMD RUBY데모나 NVIDIA Adrianne데모에서 사용한 기법과 비슷한 접근방식이다.

얼굴 피부표현에 유사표면하산란(疑似表面下散) 효과를 적용 가능하게. 이 영상은 리얼타임 영상이다.

Epic Games에 따르면 SAMARITAN데모에서는 이 새로운 방식의 얼굴 시뮬레이션과 함께, 머리카락 라이팅에도 새로 개발한 이방성반사(異方性反射) 모델을 적용하여 리얼리티를 높여주고 있다.
좌측이 표피 라이팅 만의 결과, 중앙은 피부내부의 라이팅 결과, 우측이 이것들을 합성한 최종결과. 중앙의 왁스 같은 질감의 산란층은 빛이 피부 내부에 침투, 변조하여 흐릿해졌다.

카메라 조리개 형상이 나타나는 흐릿한 표현

 초점이 맞지 않는 영역을 흐릿하게 그리는 피사계심도 시뮬레이션은 최근 3D 그래픽 표현에서는 기본이라고 말할 수 있지만, UE3 2011년 버전에서는 이 흐릿한 표현에 고휘도(高輝度)이면서도 강하게 흐릿해진 부분에 카메라 조리개 형상이 나오는 이펙트가 추가되었다. SAMARITAN데모에서는 이 조리게 형상에 팔각형이 사용되고 있지만, 이것은 물론 임의의 형상을 선택하는 것도 가능하다.


카메라 조리개 형상이 흐릿하게 나오는 피사계심도 표현

해당 장면의 고휘도 부분을 추출하고 여기에 조리개 형상의 흐릿함을 발생 시킨다는 설명과, DirectX 11(10) 특징으로 소개되고 있는 것을 보면 scatter형 어프로치가 사용되고 있는 것으로 보인다.
Gather형이 아닌, scatter형의 어프로치로 인해 크게 흐릿해져도 날카로워지지 않는다

 이것은 장면의 고휘도 부분에 대하여 그 장소에 지오메트리 쉐이더로 폴리곤(빌보드, 스프라이트)을 생성하고, 거기에 고휘도 픽셀과 같은 색의 흐릿한 조리개 형상을 그리는 것으로, 최신 벤치마킹 프로그램 ‘3DMark11’에서도 사용되는 기법이다.
 이외에도 UE3 2011에서는 카메라 이펙트로 필름촬영 느낌의 film grain noise 등을 추가하여 아날로그 느낌을 연출할 수 있게 되었다고 한다.
좌측에 아주 엷게 푸르게 보이는 랜즈플레어도 같은 계열의 테크닉으로 만들어져 있는 것으로 보인다


■ image base reflections effect

 UE3 2011년 버전에서는 image base reflection effect라고 하는 기능이 구비되었다. 구체적으로는 장면의 고휘도 부분이 젖은 곳과 수직방향으로 흐르는 것처럼 보이는 효과로, SAMARITAN데모에서는 젖은 노면에 차의 헤드라이트나 가로등이 아래로 늘어져 보이는 것이 그 효과다.


image base reflection effect

젖은 노면에는 동적 환경맵으로 생성된 반사도 제대로 비춰져 있고, 그 반사의 고휘도 부분으로부터도 물든 색이 표현되어 꽤 사실적으로 보인다.





 이것은 랜더링 결과에 대해 화면좌표계에서 처리하는 post process effect의 한가지로 설명되고 있다. 가장 비슷한 이펙트로 유명한 것을 말하자면 ‘Screen Space Ambient Occlution’ (SSAO)가 있다. SSAO는 어떤 픽셀에 주목(着目)했을 때 주위 픽셀에 대응하는 심도(Z) 정보를 보고, 어느 정도 자신이 차폐되어(遮蔽) 있는지를 보고 음영을 더하는 것이다.


 이것의 발전형은 이 연재물의 ‘MT Framework 2.0’편에서도 소개했던 ‘Screen Space Global Illumination’ (SSGI)이다. 여기서는 차폐 상태가 아니라 한 픽셀 주위의 컬러 값을 샘플로 그 픽셀의 색에 추가하는 것이었다.

 UE3 2011년 버전의 image base reflection effect는 이 SSGI를 전방향이 아닌, 시선을 고려한 형태로 수직방향에 한정 시킨 것 같다. 제대로 하면 Raytraycing에 가까운 상태가 되므로, 꽤 극단적인 저해상도에서 실행하는 것으로 생각된다.
image base reflection effect는 그림자 부분의 차폐를 고려해서 실행된다.

또한 이 수직방향의 고휘도 부분에서 새어 나오는 것은, 그림자에 스며들지 않도록 되어 있다. 이 특례처리는 SAMARITAN데모의 노파가 인도를 걷는 장면에서 볼 수 있다. 인도를 걷는 노파의 그림자가 보도에 투사되지만, 그 그림자가 보도의 노면에 비추고 있는 고휘도 부분의 흐름을 바르게 차폐하고 있는 것이 그런 것이다. 일반적으로 화면좌표계 post process를 실행하는 것만으로는 다른 사람으로부터의 차폐 환경을 고려 할 수 없으므로 어떤 Marking을 매개로 사용하고 있다고 생각된다.


■ Motion Blur Bone base

 Epic Games UE3 2011년 버전에 대해 ‘Bone Based Motion Blur’을 적용했다고 설명하고 있다. 모션블러를 생성할 때 빼놓을 수 없는 픽셀 단위의 속도(velocity) 정보를 본 단위로 얻는다고 생각된다. 결국 신체가 정지하고 있어도 팔을 흔들면 그 팔에만 블러가 걸리는 이펙트이다.

 이것은 일반적으로 Object Motion Blur로 불려지는 것이지만, Epic Games에서는 호칭을 구분하고 있는 것 같다. SAMARITAN데모에서는 이 효과를 여러 장면에서 확인할 수 있는데, 특히 인상 깊으면서 봤을 때 재미있는 부분은 주인공과 경비병의 난투 장면이다. 주인공에게 맞은 경비병의 얼굴이 굉장히 빠른 회전을 하고, 이 회전방향에 블러가 제대로 나오고 있다.


[Bone Based motion blur]
 



■ Deferred Rendering 기반의 renderer 지원

 UE3 2011년 버전에서는 Deferred Rendering base의 랜더러가 지원되었다.
Deferred Rendering(Deferred shading)에 대해서는 본 연재 ‘KillZone2’편을 참고하시고, 간단히 말하자면 이런 느낌이다. 우선 라이팅을 뺀 상태로 지오메트리를 먼저 랜더링하고, 그때 중간치를 버퍼에 출력한다. 다음으로 그 중간치 군()을 활용해서 라이팅을 하지않고 생성한 랜더링 결과에 대해 라이팅(쉐이딩)을 뒤에 행한다. 쉐이딩을 뒤에 하기 때문에 후(Deferred) 랜더링(Shading)이라 부르는 것이다.

 이 랜더링 기법의 메리트는 광원수를 programmable shader 사양의 상한선에 구애 받지 않고 시스템 부하한계에 도달할 때까지, 무제한으로 이용할 수 있는데 있다. SAMARITAN데모에서는 현실 세계에 가까운 꽤 복잡한 Global Illumination(GI)처럼 보이는 효과가 사용되고 있지만, 이것들은 모두 동적광원을 그것처럼 보이게 배치했기 때문이다.

 2009 Epic Games는 정적 오브젝트를 배치한 완성 신(scene)에 정적광원을 설치한 상태에 상호반사까지 고려한 GI를 사전에 계산하는 방법인 ‘Unreal Lightmass’를 발표했지만, 이번 Deferred Rendering 랜더러와는 통합되어 있지 않다(동시이용은 가능).
[Deferred Rendering]

 
도처에 보이는 GI 같은 간접광 표현이나 환경광 표현은 Deferred Rendering의 은혜인가?


물리 시뮬레이션의 Nvidia APEX 테크놀러지에 대한 대응

 UE3는 지금까지도 Nvidia의 물리 시뮬레이션엔진 ‘PhysX’에 대한 대응을 하고 있었지만, UE3 2011년 버전에서는 Unreal MATINEE를 시작으로 한 툴들이 APEX에 대응을 다했다고 한다. 일반적으로 게임에 있어서 물리 시뮬레이션 부분은 프로그래머의 관할 하에 있고, 아티스트는 그 제어를 컨텐츠 제작단계에서 컨트롤 하는 것은 어렵게 되어있다.

 Nvidia APEX Nvidia PhysX의 상층에 위치한 프레임웍으로, 자주 사용되는 이펙트 물리(직물, 파괴, 파티클, 난류, 식물) 모듈로 구성되어 있어 APEX에 대응한 Maya/3ds MAX/XSI 등의 DCC툴에서 아티스트가 디자인한 이펙트 물리를 그대로 각 게임 엔진(이 경우는 UE3)에 가져오는 것이 가능하다.

 SAMARITAN데모에서는 주인공이 입고 있는 트랜치코트가 이 APEX Clothing(직물)을 사용하여 제어되고 있고, 이 코트의 각 부위가 어느 정도 부드러운지는 프로그래머가 아닌 APEX 대응의 DCC 툴에서 아티스트의 손에 의해 설정되어 있다.
[Deferred Rendering]
트랜치코트의 펄럭거림은 APEX Clothing에 의해 리얼타임 물리 시뮬레이션 결과로 움직이고 있다. 이 물리 파라미터의 설정과 그 효과의 확인은 DCC툴이나 UE3 MATINEE 등에서 할 수 있다.


■ UE3 미래. iOS, NGP에 대한 준비는 완료.  3ds에 대한 준비는 아직.


 마지막으로 작년부터의 업데이트라는 의미로, 작년부터 현재에 걸쳐 UE3의 진화 경위에 대해서도 간단히 정리해보겠습니다.

 Epic Games 2010 9월에 애플의 iPad, iPhone, iPod Touch(iPhone3GS/4, iPad/2, iPod Touch 3G/4G) iOS 어플리게이션 준비를 마쳤다. 기술적인 대응은 작년 GDC 시점에 끝났다고 보여지지만, 애플이 미들웨어 등의 존재를 그다지 원하지 않는 입장을 취했기 때문에 정치적인 정지작업이나 교섭에 시간이 걸려 지금에야 완료되었다고 한다.
휴대기기 그래픽의 변천       

 이 발표와 동시에 ‘UE3 on iOS’로써 공개된 테크놀러지 데모가 ‘EPIC CITADEL’이다. EPIC CITADEL은 단순한 중세 판타지 세계관을 가진 성의 시가지를 돌아볼 수 있는 Walk-through 데모지만, 사전계산 기반의 GI효과는 물론 Parallax Mapping, Normal Mapping 등의 Programmable Shader 효과 등도 들어있어서 그 퀄리티에 대한 평가가 매우 높았다.
[EPIC CITADEL]




[UE3 iOS 프로모션 영상]

 2010 12월 이후에는 무료버전 UE3 개발 키트인 ‘UDK’ (Unreal Development Kit) iOS 버전이 제공되고 있다. UDK 그 자체는 Windows PC전용이고 어플리케이션(게임) 개발도 Windows PC에서 이루어지게 되지만 App Store로의 전송에는 Mac이 필요하다.

 ‘UDK with iOS Support’의 평가를 위해 공개된 것이 파이팅 액션 RPG ‘Infinity Blade’. 이것은 먼저 공개된 ‘EPIC CITADEL’의 개발사인 ChAIR Entertainment가 개발한 게임으로, 실제로 배경은 EPIC CITADEL을 거의 그대로 사용하였고, 게임 내용도 단순했다. 그러나 ‘UE3라면 EPIC CITADEL 퀄리티의 그래픽을 가진 게임 개발이 가능하다는 것을 증명하는 데는 충분한 완성도였다.

 Epic Games에서는 iOS 이외에도 Google Android OS에 대한 준비도 진행되고 있고, 스마트폰 분야로의 진출도 강화해갈 예정이라고 한다.
 ‘우리는 Programmable Shader로 가동되는 플랫폼은 기본적으로 지원이 가능하다고 생각한다. 스마트폰 그리고 타블렛 등은-지금이야말로 그러한 하드웨어를 탑재하고 있고-지원은 당연한 흐름이다’ (Jay Wilbur)
[Infinity Blade]

[‘Infinity Blade’ 프로모션 영상]


 다음으로 최근 점점 뜨거워지고 있는 차세대 휴대용 게임기에 대해서는 어떨까?
소니의 차세대 PSP(NGP)’에 대한 대응 표명은 이미 알 것이다. 3DS는 매우 유니크한 하드웨어이고, 나도 한대 가지고 싶지만(웃음) Programmable Shader가 지원되지 않는 플렛폼에 대한 대응은 현시점에는 그다지 적극적으로 행할 것이라고는 생각하지 않는다. UE3 3DS 지원 가능성은 현시점으로는 낮다’ (Jay Wilbur)
NGP를 위한 미들웨어. UE3(UDK) NGP를 지원한다.

또 현시점에는 자세히 말할 수 없다고 하면서도, Wilbur씨는 현재 일본 시장 등을 중심으로 UE3를 게임 이외의 목적으로 활용할 솔루션을 기획중인 것을 암시했다. UE3는 기술적으로는 물론이고, 마케팅 측면에 있어서도 꽤 활발하다는 것이 전해져 왔다.
[‘Gears of War 3’ 최신 프로모션 영상]
 Epic Games가 자체적으로 UE3 기반으로 개발하고 있는 타이틀이라 하면 ‘Gears of War’시리즈가 있다단 ‘Gear of War3’ Xbox360 전용으로 개발되고 있어 SAMARITAN데모에서 보여준 새로운 이펙트는 없지만과연 Epic Games 라고 감탄하게 만드는 높은 퀄리티다.

[Asura’s Wrath]
캡콤과 사이버 컨넥트 사가 공동개발 하고 있는 ‘Asura’s Wrath’ UE3 기반인 것이 판명됐다. 일본 스튜디오에서도 서서히 UE3의 사용이 진행되고 있다. 이 배경에는 가격인하의 영향이 어느 정도는 있다는 얘기가 있다.

(2011 3 31)




















댓글 없음:

댓글 쓰기