Фізичний рушій

Фізи́чний руші́й (англ. physics engine) програмний рушій, що робить симуляцію фізичних законів реального світу у світі віртуальному з тим або іншим ступенем апроксимації. Найчастіше фізичні рушії використовуються не як окремі самостійні програмні продукти, а як складені компоненти (підпрограми) інших програм.

Симуляція фізики фізичним рушієм

Наведено чотири приклади симуляції фізичним рушієм падіння об'єкта на схил. Приклади різняться акуратністю симуляції:

  1. Без фізики.
  2. Гравітація, нема виявлення зіткнень.
  3. Гравітація і виявлення зіткнень, нема механіки твердого тіла.
  4. Гравітація, виявлення зіткнень і обчислення обертань через тертя.

Усі фізичні рушії умовно діляться на два типи: ігрові й наукові.

Перший тип використовується в комп'ютерних іграх як компонент ігрового рушія. У цьому випадку він повинен працювати в режимі реального часу, тобто відтворювати фізичні процеси в грі з тою ж швидкістю, з якою вони відбуваються в реальному світі. Разом із тим, від ігрового фізичного рушія не потрібно точності обчислень. Головна вимога — візуальна реалістичність, — і для її досягнення не обов'язково проводити точну симуляцію. Тому в іграх використовуються дуже приблизні апроксимації, наближені моделі й інші програмні «трюки».

Наукові фізичні рушії використовуються в науково-дослідних розрахунках і симуляціях, де вкрай важлива саме фізична точність обчислень. Разом із тим швидкість обчислень не грає істотної ролі.

Сучасні фізичні рушії симулюють не всі фізичні закони реального світу, а лише деякі, причому із часом і прогресом у галузі інформаційних технологій і обчислювальної техніки список «підтримуваних» законів збільшується. На початок 2010 року фізичні рушії можуть симулювати такі фізичні явища й стани:

У серпні 2009 року англомовний журнал Game Developer, присвячений розробці комп'ютерних ігор, опублікував статтю про сучасні ігрові рушії та їхнє використання. Згідно з даними журналу, найпопулярнішим серед розробників є рушій nVidia PhysX, що займає 26,8% ринку. На другому місці перебуває Havok, що займає 22,7% ринку. Третє місце належить рушію Bullet Physics Library (10,3%), а четверте Open Dynamics Engine (4,1%).[1]

Використання

Опис

Фізичний рушій дозволяє створити деякий віртуальний простір, який можна наповнити тілами (віртуальними статичними й динамічними об'єктами), і вказати для нього якісь загальні закони взаємодії тіл і середовища, тією, чи іншою мірою наближені до фізичних, задаючи при цьому характер і ступінь взаємодій (імпульси, сили тощо). Властиво розрахунок взаємодії тіл рушій і бере на себе. Коли простого набору об'єктів, що взаємодіють за певними законами у віртуальному просторі, недостатньо в силу неповного наближення фізичної моделі до реального світу, можливо додавати (до тіл) зв'язки. Розраховуючи взаємодію тіл між собою й із середовищем, фізичний рушій наближає фізичну модель одержуваної системи до реального світу, передаючи уточнені геометричні дані засобові відображення (рендереру).

Тіло

Тіло (англ. body) — об'єкт ігрової фізики, що визначається:

  1. його формою (є прості форми: куля, куб, циліндр; є складні форми, набір яких у різних рушіях може різнитися);
  2. деяким набором параметрів (маса, пружність, коефіцієнт тертя, інертність по осях).

Зв'язок

Зв'язок (з'єднання; англ. joint) — обмеження об'єктів ігрової фізики, кожне з яких може накладатися на одне або два тіла.

Взаємодія

Як правило, фізичний рушій і вирішує проблему взаємодії тіл. Проте, може з'явитися необхідність використання власного алгоритму взаємодії, і, як правило, рушії надають таку можливість.

Відомі фізичні рушії

Ігрові пропрієтарні

  • Havok — колись найпопулярніший і розповсюджений фізичний рушій, використовуваний у більш ніж ста іграх. У наш час небагато поступився своєму конкурентові[1];
  • PhysX — основний конкурент Havok, єдиний у світі фізичний рушій, що має апаратну підтримку. Спочатку розроблений фірмою Ageia за назвою NovodeX, після випуску физичного процесора PhysX перейменований в Ageia PhysX SDK. Купівля Ageia компанією nVidia призвела до перейменування рушія на nVidia PhysX SDK. Зараз PhysX посідає перше місце за популярністю серед фізичних рушіїв[1];
  • TrueAxis;
  • Meqon — фізичний рушій, придбаний компанією Ageia та інтегрований до складу її рушія PhysX. Передбачається його використання в Duke Nukem Forever;
  • Ipion Virtual Physics — фізичний рушій, придбаний компанією Havok й інтегрований до складу її рушія Havok;
  • Newton Game Dynamics — пропрієтарний безкоштовний фізичний рушій;
  • Karma — комерційний рушій від нині закритої компанії MathEngine, інтегрований в Unreal Engine 2.0/2.5.

Ігрові вільні

  • Box2D — популярний фізичний рушій з відкритим вихідним кодом, написаний на C++;
  • Bullet Physics Library — найпопулярніший в цей час вільний фізичний рушій[1];
  • Open Dynamics Engine — другий за популярністю серед вільних фізичних рушіїв[1];
  • OPAL (об'єктна оболонка на C++ для деяких фізичних рушіїв);
  • Tokamak — фізичний рушій з відкритим кодом.

Ігрові апаратні

  • PhysX фізичний процесор; працює так само, як і графічна карта, але на користь фізики PhysX. Тобто при наявності такої плати й гри з PhysX ігрова фізика буде значно кращою, ніж без використання адаптера PhysX.

Наукові

  • Digital Molecular Matter

Інші

  • Open Physics Initiative — масштабний проект, ініційований компаніями AMD і Pixelux Entertainment з об'єднання Bullet Physics Library і Digital Molecular Matter, додавання в новостворений продукт підтримки OpenCL і DirectCompute і оптимізації результуючого рушія для виконання на графічних процесорах Radeon.

Див. також

  • Фізика Ragdoll

Посилання

Примітки

  1. Bullet ranked third physics library at 10% in Game Developers Magazine survey (англійською). офіційний сайт рушія Bullet Physics Library. 3 вересня 2009 року. Архів оригіналу за 8 липня 2013.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.