물리 엔진

1 설명

Lagoa Multiphysics 1.0 - Teaser from Thiago Costa on Vimeo.


이런 걸 표현할 수 있게 해주는 것.[1]
물론 위 영상의 효과를 게임용으로 사용하진 못하지만 프리렌더링으로 가능하단 소리는 렌더링의 성능만 실시간 렌더링 수준으로 빨라지는 날이 온다면[2]얼마든지 게임에서 구현이 가능한 기술이다.

물리 엔진이란, 게임 등에서 물체의 움직임을 관할하는 프로그램이다. 절대로 자동차 엔진처럼 생긴 게 컴퓨터에서 뭔 짓 거리 하는게 아니다. 종종 엔진이라는 용어 하나로 엉뚱한 데로 가는 사람이 있다.

가장 대표적인 엔진 두 가지를 뽑자면, 하프 라이프 2, 컴퍼니 오브 히어로즈, 스타크래프트 2, 히어로즈 오브 더 스톰등에 채용된 마이크로소프트하복 엔진, 그리고 언리얼 엔진 3을 사용한 게임들로부터 자주 볼 수 있는 NVIDIA피직스 엔진이 있다. 이것 외에도 GTA 4가 사용한 유포리아 엔진처럼 특정 부분에 전문화된 엔진도 있으나, 대부분의 게임은 앞서 기술한 두 개의 범용 물리 엔진을 사용하고 있다.

게임에서만 쓰이는 건 아니고 영화 등의 3D 영상 분야에선 옛날부터 쓰였고, 겨울왕국에서 사용된 물리엔진 또한 자동차 설계에서의 가상 충돌실험도 물리 엔진을 사용한다고 볼 수 있다. 컴퓨터로 뉴턴 역학을 시뮬레이션하는 거야 아예 최초의 컴퓨터인 에니악이 탄도를 계산하기 위한 목적에서 만들어졌으니 그 역사는 매우 깊다고 할 수 있다. 게임에 있어서 (현대적인 의미의) 물리 엔진이 게이머들에게 널리 알려지게 된 계기는 하프 라이프 2의 테크 데모였다. 물론 원시적인 충돌· 탄도 계산 등은 그 이전 게임들에도 존재해왔고, 래그돌 등을 포함한 현대적인 물리 효과도 1998년 작인 트레스페서를 시작으로 여러 게임에서 먼저 선보이긴 했다. 하프 라이프 2가 물리 엔진에 끼친 가장 큰 업적은 게임 내 대부분의 오브젝트에 물리 엔진을 도입한[3] 것이 크다.

초기에는 이 물리 엔진만 가속시키는 프로세서(PPU)가 따로 있었지만[4], 그래픽카드와 유사성과 비싼 가격 때문에 사장되고 그래픽카드로 그 기능이 흡수되었다. 존 카맥은 이 물리 가속 카드에 대해서 매우 부정적인 전망을 내비친 적이 있다.

오픈소스계에도 물리엔진이 좀 있다. 대표적인 것으로는 영화 2012에서 쓰였던 이력과 Blender라는 3D 프로그램에 내장되는 등으로 사용되어 유명해진 불릿 엔진.

인터넷 상에서 보면 현실에서 물리법칙을 무시한듯한 움직임을 보이는 운동굇수들을 가리켜 물리엔진이 에러났다는 식으로 표현하기도 한다.

최근에는 MIT에서 진동수 분석을 통해 물리적 반응을 예측 및 시뮬레이션하는 기술을 개발했다. # 이 기술을 사용하면 현실의 물체와 가상의 물체가 맞부딪혔을 때 서로 어떻게 반응할지를 쉽게 알 수 있어 물리 효과를 시뮬레이션하는 비용을 혁신적으로 절감시킬 것이라 기대되고 있다.

2 물리 엔진 목록(가나다순)

  1. 정확히 말하면 위에것은 실시간 렌더링이 아니다. 저 정도의 영상을 뽑아내기 위해서는 짧아도 몇 시간, 길게는 며칠(...) 동안 렌더링을 돌려야 한다. 물론 해상도가 높거나 연산해야 할 객체가 많다면 시간은 기하급수적으로 늘어난다. 다시 말해 게임같은거엔 못쓴다는것. 다만 요즘에는 CPU에만 의지하는게 아니라 GPGPU, 즉 CUDA, OpenCL 을 사용하여 저 정도 성능을 내는것이 가능하며, 실제로 OpenCL 데모란에 다수의 지오메트리를 GPU를 이용해 계산하는 데모가 있지만, 아직 상용화 되어있는 엔진은 없다.
  2. 무어의 법칙에 의해 그 시간은 18개월마다 2배씩 빨라진다.그거 2016년 2월에 폐기됐잖아...안될꺼야
  3. 하프라이프2가 최초 공개된 2002년 당시까지만 해도 오브젝트는 이동하는 엔티티를 부여받은것이 아닌 이상 물리적으로 고정되어있는게 당연시 되어있었다. 헌데 하프라이프2는 이런 고정관념을 깨고 물리적인 오브젝트가 중력을 갖고 낙하하면서 밑에 있던 적을 깔아죽이는, 당시로서는 혁신적이면서 충공깽인 모습을 보여서 게이머들에게 충격을 줬다. 미중년으로 바뀐 G-man과 더불어 사람들이 가장 기억에 남는 장면.
  4. 거의 흑역사로 묻혔다. 왜냐하면 해당 카드를 사용하면 확실히 빨라지기는 하나 cpu로도 충분히 연산 시킬 수 있었으며 ageia를 NVIDIA가 먹고 자사의 그래픽 카드로 ppu의 역할을 가능하도록 드라이버를 내놨는데 동시대의 저가형 그래픽 카드보다도 연산이 훨씬 느렸다.