메뉴 www.fafan.kr
파판 >> 특집기사
  • 로그인
  • [특집]언리얼3 엔진 정보
    작성자 : 기렌자비 | 조회수 : 6403 (2004-09-17 오후 2:39:08)
    - 첨부파일
      1095399548.gif


     

    3 D게임 팬을 위한 Unreal3 엔진 강좌
    3 DCG 영화 퀄리티의 영상이 정말로 리얼타임에 움직이는 충격
    !

    3월 22일~3월 26일(현지시간) 개최

    ■ “진”세대 DirectX 9 게임 엔진이 처음공개!

    EPIC GAMES의 스위트 전시 룸.사진을 촬영할 수 있는 것은 여기로부터 만들어진다
     「Unreal」시리즈의 개발원으로서 알려진 EPIC GAMES는, GDC2004에서, 차세대 Unreal 엔진을 공개했다.완전하게 폐쇄된 스위트 부스내에 8기 정도의 디스플레이 모니터를 설치해, 한 번에 20명 정도의 인간에게, 그 엔진으로부터의 리얼타임 영상을 보이고 있었다.

     수많은 게임 엔진 메이커중에서도, 가장 성공하고 있는 EPIC GAMES의 제품만 있어, 단순한 「보고 즐거운 메가 데모」로서가 아니고, 「게임 엔진으로서 기술적으로 어디가 우수한 것인가」라고 하는 것을 알기 쉽게 해설해 주었던 것이 인상적이었다.

    ■ 3 DCG 영화 퀄리티의 영상을 리얼타임에 움직이는 Unreal3 엔진

     Unreal3 엔진은, 「오프 라인·렌더링 된 3 DCG 영화의 영상을 리얼타임에 움직이는 것」을 표현 컨셉으로서 설정해 있다고 한다.이만큼을 들물면 꽤 수상하게 들리지만, 규명해 들어 가면, 훌륭한 증명이 있다.

     우선 그들의 엔진에서는, 상당한 비율의 texture나 frame buffer등에 고정밀도 버퍼를 활용하고 있다.여기가 종래의 3 D게임 엔진과 결정적으로 다른 곳(중)이다.현재 일반적인 리얼타임 3 D그래픽스에 활용되고 있는, 이른바 32 bit 칼라(αRGB 각 8 bit 정수의 1,677만색칼라)가 아니고,αRGB 각 16 bit 정수의 64 bit 칼라나,αRGB 각 16 bit 부동 소수점 실수(FP16)의 64 bit 칼라라고 한, 다bit 고정밀도 버퍼를 활용하고 있다.

     피크서스타지오의 대히트 3 DCG 영화 「파인딘그·니모」등으로 대표되는 비리얼타임 3 D그래픽스의 렌더링에서는, 여러가지 음영 처리를 FP16나 FP32 차원에서 행해, 이용하는 texture나 최종적인 렌더링 결과를 격납하는 버퍼도 전술한 것 같은 고정밀도 타입을 활용하고 있다.상호 반사나 광확산이라고 한 복잡한 반사 모델이나 음영 처리를 다단계로 행하기 위해서는, 그러한 고정밀도 연산과 고정밀도 버퍼가 필요 불가결하기 때문이다.

     Unreal3 엔진에서는 아직 한정적인 곳도 있지만, 상당한 비율의 음영 처리나 버퍼를 고정밀도 차원에서 행할 방침을 취하고 있다고 한다.그처럼 한 이유는, 역시, 이것도 3 DCG 영화와 같을, 복잡한 음영 처리를 다단계에 행해도 영상이 파탄하지 않기 때문에, 다.Unreal3 엔진은, 이른바 진짜 의미로의 하이·다이나믹 레인지(High Dynamic Range:HDR) 렌더링을 실현하려 하고 있다……라고 해도 괜찮을지도 모른다.

     그러면 어떤 처리에 고정밀도 칼라와 고정밀도 버퍼를 활용하고 있는지, 이것에 대해 의식하면서, Unreal3 엔진의 볼만한 곳을 쫓아 가고 싶다.



    ■ 1 캐릭터 100만 폴리곤이 리얼타임 동작하기 때문에 밤

     3 DCG 영화와 3 D게임에서 우선 뭐가 다른가 하면, 캐릭터의 리얼리티일 것이다.

     움직임은 게임에서도 꽤 좋은 것이 되고 있지만, 결정적으로 다른 것이 그 조형의 리얼리티다.3 DCG 영화에서는, 그야말로 심상하지 않을 만큼의 세세한 디테일까지가 모델링 되고 있지만, 3 D게임에서는 많아도 수천 폴리곤 정도.자동차등이라면 어쨌든, 생물이나 식물의 모델에 대해서는 3 DCG 영화와 3 D게임과는, 그 캐릭터 표현의 섬세함에는 격차가 느껴진다.

     이러한 상황에 즈음해, Unreal3 엔진에서는, 무려 3 DCG 영화 같은 수준의 세세한 디테일을 가진 캐릭터를 리얼타임에 등장시킬 수 있는 것이다(물론 페이크로.그 계략은 단순.자세한 것은 후술).

     그런데, EPIC GAMES의 부스가 되고 있는 스위트 룸의 벽에는, 오프 라인 렌더링이나 컨셉 아트일까하고 생각되는 수풀 수풀 주위 몬스터의 영상이 내다 붙여지고 있었다(이것도 촬영 금지였다).그런데 , 별실로 옮기고 나서 보여진 Unreal3 엔진의 프레젠테이션에서는, 이 포스터의 영상과 완전히 같은 퀄리티의 캐릭터들이 리얼타임에 움직이기 시작해 깜짝 놀란 것이다.벽의 포스터는 화면 쇼트였던 것이다.

     이러한 캐릭터는 수십만으로부터 약백만 폴리곤으로 모델링 된 것이라고 하고, 이것은 거의 3 DCG 영화의 모델링 정도와 동등한 것이다.최신의 PC용 3 D게임으로의 복잡한 씬에 있어서의 총폴리곤수가 수십만 폴리곤이라고 하는 레벨이므로, 1 캐릭터 근처의 폴리곤 예산으로 해서 너무 그러면 주다.3 D게임 엔진상에서 리얼타임에 움직일 수 있을 리가 없다.그러나 프레젠테이션에서는, 실제로 움직이고 있다.

     그러나, 이것에는“씨”가 있다.

     수십만 폴리곤으로부터 100만 폴리곤의 다 폴리곤·캐릭터의 디테일을 첫머리에서 접한 고정밀도 texture에 법선 맵으로서 떨어뜨리고 있다.그래.너무 하게도 보인 디테일은, 범프 맵핑으로 표현되고 있었던 것이다.다만, 종래의 x, y, z 각 8 bit 정수 정도의 법선 맵이 아니고, 다bit 정도의 법선 맵이므로, 그 디테일감은 거의 완벽.3 DCG 영화 레벨의 캐릭터로 보여 버리고 있다.

     덧붙여서, 디테일을 다bit 법선 맵에 떨어뜨린 뒤, 모델을 구성하는 폴리곤은 10분의 1정도로 삭감되고 있다고 한다.그들의 설명에 의하면, 엔진 표시시의 모델은 8,000 폴리곤 전후라는 것.이 숫자는 최근의 3 D게임의 캐릭터 표현에 이용되는 폴리곤수의 평균보다 조금 위만한 값이며, 이것이라면 현실성은 있다.

     본래의 HDR 렌더링과는 약간 의미는 다르지만, 캐릭터 모델의 디테일을 HDR 법선 맵으로 재현한다……라고 하는 Unreal3 엔진의 방책은, 조금 바뀐 의미로의 HDR 렌더링이라고 할 수 있는 없지는 않다.

    이러한 입체 모델을 고정밀도 레이저 스캐닝 하고, 3 D모델을 구축하고, 폴리곤 3 D모델로 변환해, 최종적으로 디테일을 법선 맵에 떨어뜨려 폴리곤수는 삭감……이라고 하는 공정은 3 DCG 영화 제작에서도 행해지고 있다.덧붙여 여기서 나타내 보인 영상은 Unreal3 엔진과는 무관계.지금, 설명한 것 같은 프로세스에 의한 3 D모델 구축의 오쏘링을 제공하는 XYZ-RGB사의 자료에서




    ■ 프로그라마브르피크세르시다 3.0에 의한 소재 시다 기능

     캐릭터의 질감도 훌륭하고, 그 피부, 몸에 걸치고 있는 의복, 금속으로 완성된 각종 악세사리나 요로이등의 질감도, 그 소재 특유의 리얼한 음영을 보인다.자세한 것은 후술 하지만, 이것은 Unreal3 엔진 전용에 신개발 된 매테리얼(재질) 시다에디타에 의해서 만들어 내진, 시다를 파트 단위에 적용하고 있기 (위해)때문이다.

     현행 3 D게임 그래픽스에 대해 범프 맵에 의한 표현이라고 하면, 수면의 잔물결 표현이 3 D게임 팬이라면 익숙한 것일 것이다.저것은 수면상의 영상 포함과 수면 아래의 굴절한 물밑의 영상을 배려한 형태로 범프 맵핑을 적용하는, 이른바 환경 범프 맵핑의 발전계다.

     Unreal3 엔진의 캐릭터를 구성하는 각 소재의 질감 재현은, 기본적으로는 이 기술과 같은 아이디어에 의한다.캐릭터의 디테일은 다bit 정도의 법선 맵에 의한 범프 맵핑으로 재현되어 그 부분 부분의 소재를 재현하는 표현은, 커스텀 생성된 시다파스를 통과하는 것으로 재현되고 있는 것이다.

     간략화해 나타내 보인다고 하는 곳 인 흐름이 된다.

    (1) 다bit 정도 법선 맵에 의한 캐릭터 디테일 생성
    (2) 소재 재현을 위한 카스탐시다

     (2)의 부분은 아티스트가 만들 수 있는 부분이다.예를 들면, 경면 반사(스페큐라) 시다를20%, 확산 반사(디 퓨즈) 시다를50%, 의사적인 면하광산란 시다를 10%걸치는 시다를 「스킨시다」로서 커스텀 정의해, (2)의 부분에 가져와진다.

     꽤 긴 피크세르시다가 되지만, Unreal3 엔진은 프로그라마브르시다 3.0 사양 GPU까지를 타겟으로 개발되고 있기도 해, 이 근처는 특별히 문제삼지 않았다.프로그라마브르피크세르시다 3.0 사양에서는 명령수의 제한이 512이상이 되어, 거의 없어져 있기 (위해)때문이다(속도적인 문제는 접어두어).

     덧붙여 이번 공개된 Unreal3 엔진은, 차기 GeForce(개발 코드네임 NV40) 탑재 머신으로 동작하고 있어, 상기와 같이 복잡하고 긴 피크세르시다도 1 패스로 동작 되어 있다라는 것이었다.



    ■ 시다의 지식이 없는 아티스트가 시다를 설계할 수 있는 구조를 제공

     「프로그라마브르시다 시대의 3 D게임 개발에 대해 특히 문제시되고 있는 것은, 3 D게임 엔진상에서의 효과적인 표현의 디자인이, 프로그래머의 역량에 맡겨져 버리고 있는 것이다」라고 말하는 것은, EPIC GAMES로 레베르데자이나를 맡아 이번 Unreal3 엔진의 프리젠테이션을 담당하는 Alan Willard씨.

     이 점을 타개하기 위해서, EPIC GAMES가 Unreal3 엔진과 밀접한 형태로 병행 개발하고 있는 것이, 전단에서도 조금 접한 매테리얼(재질) 시다에디타다.이것은, 전단에서 필자가 마음대로 상정해 예시한 카스탐스킨시다와 같은 것을, GUI 베이스로 만들어 낼 수 있는 것……과 이미지 해 주기를 바라다.

     에디터 측에 내장되고 있는 다수의 기본적인 마테리아르시다로부터 적당한 것을 선택해 메인 윈도우에 드롭 해, 이러한 시다를 선으로 묶으면서 조합해 간다.각 시다의 출력은 경면 반사, 확산 반사 등, 각종 반사 모델로부터 선택이 가능하고, 마치 프로 차트를 그리도록(듯이) 해 시다의 설계를 할 수 있다.조작을 행할 때마다, 그 순간에, 시다의 실행 결과가 샘플 오브젝트에 적용되어 리얼타임에 프리뷰 할 수 있다.또, 각각의 시다가 어떤 조건으로 효과가 있도록(듯이) 하는지를 프롭퍼티 설정할 수 있다.

     예를 들어, 경면 반사와 환경 매핑을 직결해, 대리석 모양의 애니메이션 texture가 시점의 위치 관계에 의해서 붙이는 상태가 바뀌는, 이방성 라이팅이 행해지도록 프롭퍼티 설정해 주면, 이만큼으로 금속에 유막이 탄 것 같은 시다가 완성된다.

     이 툴은 꽤 강력하고, 부스에 있던 실제의 게임 개발사들의 사이부터 「이만큼 갖고 싶다」라고 하는 소리도 들렸을 정도에서 만났다.「아티스트에게 시다를 만들게 한 싶다」라고 하는 것은 많은 게임 스튜디오의 소망이며, 이 툴은 그에 대한 1개의 해라고 하는 인상이 있다.

     이 외, Unreal3 엔진 전용으로 신개발 된 뼈 에디터, 충돌 판정 에디터도 소개되었다.

     뼈 에디터는, 캐릭터의 뼈대를 디자인하는 것이지만, 그 관절의 가동 범위가 설정 가능할 뿐만 아니라, 중량등의 물리 파라미터나, 그 관절 강도등의 거동 파라미터를 설정할 수 있다.관절의 내구도를 넘는 형태로, 설정한 가동 범위를 넘고 관절이 구부러지면, 관절이 빠져 버린다, 라고 하는 액션 설정도 가능했다.

     설정한 뼈의 거동은, 곧 바로 프리뷰 화면에서, 게임내 물리 엔진이 효과가 있던 형태로 실험할 수 있으므로, 최종적인 게임중에서의 캐릭터 액션이 어떤 것이 되는지를 이미지 하면서 제작을 행할 수 있다.

     충돌 판정 에디터는, 3 D모델에 대해서의 당 판정을 설정하는 것으로, 호출한 3 D모델에 대해 입방체 범위, 구형 범위등의 3 D형상으로 충돌 판정 영역 설정이 가능.설정한 충돌 판정은 프리뷰 화면에서, 게임내 물리 엔진을 일하게 한 상태로 곧바로 실험을 할 수 있다.

     이러한 첫인상이나 비는 강력한 에디터군은, 기술 정보로 밝지 않은 게임데자이나나 아티스트에게는 대환영 될 것이다.



    ■ 3 D게임 엔진 첫채용의 HDR 전방위 그림자 매핑 기법이란?

    취재 협력 받은 EPIC GAMES사의 프로그래머 Andrew Scheidecker씨
     Unreal3 엔진의 영상이 오프 라인 렌더링 된 3 DCG에 육박 해 보이는 것은, 어느 현행 3 D게임 엔진도 능가한 그림자 생성 엔진의 효과에 의하는 곳(중)도 크다.

     Unreal3 엔진의 프로그래머의 혼자인 Andrew Scheidecker씨는, Unreal3 엔진의 그림자 생성 엔진에 대해서, 「Unreal3 엔진에서는 그림자 생성을 3개의 케이스로 나누어 처리하고 있다」라고 설명한다.

     우선, 움직이지 않는 고정 광원에 의해서 만들어 내지는, 움직이지 않는 정적 오브젝트의 그림자는, 이른바 프리렌다인 그림자인 라이트 맵을 활용하거나 정점 데이터에의 그림자의 구이 포함으로 표현한다고 한다.과연, 리즈너블한 해결 방법이다.

     움직이는 광원이 만들어 내는, 움직이고 변형도 하는 동적 오브젝트의 그림자는, 「DOOM III」가 채용하고 있는 것도 유명한 스텐실 그림자 볼륨 기법을 채용하고 있다고 한다.이것은 광원으로부터 3 D오브젝트의 정점을 지연시켜 생성한 그림자 영역(그림자 볼륨)을 씬의 심도 정보를 음미하면서 스텐실 버퍼에 렌더링 해, 최종적으로 그 스텐실 버퍼 정보를 바탕으로 새도우 폴리곤을 그려 가는 기법이다.

     이 경우의 그림자는 엣지의 뚜렷한, 이 기법 특유의 형상이 된다.이 기법은, texture의 오파시티(Opacity:불투명도)는 배려되지 않는 형태의 그림자가 되므로, 화면에 나와 있는 캐릭터와는 다른 그림자가 나오는 경우도 있지만 「실제의 3 D게임에서는, 모델 디자인이나 레벨 디자인으로 대응 할 수 밖에 없다.」(Scheidecker씨)이라는 것.예를 들어 사각 폴리곤에 네 개통의 클로버-형상의 texture를 붙인 오브젝트의 경우, 그림자는 네 개통 형상에는 안되어, 폴리곤의 형태 그대로의 네모진 그림자가 된다.

     그리고 3개째가 Unreal3 엔진 특유의 그림자 생성 기법을 채용하고 있는 케이스.고정 광원이 만들어 내는, 동적 오브젝트의 그림자의 실현 양식에는 전방위 그림자 매핑(Omnidirectional Shadow Mapping)을 사용하고 있는 것이라고 한다.

     그림자 매핑이라고 하면, Xbox, PC 전용의 인기 타이틀 「SplinterCell」시리즈가 채용하고 있는 것이 유명한 기법이다.이것은 광원을 시점으로서 씬을 심도 정보만으로 렌더링 하고, 씬의 가림 구조를 데이터화(그림자 맵의 작성).시점으로부터의 통상 렌다린은, 묘화 하는 픽셀이 가림되고 있는지 어떤지를, 이 그림자 맵을 참조하면서 행해 간다.

     전방위 그림자 매핑은, 이것을 발전시킨 것으로, 가림 구조를 나타내는 그림자 맵을 부동 소수점 실수 texture의 큐브에 행해 간다.

    큐브 맵의 예
     큐브 맵과는 6면체로 나타내지는 texture.

     큐브 맵에 그려진 영상을 폴리곤에 붙이는 큐브 환경 매핑이라고 하는 수법은, 최근에는 잘 보이는 「비쳐 표현 기법」이다.전방위 그림자 매핑에서는, 그 큐브 맵에 영상이 아니고, 전방위(6면방향)의 가림 구조를 렌더링 하고, 전방위의 가림 구조를 생성한다.

     전방위 그림자 매핑에 이용하는 큐브 맵에는, 부동 소수점 실수 texture 포맷의 「D3DFMT_R32F」나 「D3DFMT_R16F」등의 1색부동 소수점 실수 포맷을 채용한다.왜 1색포맷으로 좋은 것인가.전방위 그림자 맵에 렌더링 하는 정보는, 광원으로부터 가림물까지의 거리 정보 1개만이기 때문이다.부동 소수점 실수의 큐브 맵이라고 해 구와 곤으로 하지만, 실제의 큐브 맵 용량은, 1 데쿠세루 당 16 bit나 32 bit라고 하는, 보통 큐브 맵·texture와 다르지 않게 된다.다만, 정도의 높은 전방위의 가림 구조 분포를 렌더링 할 수 있으므로, Unreal3 엔진의 기법은 HDR 전방위 그림자 매핑이라고 할 수 있을지도 모른다.

     씬내에 복수의 광원이 있는 경우는, 그 모든 광원에 도착하고, 준비한 유일한 HDR 그림자 맵에 대해서 가림 구조를 렌더링 해 주면 된다.광원의 방향이 각각 뿔뿔이 흩어져도, 그림자 맵이 전방위이므로 아무 문제도 없는 것이다.

     최종적인 시점에서 본 렌더링은, 통상의 그림자 매핑과 다르지 않다.음영 처리 모델도, 푸딩이겠지만 폰일까 좋아하는 것을 사용하면 된다.

     Unreal3 엔진의 HDR 전방위 그림자 맵에서는, 근거리 투사용과 원거리 투사용의 2개의 큐브 그림자 맵을 이용하고 있다고 한다.최종 렌더링시에 쌍방의 큐브 그림자 맵에 대해서의 가림 구조를 음미하는 것으로, 투사 거리의 길이에 따르고, 그림자의 희미해지는 방법이 다른 「소프트 그림자」의 표현이 실현된다.

     이 3개의 그림자 기법의 외, 큐브 맵화한 6면라이트 맵을, 씬내에 반대로 전방위 투사 하는 표현도 소개되어 이것도 인상적이었다.이쪽은 이른바 전방위 라이트 맵 표현……이라는 것이 된다.덧붙여 이쪽도 근거리 투사용과 원거리 투사용의 2개의 큐브 라이트 맵을 준비해, 투사 거리에 따라 희미해지는 방법이 변화한다.

    전방위 그림자 매핑 기법의 실장예를 발표한 Philipp s. Gerasomov씨의 데모.Unreal3 엔진과 이 데모에 관련성은 없지만, Scheidecker씨의 설명을 듣기로는, 1개의 큐브 맵 구조의 그림자 버퍼를 사용해 그림자 생성을 행하는, 이 데모와 같은 기법을 활용하고 있다고 봐도 좋은 것 같다
    캐릭터 모델의 팔이 동체에 셀프 그림자로서 투사 되고 있는 것을 알 수 있다.덧붙여 Gerasomov씨는 3 D게임 타입의 벤치마크 소프트 「RightMark3D」의 개발에도 참가하고 있다.흥미가 있는 분은 그 쪽도 체크해 받고 싶다




    ■ Unreal3 엔진 완성은 2006년을 예정

     3개의 그림자 생성 기법+전방위 라이트 맵 표현이 동거한 씬은, 분명히, 3 DCG 영화에 가까운 비주얼이 되어 있었다.물론, 상호 반사 등은 서포트하고 있지 않았기 때문에, 잘 보면 3 DCG 영화에게는 아직 미치지 않지만, 그런데도 현행의 어느 3 D게임 엔진보다, 빛과 그림자의 존재감이 반응으로서 느껴지는 영상으로는 되고 있었다.

     덧붙여 이번 엔진 데모는, 다음 달 발표 예정의 차세대 GeForce의 NV40로 동작하고 있던 것이지만, 배경과 캐릭터가 1체 나오는 것만으로도 frame rate적으로는 20 fps 전후(목시에 의한 추측)를 헤매고 있었다.과연 NV40도, HDR 버퍼가 다용되면 헐떡임 할 것 같은 느껴이지만, 그 처리 내용을 (들)물은 다음, 여기까지 움직이고 있는 것을 생각하면, 반대로 NV40의 퍼포먼스의 높이를 (들)물어 알려진다고 하는 것이다.

     덧붙여서, 실제로 이 엔진을 사용한 3 D게임이 제품화되는 것은 빠르고 2006년이라고 한다.타겟 GPU는 그야말로 NV50 세대 이후라고 하는 것일 것이다.확실히 상당히 앞의 이야기이지만, 저명 엔진들과 같이 3 D게임 팬을 「곧 있으면 금방」이라고 부추기지 않는 것뿐, 반대로 호감을 가질 수 있다고 하는 것이다.

     이러한, 말해 보면 개발 초기 상태에 있는 엔진을 공에 보인 것은 어째서인가.

     이것은, 현행의 Unreal2 엔진의 라이센스 계약을 한층 늘리기 위해일 것이다.동형 엔진의 업그레이드라고 하는 것은, 지금까지의 관련 툴이나 소재등의 이행이 락이라고 하는 메리트가 있다.「Unreal2 엔진을 지금부터 사용하면, Unreal3 엔진을 사용한 대단한 게임을 조기에 낼 수 있어요」라고 하는 메세지가 이번 데모에는 담겨져 있었던 것이라고 생각한다.

     덧붙여서, 「일본에서도 이 Unreal3 엔진의 프리젠테이션을 행해 보면 어떨까」라고 하는 필자의 질문에 대해, EPIC GAMES의 부사장 Mark Rein씨는, 「 실은 일본에서의 데모는 이미 계획중이기도 하다.흥미가 있는 게임 스튜디오는 부디 컨택트를 취해 왔으면 좋다」라고 코멘트해 주었다.

     아직 화면 소재가 일절 없는 것이 외로운 곳이지만, 「머지않아 서서히 내 간다」(Rein씨)이라는 것.아마, 5월 개최될 예정의 E3의 타이밍으로는, 하등의 업데이트가 있을 것이다.

    □「Game Developers Conference 2004」의 홈 페이지
    http://www.gdconf.com/
    □EPIC GAMES의 홈 페이지
    http://www.epicgames.com/
    □XYZ-RGB의 홈 페이지
    http://www.xyzrgb.com/






    글쓰기 | 수정 | 삭제 | 목록   

    Lv.6 네오짱™ (2005-06-30 13:19:21)
    그다지 조은 호응은 아닌듯..



    도배방지 : 0

    글쓰기 | 수정 | 삭제 | 목록   

     

    <<1112131415

    Copyright ⓒ FINALFANTASIA.COM All rights reserved.