logo search
Процес дистанційного навчання на базі тривимірного віртуального робочого середовища

1.2 Особливості Unity у створенні віртуального робочого середовища

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

Більшість ігрових движків містить в собі інтегровану середовище розробки, що дозволять тестувати скрипти і всі ігрові дії в буквальному сенсі « на льоту».

Для нашої віртуальної робочого середовища ми вирішили використовувати Unity - мультиплатформенний інструмент для розробки тривимірних додатків, що працюють зокрема під операційною системою Windows.d - це потужний мультиплатформенний інструмент для розробки та програмування інтерактивних браузерних і настільних додатків з дво-і тривимірною графікою, оброблюваної в реальному часі.

Проект Unity3d заснований в 2005 році в Данії компанією Unity Technologies, має штаб-квартиру в SanFrancisco та робочі групи в Копенгагені, Лондоні, Стокгольмі, Вільнюсі, Сеулі, Токіо.

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

Програмування графіки в Unity3d здійснюється засобами JavaScript, Boo (діалект Phyton) і C # на основі. NET; реалізована робота з мережею, використовується фізичний движок AgeiaPhysX, змішування 3D-графіки реального часу з потоковим аудіо і відео. Сервер ресурсів Unity забезпечує контроль версій в Unity.d підтримує широкий діапазон платформ: Windows (XP / Vista / W7), MacOs X, iPhone, iPod, iPad, Xperia PLAY, PS3, Flash 3D player.

У 2013р. проект Unity дійшов до фінальної стадії версія Unity 4.1, в якій список підтримуваних платформ розширився до iOS, Android, Wii, XBox 360, PlayStation 3, Linux. Підтримувані браузери: IE, FireFox, Chrome, Opera, Safari.

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

Інструментарій Unity3d побудований на використанні для розробки інтерактивних додатків з дво- і тривимірною графікою, оброблюваної в реальному часі, концепції ігрового движка (GameEngine).

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

Ігровий движок (GameEngine) - це центральний програмний компонент інтерактивних програм з тривимірною графікою, оброблюваної в реальному часі, в тому числі компютерних та відеоігор. Він забезпечує основні технології моделювання і 3D- візуалізації, спрощує процес розробки проектів, забезпечує можливість їх запуску на декількох платформах, таких як ігрові консолі та настільні операційні системи, наприклад, GNU / Linux, Mac OS X і Microsoft Windows.

Ігровий движок забезпечує основну функціональність пакету Unity3d. Він включає в себе багато разів використовувані програмні компоненти : графічний движок (« визуализатор »), фізичний движок, звуковий движок, систему скриптів, анімацію, штучний інтелект, мережевий код, управління памяттю і багатопоточність.

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

Часто ігрові движки мають компонентну архітектуру, що дозволяє замінювати або розширювати деякі підсистеми движка більш спеціалізованими (і часто більш дорогими) компонентами, наприклад, для симуляції фізичної природи взаємодії (Havok), звуку (FMOD) або рендеринга (SpeedTree). Однак деякі ігрові движки, такі як RenderWare, проектуються як набір слабосвязанних компонентів, які можуть вибірково комбінуватися для створення власного движка, замість більш традиційного підходу, який полягає в розширенні або налаштуванні гнучкого інтегрувального рішення.

Розглянемо основні компоненти будь-якого ігрового движка - графічний і фізичний движки.

Графічний 3D-движок (англ. 3D - graphicsengine; система рендеринга або « визуализатор ») - проміжне програмне забезпечення (ППО), основним завданням якого є візуалізація (рендеринг) двох - або тривимірної компютерної графіки. Може існувати як окремий продукт або у складі ігрового движка і використовуватися для візуалізації окремих зображень або компютерного відео. Графічні движки, що використовуються в програмах по роботі з компютерною графікою (таких, як 3ds Max, Maya, Cinema 4D, Zbrush, Blender), зазвичай називаються « Рендерер », « отрісовщікамі » або « візуалізатори ». При цьому основне і найважливіше відмінність « ігрових » графічних движків від « неігрових » полягає в тому, що перші повинні обовязково працювати в режимі реального часу, тоді як другі можуть витрачати по кілька десятків годин на виведення одного зображення. Другим істотним відмінністю є те, що, починаючи приблизно з 1995-1997 року, графічні движки виробляють візуалізацію за допомогою графічних процесорів (GPU) відеокарт. Програмні графічні движки використовують тільки центральні процесори (CPU).

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

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

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

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

Власне розрахунок взаємодії тіл движок і бере на себе. Коли простого набору обєктів, взаємодіючих за певними законами у віртуальному просторі, недостатньо, в силу неповного наближення фізичної моделі до реальної, можливо додавати до тіл звязку (англ. joint, «зєднання»). Звязки являють собою обмеження обєктів фізики, кожне з яких може накладатися на одне або два тіла.

Розраховуючи взаємодія тіл між собою і з середовищем, фізичний движок наближає фізичну модель одержуваної системи до реальної, передаючи уточнені геометричні дані в графічний двіжок.d як фізичний двигун використовує NvidiasPhysXengine.

Основною концепцією Unity3d є використання в сцені легко керованих обєктів, які, в свою чергу, складаються з безлічі компонентів. Створення окремих ігрових обєктів і наступне розширення їх функціональності за допомогою додавання різних компонентів дозволяє нескінченно удосконалювати і ускладнювати проект.