실시간 물리 시뮬레이션 : 게임과 영화의 물리 엔진의 근본적 차이점
3차원 게임과 물리엔진
1992년 출시된 3차원 슈팅게임 ‘울펜스타인 3D’는 요즘 눈높이로 보면 조악하기 그지없지만, 당시 게임 사용자들에게는 ‘놀라운 신세계’로 받아 들여졌다. 그 뒤를 이어 선보인 ‘둠,‘퀘이크’ 등의 대성공으로 게임 타이틀의 주류는 빠른 속도로 3차원으로 재편되었다.
3차원 게임이 2차원 게임과 구분되는 것은 사용자들에게 사실감과 몰입감을 제공한다는 점에 있다. 이러한 사실감 제공에 필수적인 것은 3차원 그래픽스 기술로, 이는 실세계와 같은 3차원 공간을 화면에 그려주고, 사용자가 원하는 시점에서 게임 플레이를 가능하게 한다.
렌더링(rendering) 엔진은 이러한 3차원 그래픽스 기능을 모아 놓은 프로그램 및 저작도구이다. 대표적인 렌더링 엔진으로는 ‘에픽게임즈’의 ‘언리얼 엔진’ 시리즈가 있는데, 최신 버전 ‘언리얼 엔진 3’는 최신의 컴퓨터 그래픽스 기술을 총동원하여 매우 사실적인 영상을 생성한다.
고급 렌더링 엔진에 의해 사실적인 영상을 즐기게 된 게임 사용자들은 곧 캐릭터를 비롯한 게임 내 객체의 움직임 역시 사실적으로 표현되기를 원하게 되었다. 이에 대한 응답으로 개발된 것이 물리엔진(physics engine)이다. 물리엔진은 가상공간의 물체 및 환경이 실세계의 물리 법칙에 따라 움직이고 변화하도록 처리해주는 프로그램을 말한다. 물리엔진의 필수 요소 중 하나는 뉴튼의 운동법칙으로 대표되는 고전 역학을 구현하는 것이다. 이를 위해서는 복잡한 미분방정식을 풀어야 하고 다양한 수치해석 기법을 사용한다.
영화 물리엔진과의 차이점
엔터테인먼트 영역에서는 영화 특수효과 및 컴퓨터 애니메이션 분야를 중심으로 오래 전부터 물리엔진에 대한 요구가 발생하였다. 자동차 충돌 처리, 해일 생성, 복잡한 캐릭터의 동작 생성 등 일일이 나열할 수 없는 많은 장면에서 물리엔진이 요구된다. 그림 1, 2, 3 참조
최근 제작된 컴퓨터 애니메이션 및 특수효과 영화는 모두 어떤 형태로든 물리엔진을 사용했다고 보면 된다. 하지만, 할리우드에 소재한 대부분의 메이저 스튜디오들은 자체적으로 개발한 물리엔진을 개발해서 사용하므로 일반인들에게는 그 존재가 잘 알려져 있지 않다.
일반 사용자들이 물리엔진이라는 단어에 접하게 된 것은 게임에 물리엔진이 사용되면서부터다. 게임에서 물리엔진 수요가 증가된 이유는 그림 4의 그래프로 설명할 수 있다. 주지하는 바와 같이, 지난 10여 년간 PC와 콘솔 하드웨어 성능은 그야말로 눈부신 발전을 이루어 왔다. 따라서 다각형 및 텍스처 개수를 대폭 늘여도 이를 처리하는 것이 가능해 졌고, 이는 곧바로 모델링 및 렌더링 수준 향상으로 이어졌다. 이는 ‘쉽고 직접적인 움직임(easy and direct move(쉽고 직접적인 작업)’로 표현할 수 있다.
이렇게 모델링 및 렌더링 수준이 향상되면 게임 사용자들은 자연스럽게 동등한 수준의 애니메이션을 기대하게 된다. 이는 상대적으로 어려운 작업으로 ‘하드무브(hard move)’라 부른다. 하지만, 사용자의 강력한 요구가 있기에, 쉽고 직접적인 움직임 보다는 늦지만 하드무브는 필연적으로 이루어진다. 이를 가능케 하는 핵심 요소가 바로 물리엔진이다. 그림 5, 6은 물리엔진이 사용된 최신 게임의 사실적 영상을 보여준다.
그런데, 게임 물리엔진은 영화 특수효과와 컴퓨터 애니메이션에서 사용되는 물리엔진과는 근본적으로 다른 제약이 있다. 1초에 24 프레임을 보여주는 특수효과 영화에서는 고품질 영상을 얻기 위해서 한 프레임을 만드는데 몇 시간이 걸리더라도 이를 감수할 수 있다. 하지만 게임에서는 1초에 30 프레임 이상을 생성해야하는 ‘실시간성’과 사용자의 입력에 즉각적으로 반응해야 한다는 ‘인터랙션’ 제약 요건이 존재한다.
이러한 실시간 인터랙션을 보장하기 위해 여러 간략화 기술이 사용된다. 렌더링을 위해서는 캐릭터의 정교한 모델을 사용하지만, 물리엔진에서는 캐릭터를 감싸는 원통을 이용하는 것이 하나의 예다. 이 결과, 캐릭터를 비켜 지나가는 물체가 실제로는 캐릭터를 넘어뜨리기도 한다. 실시간성을 보장하기 위하여 정확성을 희생시키는 것이다. 다행히 대부분의 게임 사용자는 이러한 부정확성에 둔감하거나 너그럽다.
한편 엔터테인먼트 분야에서는 ‘보기에 그럴듯한’ 효과를 생성하는 것이 물리적 법칙을 엄격하게 적용하는 것보다 중요하다. 예를 들어, 슈팅 게임의 경우 실제 총탄의 빠른 속도를 그대로 반영하면 게임 사용자는 탄도 궤적을 전혀 볼 수 없게 된다. 따라서 의도적으로 총탄 속도를 낮추는 작업을 수행한다. 또한 영화 특수효과와 컴퓨터 애니메이션 같은 비실시간 분야에서는 감독이 의도한 영상 제작을 위해 물리 시뮬레이션에 이어 상당한 분량의 수작업을 수행한다.
상용 물리엔진과 사용 사례
대표적인 상용 물리엔진으로는 ‘해벅(Havok)’ ‘피직스(PhysX)’가 있다. 이들은 PC, X박스360, PS3, 위 등 다양한 게임 플랫폼을 지원한다. 해벅은 ‘하프라이프 2, ‘헤일로 3’‘모터스톰’‘레퀴엠’‘헬게이트: 런던’‘스타크래프트 2’ 등 최근 출시되었거나 출시 예정인 유명 게임에 사용되었고, 렌더링 엔진인 ‘쥬피터(Jupiter EX)’ 등에 통합 판매되기도 한다.
한편 렌더링 및 물리 엔진의 주요 응용 분야 중 하나는 가상현실이다. 다양한 입출력 장치를 이용해 컴퓨터가 생성한 가상공간과 상호작용하는 가상현실 분야는, 실시간 렌더링 및 물리적 시뮬레이션을 요구하다는 점에서 3차원 게임 분야의 엔진을 그대로 사용할 수 있다. 인터넷 가상세계를 구현한 ‘세컨드라이프’가 최근 커다란 호응을 얻고 있는데, 여기에 해벅이 사용되는 것으로 알려졌다. 그림 7 참조
피직스는 노보덱스(NovodeX)라는 유명 엔진의 후속 버전으로 기어즈 오브 워,레인보우 식스 베가스,언리얼 토너먼트 3 등의 유명 게임에 사용되었고, 렌더링 엔진인 언리얼 엔진 3 등에 통합 판매되기도 한다. 피직스 제작사인 ‘에이지아(Ageia)’는 물리연산 전용칩인 PPU(physics processing unit)를 개발 출시하였는데, 피직스는 PPU로 가속될 수 있다. 한편, 마이크로소프트사는 로보틱스 스튜디오라는 로봇 애플리케이션 개발 툴을 발표하였는데, 물리엔진으로 피직스를 채택했다. 그림 8 참조
물리 시뮬레이션은 복잡한 연산을 필요로 하는 부담스러운 작업이다. 따라서 하드웨어 지원을 받는 다양한 시도들이 이뤄졌다. PPU를 이용한 피직스 가속은 가장 적극적인 시도로 볼 수 있으나, 사용자에게 PPU라는 별도의 칩을 구매해야 한다는 부담을 준다. 따라서, 최소한 PC 플랫폼에서는 그 전망이 밝다고 볼 수 없다. 한편, 최근 해벅의 그래픽처리칩(GPU: graphics processing unit) 가속 솔루션도 발표되었다. 하지만, GPU 본연의 임무는 렌더링임을 생각하자. 극사실적 렌더링 요구만으로도 GPU에 과부하가 걸리므로, 물리엔진 가속을 위해 GPU를 사용하고자 하는 시도는 크게 환영받지 못할 것이다.
예전에 물리 시뮬레이션 연산이 어려웠던 것은 CPU 성능의 한계 때문이었다. 그러나 강력한 GPU의 등장으로 인해 CPU는 렌더링 부담으로부터 상당히 자유로워졌고, 동시에 CPU 자체는 빠른 속도로 멀티코어(multi-core)화하고 있다. 이제 CPU를 사용해 고난도 물리 연산을 수행할 환경이 조성되고 있는 것이다. 실제로 ‘인텔’은 코어2듀어(Core 2 Duo)와 코어2쿼드(Core 2 Quad) 칩에서 물리연산을 분산 수행한 결과, 각각 1.7배와 2.6〜3배의 성능 향상을 보였다는 사례를 보고하기도 했다. 물리엔진의 발전은 멀티코어 CPU 발전과 그 궤를 같이할 것으로 전망된다. 한편, 해벅 개발사인 ‘해벅’은 지난 9월 ‘인텔’에 인수되었는데, 멀티코어 CPU 개발에 사활을 걸고 있는 ‘인텔’의 ‘하복’ 인수는 이러한 전망에 설득력을 더해 준다.
향후 전망과 우리산업계의 대응
초기 물리엔진은 슈팅게임에서의 총탄 탄도 계산 등 간단한 기능만을 제공하였으나, 이후 비행 및 자동차 시뮬레이션 등으로 응용 분야를 넓혀갔고, 다양한 강체 및 관절체 시뮬레이션을 넘어, 초보적인 수준이나마 이제는 옷과 같은 변형체 시뮬레이션도 수행할 수 있다. 머지않아 유체역학 등 고난도 시뮬레이션 역시 실시간에 처리할 수 있을 것이다. 또한 세컨드라이프와 마이크로소프트 로보틱스 스튜디오의 사례에서 확인할 수 있듯, 실시간 물리엔진의 응용 분야는 게임으로 국한되지 않는다.
이렇게 커다란 성장 가능성을 가진 실시간 물리엔진 시장에서의 해벅과 피직스 독주체제를 어떻게 막을 수 있을까? 역설적이지만, 해벅과 피직스의 역사를 살펴보면 이러한 질문에 대한 해답의 실마리를 찾을 수 있다. 해벅은 아일랜드에서 가장 오래된 대학인 트리니티 칼리지 전산학과 교수진이 1988년에 설립한 회사의 작품이고, 피직스 개발사 ‘에이지아’는 스위스 명문대인 스위스 연방 공대의 스핀오프 기업으로 2001년 설립되었다. 고도의 물리학과 수학을 필요로 하는 물리엔진의 근본 성격을 파악한다면, 해벅과 피직스의 뿌리가 대학의 선도적 연구실에 있음은 자연스럽게 이해할 수 있다.
MMORPG 일변도에서 슈팅게임 등으로 게임 장르가 다변화되면서 국내 게임개발사도 최근 물리엔진을 채택하기 시작했다. 이들은 물론 100% 외산엔진이다. 하지만, 다행스럽게도 국내 대학의 선도적 연구실들은 비실시간 및 실시간 물리 시뮬레이션 분야에서 세계적 수준의 원천기술을 보유하고 있다. 이들이 보유한 기술력이 국내 게임개발사의 콘텐츠 제작역량과 결합된다면, ‘하복’과 ‘피직스’ 성능의 물리엔진을 개발하지 못할 이유가 없다. 게임 물리 분야에서의 산학 공동 연구개발 성공 모델을 기대해 본다.
한정현 jhan@korea.ac.kr
한정현 교수 약력
-1988년 서울대 컴퓨터공학과 졸업
-1991년 미국 신시내티 대학교 컴퓨터 사이언스 석사
-1996년 USC 컴퓨터 사이언스 박사
-1997년 미국 상무성 NIST 연구원
-2004 성균관대학교 정보통신공학부 부교수
-2004-현재 고려대학교 컴퓨터 통신공학부 부교수
-2007년-현재 차세대성장동력사업 디지털콘텐츠/SW솔루션 사업단장 및 정보통신부 디지털콘텐츠 전문위원
'Multimedia' 카테고리의 다른 글
infographics space history - Socialphy (0) | 2012.12.12 |
---|---|
A-team in Portland with 3D trees (0) | 2012.12.05 |
커스터마이징의 의미가 무엇인가요? (0) | 2012.12.03 |
사실적인 그래픽과 케릭터 모데링 강의 (0) | 2012.12.03 |
[Second Life] - 세컨드 라이프의 교육적 활용 (0) | 2012.12.03 |
각종 3D 좌표 체계 정리 (0) | 2012.11.21 |
[한국전자통신연구원] - R&D News : 2002년도 12월호 연구원 소식지 (0) | 2012.11.07 |
CATIA Icem for Class A Surfacing (0) | 2012.10.31 |
CGI VFX Breakdown HD: "Prometheus" (0) | 2012.10.21 |
APPLICATIONS - KWACP (0) | 2012.09.28 |