물리 기반 애니메이션

Physically based animation

물리 기반 애니메이션은 인터랙티브 속도로 물리적으로 그럴듯한 동작을 시뮬레이션하는 것과 관련된 컴퓨터 그래픽 내의 관심 영역입니다.물리적 기반 애니메이션의 발전은 종종 비디오 게임, 대화형 시뮬레이션 및 영화에 복잡하고 신체적으로 영감을 받은 동작을 포함해야 하는 필요성에 의해 동기 부여됩니다.오프라인 시뮬레이션 방법은 물리적 기반 애니메이션에서 연구된 대부분의 문제를 해결하기 위해 존재하지만, 이러한 방법은 물리적 정확도와 느리고 상세한 연산을 필요로 하는 애플리케이션을 위한 것입니다.오프라인 시뮬레이션에서 일반적인 방법과는 달리, 물리적 기반 애니메이션의 기법은 물리적 신뢰성, 수치 안정성 및 물리적 정확도에 대한 시각적 매력과 관련이 있습니다.물리 기반 애니메이션은 인터랙티브한 응용 프로그램에 의해 엄격한 시간 제약 때문에 종종 물리적 동작의 대략적인 근사치로 제한됩니다.게임이나 시뮬레이션과 같은 인터랙티브 애플리케이션의 목표 프레임 레이트는 25~60Hz인 경우가 많으며 물리적 시뮬레이션을 위해 개별 프레임에 할당되는 시간은 극히 일부에 불과합니다.물리적 동작의 단순화된 모델은 일반적으로 더 효율적이고 가속하기 쉽거나(사전 계산, 영리한 데이터 구조 또는 SIMD/GPGPU를 통해) 바람직한 수학적 특성(소프트 바디가 변형될 때 무조건적인 안정성 또는 볼륨 보존 등)을 충족하는 경우에 선호된다.시각화의 최우선 목표가 심미적 매력이나 플레이어 몰입의 유지인 경우 미세 디테일은 중요하지 않다. 이러한 디테일은 종종 인간이 알아차리기 어렵거나 인간의 [1]눈금으로 구별하기 어렵기 때문이다.

역사

물리적 기반 애니메이션은 이제 영화와 비디오 게임에서 보편화되었고, 많은 기술들이 초기 특수 효과 장면과 게임 엔진의 개발 중에 개척되었다.스타트렉 II: '의 분노'는 창세기 폭발 장면에서 행성을 [2]집어삼키는 불타는 충격파의 시각적 효과를 내기 위해 입자 체계를 사용한 것으로 유명하다.물리 엔진이 게임에서 일반적인 기능이 되기 에 출시되었음에도 불구하고 System Shock은 엔진에 강체 물리학을 포함시켰고 이러한 기능과 플레이어에게 제공하는 새로운 상호작용 감각에 대해 혁신적이라고 널리 간주되었습니다.밸브는 나중에 하프라이프를 개발했고 상자를 쌓지 않으면 도달할 수 없는 장애물과 같은 플레이어를 위한 환경 퍼즐을 만들기 위해 강체 물리학을 사용했습니다.Half-Life 2는 풀리나 레버와 같은 제약이 있는 시스템을 통합한 보다 진보된 물리 엔진을 특징으로 하여 이러한 기능을 선보였습니다.물리 엔진은 현재 게임에서 훨씬 더 보편화되어 있으며, 그 빈번한 출현은 Nvidia와 같은 회사의 물리 기반 애니메이션 연구에 동기를 부여하고 있습니다.

게임 및 시뮬레이션의 물리적 기반 애니메이션

물리적 기반 애니메이션은 사용자가 환경과의 상호작용을 기대하는 게임 및 시뮬레이션에서 흔히 볼 수 있습니다.Havok, PhysX, Bullet과 같은 물리 엔진은 별도의 개발 제품으로 존재하며 게임에 라이선스되어 포함되어 있습니다.앵그리 버드나 월드 오브 구와 같은 게임에서는 물리적 기반 애니메이션 자체가 주요 게임 기계 장치이며, 플레이어들은 목표를 달성하기 위해 물리적으로 시뮬레이션된 시스템과 상호 작용하거나 생성해야 합니다.물리 퍼즐 게임의 측면은 다른 장르에 속하지만 물리적 기반 시뮬레이션을 특징으로 하는 많은 게임에 존재합니다.물리적 기반 애니메이션을 통해 환경과의 물리적 상호작용을 허용하면 플레이어가 퍼즐을 비선형적으로 해결하도록 촉진되며, 때로는 레벨 디자이너가 의도적으로 포함하지 않은 게임 내 문제에 대한 해결로 이어질 수 있습니다.군사 시뮬레이션 등 엔터테인먼트 이외의 목적으로 사용되는 시뮬레이션도 실제 상황을 묘사하고 사용자의 몰입도를 유지하기 위해 물리적 기반 애니메이션을 사용합니다.물리 기반 애니메이션의 많은 기술은 GPGPU 구현을 염두에 두고 설계되거나 그래픽 하드웨어의 이점을 얻기 위해 확장될 수 있습니다.그래픽 하드웨어는 물리 기반 시뮬레이션을 충분히 빠르게 실행할 수 있습니다.그러나 GPU 시간은 렌더링용으로 예약되어 있는 경우가 많기 때문에 호스트와 디바이스 간의 빈번한 데이터 전송은 성능의 보틀 넥이 되기 쉽습니다.

영화의 물리적 기반 애니메이션

영화를 위한 특수 효과의 개발에서 시뮬레이션은 오프라인에서(시청할 때와 같이) 수행할 수 있습니다.따라서 속도는 특수 효과의 생산에 반드시 필요한 것은 아니지만 합리적으로 반응하는 피드백과 느린 방법에 필요한 하드웨어가 더 비싸기 때문에 여전히 바람직하다.그러나 더 느리고 정확한 방법은 비용이 많이 들고 제한적일 수 있기 때문에 물리적 기반 애니메이션이 여전히 선호됩니다.특수 효과의 작은 디테일의 물리적 정확성은 시각적인 매력에 의미가 없고, 아티스트와 감독이 행동에 대해 행사할 수 있는 통제력을 제한하며, 결과를 얻기 위해 필요한 비용과 시간을 증가시킵니다.원하는 예술적 방향을 달성하기 위해서는 영화에서 신체적으로 영감을 받은 효과의 높은 수준의 동작을 지시할 수 있어야 하지만, 유체, 연기 또는 많은 개별 물체와 관련된 경우 작은 디테일 수준에서 물리적 동작을 묘사하는 것은 불가능할 수 있습니다.일반적으로 물리적 기반 애니메이션은 시뮬레이션 결과의 외관을 보다 효과적으로 제어할 수 있으며, 원하는 효과가 물리학에 영향을 미치거나 어려울 때 더욱 편리합니다.

서브토픽

강체 시뮬레이션

단순화된 강체 물리학은 비교적 저렴하고 구현이 쉬우며, 이것이 대부분의 다른 기술보다 먼저 대화형 게임 및 시뮬레이션에 등장한 이유입니다.강체는 시뮬레이션 중에 변형되지 않는 것으로 가정하여 시간 단계 간의 강체 운동을 변환 및 회전으로 설명할 수 있으며, 전통적으로 4x4 매트릭스로 저장된 아핀 변환을 사용한다., 4분의 1은 회전을 격납하기 위해서, 벡터는 원점으로부터의 오프셋을 격납하기 위해서 사용할 수 있다.강체 역학의 계산상 가장 비용이 많이 드는 측면은 충돌 감지, 물체와 환경 간의 상호 침투 보정 및 정지 접점 처리입니다.강체는 일반적으로 더 작은 시간 단계를 사용하여 오류를 수정하기 위해 역추적과 함께 반복적으로 시뮬레이션됩니다.복수의 강체 사이의 정지 접촉(강체가 말뚝으로 떨어지거나 쌓이는 경우 등)은 특히 효율적으로 처리하기가 어려울 수 있으며 임펄스 기반 방법을 사용하여 해결하기 위해 복잡한 접촉 및 충격 전파 그래프가 필요할 수 있다.다수의 강체를 시뮬레이션할 때, 단순화된 기하학 또는 볼록한 선체가 충돌 감지 및 대응을 위해 경계를 나타내기 위해 종종 사용된다(이는 일반적으로 시뮬레이션의 병목 현상이기 때문이다).

부드러운 차체 시뮬레이션

소프트 바디는 스프링 메쉬 시스템을 사용하여 쉽게 구현할 수 있습니다.스프링 메쉬 시스템은 시뮬레이션된 스프링 힘과 시뮬레이션된 완충기의 경험 저항에 의해 서로 끌어당기는 개별적으로 시뮬레이션된 입자로 구성된다.격자의 노드에 스프링과 덤프너 힘을 가하고 격자로 물체를 변형시킴으로써 임의의 형상을 보다 쉽게 시뮬레이션할 수 있다.그러나 이러한 시스템에 대한 명시적 솔루션은 수치적으로 매우 안정적이지 않으며 스프링 매개 변수의 동작을 제어하기가 매우 어렵습니다.물리적으로 그럴듯하고 시각적으로 매력적인 소프트 바디를 가능하게 하고, 수치적으로 안정적이며, 아티스트에 의해 잘 구성될 수 있는 기술은 초기 게임 역사에서 엄청나게 비쌌기 때문에 소프트 바디는 강체만큼 흔하지 않았다.Runge-Kutta 방법을 사용한 통합은 스프링 메쉬와 같은 불안정한 기술의 수치 안정성을 높이기 위해 사용될 수 있으며 더 미세한 시간 단계를 시뮬레이션에 사용할 수 있다(이는 비용이 더 많이 들고 임의로 큰 힘에 대해 스프링 메쉬를 안정시킬 수 없음).형상 매칭 및 위치 기반 역학 같은 기술은 대화형 게임과 시뮬레이션을 염두에 두고 이러한 문제를 해결합니다.포지션 기반 다이내믹스는 Bullet(소프트웨어), Havok, PhysX [3][4]등 메인스트림 게임 엔진에서 사용됩니다.스프링 메쉬 시스템은 단순성과 속도 때문에 여전히 게임에서 자주 사용되지만, 무조건적인 안정성과 구성의 용이성은 특히 소프트 바디 시뮬레이션의 바람직한 특성이다.

유체 시뮬레이션

계산 유체 역학은 비용이 많이 들 수 있으며, 복수의 유체 물체 간 또는 외부 물체/힘과의 상호작용을 평가하려면 복잡한 논리가 필요할 수 있다.유체 시뮬레이션은 일반적으로 비디오 게임에서 파도, 잔물결 또는 다른 표면 특징의 효과를 만들기 위해 수역의 높이만을 시뮬레이션함으로써 달성됩니다.비교적 자유로운 액체의 경우, 라그랑지안 또는 반라그랑지안 방법은 입자를 유체의 유한 요소(또는 물리적 성질의 운반체)로 취급하고 Navier-Stokes [5][6]방정식을 근사함으로써 시뮬레이션을 가속화하기 위해 종종 사용됩니다.유사한 방법을 사용하여 표면 특성을 시뮬레이션할 수 있고 실시간 시뮬레이션 없이 실시간으로 물을 렌더링하기 위해 유체 시뮬레이션을 사용할 수 있지만, 게임에서 유체 본체를 시뮬레이션하는 것은 드문 일이다(이것은 일반적으로 큰 수역에 대해 수행된다).GPGPU를 통해 범용 그래픽 하드웨어를 사용하여 유체 시뮬레이션을 계산할 수 있으며, 높이 필드를 효율적으로 계산하여 Ratis Boltzmann [7]방법을 사용하여 파형과 같은 동작을 발생시킬 수 있습니다.또, 표면 특징이나 파장은, 리얼타임에, 그 시뮬레이션된 입자로부터 발생하는 입자 및 높이 장으로서 시뮬레이션 할 수 있다.또한 유체 및 부유물 [8]간의 효율적인 양방향 상호작용이 가능합니다.

파티클 시스템

파티클 시스템은 구현의 용이성, 효율성, 확장성 및 아티스트 제어 기능 때문에 영화와 게임에서 시각 효과를 만드는 데 매우 인기 있는 기술입니다.입자 시스템의 업데이트 주기는 보통 생성, 시뮬레이션 및 소멸의 세 단계로 구성됩니다.이러한 단계는 각각 새로운 입자의 도입, 다음 시간 단계까지 시뮬레이션, 수명을 초과한 입자의 제거로 구성됩니다.입자의 물리적 및 시각적 속성은 일반적으로 아티스트가 제어하는 속성의 범위와 분포에 따라 생성 시 랜덤화됩니다.입자 시스템은 더욱 복잡하고 역동적인 효과를 만들기 위해 입자 시스템 자체를 생성하도록 만들 수 있으며, 그 높은 수준의 동작은 표준 심즈 논문과 같이 연산자의 프레임워크를 통해 안무될 수 있다.[9] 입자 시스템을 렌더링하는 초기 게임은 환경에서 입자가 부분적으로 형상과 교차할 때 클리핑 아티팩트로 인해 어려움을 겪었으며, 이 아티팩트는 특히 큰 입자(연기 발생을 위해 종종 사용됨)에서 두드러졌습니다.부드러운 입자는 표면에 가까워질수록 더욱 투명해지도록 입자의 투명성을 세심하게 음영 처리 및 조작함으로써 이러한 아티팩트에 대처합니다.

몰리다

물리적 기반 애니메이션에서 떼지어 다니기는 가상의 힘을 이용해 새, 물고기 떼, 곤충 떼의 복잡한 행동을 모델링하는 기술을 말한다.이러한 가상적인 힘은 무리들이 속도를 중앙에 두고 충돌이나 무리를 피하며 무리를 향해 이동하는 경향을 시뮬레이션합니다.이러한 시뮬레이션에서, 집단의 개별 구성원들(때로는 boyds, 줄여서 bird-oid라고 불린다)은 동기화된 집단 행동에 [10]대한 환상을 효율적으로 만들기 위해 동료들의 위치와 속도에 대한 정보만을 사용하여 협업 없이 행동합니다.스밍은 인간 무리들의 행동을 효율적으로 추정하기 위해서도 사용될 수 있으며, 스밍에 기초한 방법들은 종종 게임에서 NPC 무리들에게 사용된다.Unreal과 Half-Life는 야외에서 새와 나는 생물의 행동을 모델링하기 위해 사용된, 떼를 처음 구현한 게임들 중 하나이다.

물리 기반 캐릭터 애니메이션

게임 및 시뮬레이션의 캐릭터는 전통적으로 보다 복잡한 동작을 전달하기 위해 시퀀싱된 작은 정적 모션의 구성을 통해 애니메이션을 정의하는 키 프레임과 같은 방법을 통해 애니메이션화됩니다.시각적으로 이러한 정적 방법은 환경과의 복잡한 상호작용을 쉽게 전달할 수 없으며 실제와 같은 문자 동작을 달성하기 어렵게 만듭니다.물리 기반 캐릭터 애니메이션의 기술은 에너지 [11]최소화 등 물리 기반 제약이 주어진 특정 목표를 향해 움직임을 최적화함으로써 사용자의 상호작용, 외부 이벤트 및 환경에 반응하는 동적 애니메이션을 실현합니다.게임 업계에서는 물리 기반 캐릭터 애니메이션의 도입이 정적인 방법과는 달리 그 사용과 관련된 비용과 복잡성 증가로 인해 더디게 진행되어 왔습니다.물리 기반 캐릭터 애니메이션은 Skate (비디오 게임) 시리즈 비디오 게임과 독립적으로 개발된 1인칭 슈팅 게임 StarForge에 사용되어 왔다.

레퍼런스

  1. ^ Baraff; Witkin (1999). "Physically Based Modeling Course Notes". SIGGRAPH. Course 36.
  2. ^ Reeves, W. "Particle Systems - A technique for modeling a class of fuzzy objects" (PDF). ACM Transactions on Graphics.
  3. ^ Müller, M.; B. Heidelberger; M. Hennix; J. Ratcliff (2006). "Position Based Dynamics" (PDF). Proceedings of Virtual Reality Interactions and Physical Simulations (VRIPhys).
  4. ^ Müller, M.; B. Heidelberger; M. Teschner; M. Gross (2005). "Meshless Deformations Based on Shape Matching". Proceedings of SIGGRAPH. 24 (3): 471. doi:10.1145/1073204.1073216.
  5. ^ Foster; Metaxas (1996). "Realistic Animation of Liquids" (PDF). Graphical Models and Image Processing. 58 (5): 471–483. doi:10.1006/gmip.1996.0039.
  6. ^ Stam, J. (1999). "Stable Fluids" (PDF). SIGGRAPH.
  7. ^ Geist, Robert; Christopher Corsi; Jerry Tessendorf; James Westall (2010). "Lattice-Boltzmann Water Waves" (PDF). ISVC.[데드링크]
  8. ^ Yuksel, Cem; Donald House; John Keyser (2007). "Wave Particles" (PDF). SIGGRAPH. 26 (3): 99. doi:10.1145/1276377.1276501.
  9. ^ Sims, Karl (August 1990). "Particle Animation and Rendering Using Data Parallel Computation" (PDF). Computer Graphics. 4. 24 (4): 405–413. doi:10.1145/97880.97923.
  10. ^ Reynolds, C. (1989). "Flocks, herds and schools: A distributed behavioral model". SIGGRAPH.
  11. ^ Geijtenbeek, T.; N. Pronost; A. Egges; and M.H. Overmars (2011). "Interactive Character Animation using Simulated Physics" (PDF). Eurographics.