Фізи́чний руші́й () — програмний рушій, що робить симуляцію фізичних законів реального світу у світі віртуальному з тим або іншим ступенем апроксимації. Найчастіше фізичні рушії використовуються не як окремі самостійні програмні продукти, а як складені компоненти (підпрограми) інших програм.
Усі фізичні рушії умовно діляться на два типи: ігрові й наукові.
Перший тип використовується в комп'ютерних іграх як компонент ігрового рушія. У цьому випадку він повинен працювати в режимі реального часу, тобто відтворювати фізичні процеси в грі з тою ж швидкістю, з якою вони відбуваються в реальному світі. Разом із тим, від ігрового фізичного рушія не потрібно точності обчислень. Головна вимога — візуальна реалістичність, — і для її досягнення не обов'язково проводити точну симуляцію. Тому в іграх використовуються дуже приблизні апроксимації, наближені моделі й інші програмні «трюки».
Наукові фізичні рушії використовуються в науково-дослідних розрахунках і симуляціях, де вкрай важлива саме фізична точність обчислень. Разом із тим швидкість обчислень не грає істотної ролі.
Сучасні фізичні рушії симулюють не всі фізичні закони реального світу, а лише деякі, причому із часом і прогресом у галузі інформаційних технологій і обчислювальної техніки список «підтримуваних» законів збільшується. На початок 2010 року фізичні рушії можуть симулювати такі фізичні явища й стани: динаміка абсолютно твердого тіла; динаміка деформівного тіла; динаміка рідин; динаміка газів; поведінка тканин; поведінка мотузок (тросів, канатів тощо).
У серпні 2009 року англомовний журнал , присвячений розробці комп'ютерних ігор, опублікував статтю про сучасні ігрові рушії та їхнє використання. Згідно з даними журналу, найпопулярнішим серед розробників є рушій nVidia PhysX, що займає 26,8% ринку. На другому місці перебуває Havok, що займає 22,7% ринку. Третє місце належить рушію Bullet Physics Library (10,3%), а четверте — Open Dynamics Engine (4,1%).
Використання
Опис Фізичний рушій дозволяє створити деякий віртуальний простір, який можна наповнити тілами (віртуальними статичними й динамічними об'єктами), і вказати для нього якісь загальні закони взаємодії тіл і середовища, тією, чи іншою мірою наближені до фізичних, задаючи при цьому характер і ступінь взаємодій (імпульси, сили тощо). Властиво розрахунок взаємодії тіл рушій і бере на себе. Коли простого набору об'єктів, що взаємодіють за певними законами у віртуальному просторі, недостатньо в силу неповного наближення фізичної моделі до реального світу, можливо додавати (до тіл) зв'язки. Розраховуючи взаємодію тіл між собою й із середовищем, фізичний рушій наближає фізичну модель одержуваної системи до реального світу, передаючи уточнені геометричні дані засобові відображення (рендереру).
Тіло Тіло () — об'єкт ігрової фізики, що визначається: його формою (є прості форми: куля, куб, циліндр; є складні форми, набір яких у різних рушіях може різнитися); деяким набором параметрів (маса, пружність, коефіцієнт тертя, інертність по осях).
Зв'язок Зв'язок (з'єднання; ) — обмеження об'єктів ігрової фізики, кожне з яких може накладатися на одне або два тіла.
Взаємодія Як правило, фізичний рушій і вирішує проблему взаємодії тіл. Проте, може з'явитися необхідність використання власного алгоритму взаємодії, і, як правило, рушії надають таку можливість.
Відомі фізичні рушії
Ігрові пропрієтарні Havok — колись найпопулярніший і розповсюджений фізичний рушій, використовуваний у більш ніж ста іграх. У наш час небагато поступився своєму конкурентові; PhysX — основний конкурент Havok, єдиний у світі фізичний рушій, що має апаратну підтримку. Спочатку розроблений фірмою Ageia за назвою NovodeX, після випуску физичного процесора PhysX перейменований в Ageia PhysX SDK. Купівля Ageia компанією nVidia призвела до перейменування рушія на nVidia PhysX SDK. Зараз PhysX посідає перше місце за популярністю серед фізичних рушіїв; 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 — найпопулярніший в цей час вільний фізичний рушій; Open Dynamics Engine — другий за популярністю серед вільних фізичних рушіїв; 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
Посилання Physics Engine — загальна інформація про фізичні рушії на сайті GameDev.ru Програмування ігор: Фізика — список термінів і вимог, що ставляться до програмування фізичних рушіїв на сайті GameDev.ru
Примітки