Створення Rule Oriented-Движка На Базі Мови Скриптової Мови Програмув
Total Page:16
File Type:pdf, Size:1020Kb
УДК 004.415.2.22 © 2010 р. В.С.Семенякін, Т.М.Заболотня Національний технічний університет України «Київський політехнічний інститут», м.Київ, Україна МОДИФІКОВАНИЙ ОБ’ЄКТНООРІЄНТОВАНИЙ ПІДХІД ДО ПОБУДОВИ ПРОГРАМНИХ ЗАСОБІВ МОДЕЛЮВАННЯ ФІЗИЧНИХ ПРОЦЕСІВ У статті розглядається питання побудови архітектури програмних засобів моделювання фі- зичних процесів. Пропонується новий SIM підхід до організації об’єктів простору моделюван- ня, орієнтований на максимальне абстрагування останніх. Визначаються основні кроки ство- рення програмного забезпечення у межах описаного підходу. Розробляється SIM архітектура фізичного движка та проводиться її модифікація з метою підвищення ефективності алгоритмів обробки фізичних об’єктів за критерієм швидкодії. На основі отриманої архітектури здійснена програмна реалізація основних класів фізичного движка. This article is devoted to the question of development of the software architecture for physical processes modeling. The new SIM approach to the organization of simulation space’s objects is pro- posed. It is oriented to the maximum abstraction of the latter. Basic steps of software creating accord- ing to the described approach are defined. SIM architecture of the physics engine is implemented and its modification for enhance the effectiveness of physical objects processing algorithms on the criteria of speed performance is considered. The software implementation of major classes of the physical en- gine is done based on the SIM architecture. Вступ грамного моделювання фізичних процесів є У галузі створення сучасної анімації і розро- актуальною задачею. бки комп’ютерних ігор все частіше виникає З огляду на вищезазначене метою даної ро- необхідність у побудові програмних систем, боти є створення відкритого до розширення здатних реалістично відтворювати різні фізичні функціонального ядра програмних засобів для явища. Використання таких систем сприяє зна- моделювання фізичних процесів. чному прискоренню процесу створення Відповідно до вказаної мети в роботі поста- комп’ютерної мультиплікації, оскільки автома- влені і розв’язані такі задачі: тизована обробка «фізики» знімає необхідність - визначення підходу до побудови та роз- відтворення останньої вручну. В комп’ютерних робка базової архітектури фізичного движка; іграх програмне моделювання фізичних проце- - модифікація отриманої архітектури для сів дозволяє зробити графічне зображення вір- забезпечення реалізації ефективних за критері- туального світу максимально подібним до реа- єм швидкодії алгоритмів обробки фізичних льного світу. об’єктів. Існуючі у даній галузі програмні рішення здатні відтворювати закони динаміки, статики, 1. Огляд існуючих рішень гідродинаміки, фізики газів, тканин тощо. Всі Програмний комплекс, що реалізує симуля- вони мають оптимізований щодо часу виконан- цію фізичних законів реального світу з деякою ня код і, як правило, можуть виконувати моде- ступінню апроксимації, називається фізичним лювання фізичних законів в реальному часі. движком [1]. Під симуляцією в даному випад- Їх спільним недоліком є архітектура, що до- ку будемо розуміти програмну імітацію фізич- зволяє працювати з описами лише заданого за- ного процесу або об’єкта [2]. здалегідь спектра законів фізики. Робота з да- Поняття архітектура програмного забезпе- ними, які стосуються інших областей фізики, чення включає в себе: або неможлива, або потребує перебудови дви- 1. Набір значущих рішень з приводу ор- жка. Тому пошук нових рішень у галузі про- ганізації системи програмного забезпечення. 1 2. Набір структурних елементів та їх Слід помітити також, що в системі класів інтерфейсів, за допомогою яких компонується усіх движків, що розглядаються, існує поняття система, разом з їх поведінкою, що визначаєть- зв’язків (joints), які описують взаємодію між ся взаємодією між цими елементами. двома об’єктами. Але для жодного з движків 3. Компоновку елементів у підсистеми, можливість створення користувацьких joints-ів що поступово розширюються. не розглядалася як головна ідея побудови архі- 4. Стиль архітектури, котрий спрямо- тектури движка. вує цю організацію – елементи та їх інтерфей- Таким чином, можна зробити висновок, що си, взаємодії та компоновку [3]. за ідеєю розробників архітектура вищезгада- Статичною будемо називати таку архітек- них движків є статичною. туру фізичного движка, що не підтримує (або APE [10] – відкритий, дещо застарілий робить складною) можливість підключення до фізичний движок. нього бібліотек обробки даних щодо фізичних Побудова: Движок не має структури, що законів або колекцій законів з цілих розділів описує об’єкт фізичного простору. Є набір ал- фізики. горитмів і класів для фізичного моделювання, Проаналізуємо існуючі фізичні движки з то- та пошук колізій між формами, що описуються чки зору їх архітектури: багатокутниками. З метою спрощення роботи у Box2D – зручний у використані та ефе- APE введене поняття груп, у які розробник мо- ктивний з точки зору швидкодії движок з відк- же об’єднувати об’єкти. ритим кодом. Існують його реалізації різними Архітектура движка є незакінченою: взагалі мовами, у тому числі ActionScript. Вважається не описане поняття фізичного об’єкту. На ос- одним з кращих двовимірних движків [4, 5]. нові движка можлива реалізація гнучкої до ро- NAPE [6, 7] – новий відкритий движок; зширення архітектури, але на досліджуваному зараз закінчується розробка, але вже йде широ- етапі розробки APE фактично є лише калькуля- ке застосування. Автор движка анонсував реа- тором фізичних законів. лізацію широкого спектру фізичних законів – Примітка 1: У даному огляді не наведена ін- не лише механіки, зокрема йдеться про симу- формація про комерційні движки через те, що ляцію води [8]. їх програмний код є закритим, а, отже, немож- ODE (Open Dynamics Engine) [9] – відк- ливо детально розглянути їх архітектуру. Од- ритий, частково безкоштовний тривимірний нак, слід згадати такі движки як PhysX і Havok, фізичний движок, орієнтований на реалістичне що є одними з найкращих комерційних рішень відтворення складних з’єднань (шарнірів, пру- в області моделювання фізичних об’єктів (вони жин, тощо). використовують апаратну оптимізацію і пара- Побудова вищезгаданих движків. Головний лельне програмування для прискорення обчис- контейнер містить у собі менеджери, напри- лень). клад: менеджер обробки колізій, розподільник Судячи з прикладів коду програмних проду- пам’яті движка (потрібен для реалізацій движ- ктів, що їх використовують [11, 12], архітекту- ків на нескриптових мовах програмування), а ра цих движків також є статичною. також список об’єктів та список осей, що їх фі- Примітка 2: Також слід згадати програмний ксують. Вищезгадані менеджери описані в продукт Phun та його комерційну версію – окремих класах. Програмні об’єкти, що збері- ALGODOO [13]. Останній здатен моделювати гають динамічні властивості, містять велику процеси, напевне, найбільшого спектру розді- кількість даних щодо фізичних властивостей лів фізики серед усіх сучасних систем програм- тіла і одночасно виконують роль об’єктів вірту- ного моделювання: динаміки, статики, гідроди- ального простору. Це робить опис нових для наміки та оптики. Мінусом є закритість систе- движка властивостей незручним у використан- ми. ALGODOO не є бібліотекою моделювання ні. «фізики», це закінчений програмний продукт з Відтворення фізичного впливу на об’єкт мо- реалізованим графічним інтерфейсом. делювання у коді здійснюється за допомогою Таким чином, доцільним є проведення дос- виклику спеціальних функцій додавання сил та лідження можливості створення програмної імпульсів. системи моделювання фізичних процесів з об’єктами, що є максимально абстрагованими. 2 2. Обґрунтування ідеї побудови движка нього: правила можна додавати до об’єкту, але Об’єкт віртуального простору доцільно їх набір не може бути фіксованим. визначати, включаючи до його структури екзе- Поставлені задачі не можуть бути реалізова- мпляри класів-контролерів, що описують певні ні з використанням лінійних відношень між ідейно різні сутності об’єкту - зони відповіда- класами. Вони потребують розробки більш роз- льності. Така побудова проекту робить код галуженої, ієрархічної архітектури програмних проекту більш структурованим і зручним. засобів. У нашому випадку об’єкт віртуального про- стору включатиме в себе екземпляр графічного 3. SIM підхід об’єкту, зоною відповідальності якого є оброб- У даній статті пропонується підхід до побу- ка зовнішнього вигляду об’єкту (графічний дови архітектури програмних комплексів, реа- об’єкт не буде розглянутий детально у даній лізація якого дозволить гнучко редагувати на- статті), і екземпляр фізичного об’єкту, що буде бори використовуваних властивостей та мето- здійснювати контроль фізичної складової дів об’єктів. Новий підхід – SIM підхід (Shell- об’єкту. Influence-Model) – побудований на основі Фізичним об’єктом будемо називати суку- об’єктноорієнтованої парадигми програмуван- пність двох складових: набору властивостей ня, ідеї так званого предметноорієнтованого об’єкту (положення у просторі, маса, швидкість підходу до програмування (subject-oriented тощо), і законів (правил), що впливають на programming) [14] та використанні шаблону об’єкт (закон тяжіння, правило пружного зітк- проектування стратегія [15]. В межах SIM по- нення твердих тіл тощо). ведінка об’єктів і групи властивостей (принцип Найбільш поширеним підходом щодо реалі- об’єднання вказаний нижче) розглядаються як зації фізичних об’єктів є об’єктноорієнтований окремі сутності. підхід (див. архітектуру будь-якого фізичного Підхід має такі особливості: движка), відповідно до якого програмний опис 1. Відокремлені групи властивостей