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

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

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

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

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

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

Сучасні фізичні рушії симулюють не всі фізичні закони реального світу, а лише деякі, причому із часом і прогресом у галузі інформаційних технологій і обчислювальної техніки список «підтримуваних» законів збільшується. На початок 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.

Ігрові вільні[ред.ред. код]

Ігрові апаратні[ред.ред. код]

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

Наукові[ред.ред. код]

Інші[ред.ред. код]

Див. також[ред.ред. код]

Посилання[ред.ред. код]

Примітки[ред.ред. код]

  1. а б в г д «Bullet ranked third physics library at 10% in Game Developers Magazine survey» (англійською). офіційний сайт рушія Bullet Physics Library. 3 вересня 2009 року. Архів оригіналу за 2013-07-08.