Для розробки програмного забезпечення буде використано мова програмування Blitz3D, що належить до класу Basic-подібних мов. Ця мова ідеально підходить для швидкої розробки програм, що використовують тривимірну графіку та інше інтерактивне програмне забезпечення. Blitz3D дозволяє за досить короткий час реалізувати інтерактивну програму з підтримкою тривимірної графіки належного рівня.
Blitz3D забезпечує просте, але ефективне середовище для створення ігор, тому що він заснований на популярному і простому у використанні мові програмування BASIC.
Нижче наведена опис лише деяких з особливостей Blitz3D:
1) Супер гнучка система. Blitz3D будується навколо ідеї суб'єктів. Як правило, 3D-гра буде складатися з багатьох елементів, такими як камери, освітлення, сітки і так далі. У Blitz3D, всі ці вважаються об'єктами. Це означає, що ті ж команди можуть бути використані для маніпулювання і покликані вирішувати широкий спектр речей - наприклад, команда TurnEntity можуть бути використані для поворотів камери, світла, сітки, або навіть місцевості.
2) Сітка.
Бліц дозволяє створити свою власну сітку з нуля, або завантаження існуючої сітки з X, 3DS чи b3d форматів. Формат b3d є унікальним для Blitz3D, і був розроблений, щоб забезпечити всі можливості движка Blitz3D.
3) Terrains
Blitz3D місцевості можуть бути використані для отримання величезних сцен! Це досягається за рахунок LOD рівню деталізації в повністю автоматичному процесі роботи.
4) Sprites
Спрайт просто текстуровані 2D прямокутники. Спрайти можуть бути автоматично орієнтовані особою до камери, даючи ілюзію сферичного об'єкту.
5) Фотокамери
Blitz3D камери пропонують програмісту прямий контроль над переглядом, масштабування, усіканням спектру, протитуманними ефектами і навіть пропонують ізометричний режим.
6) Світло
Blitz3D пропонує направлене світло. Можна керувати кольором, дальність і «конусум» світла з легкістю.
7) Супер гнучка система забарвлення
Blitz3D активно використовує ідею забарвлення текстур та інших маніпуляцій, пропонуючи широкий спектр ефектів, таких як тонування, мультитекстурування і відблиски.
8) Мультитекстурування
Мультитекстурування дозволяє застосовувати до 8 шарів текстур об'єкту для досягнення таких ефектів, як lightmapping, детальне текстурування, відблиски і безліч інших. Мультитекстурування системи в Blitz3D також дозволяє точно контролювати, як текстури поєднуються разом.
9) Навколишнє середовище відображення
Навколишнє середовище відображення створює ілюзію відображень у сцені. Blitz3D передбачає 2 форми відображення навколишнього середовища - сферичної або кубічної. Кубічна середовище може оновлюватися в режимі реального часу, забезпечуючи Awesome, динамічні ефекти відображення.
Сам процес написання програми відбувається в спеціальному середовищі програмування, що має назву Visual Blitz. Воно є досить простим і зручним для користувача, є можливість детального налаштування інтерфейсу та компілятора. Зовнішній вигляд Visual Blitz зображено на рисунку.
Рисунок 2.1 – Зовнішній вигляд середовища розробки Visual Blitz
Для взаємодії серверної і клієнтської частин через мережу використовуються спеціальна бібліотека, що має назву k-netlib. Ця бібліотека дозволяє організувати взаємодію двома методами – Кліент/Сервер та Клієнт/Клієнт, про що свідчать опції з’єднання:
Const KNL_INI_Peer2Peer = 2 ; Peer To Peer interface.
В основі роботи бібліотеки лежить компонент DirectX – DirectPlay. Як і в інших компонентах DirectX, програмування DirectPlay базується на використанні COM інтерфейсів. Цей підхід є дуже зручним, тому що всі дії, зроблені в процесі виконання програми, здійснюються через покажчики на певні інтерфейси. Так, наприклад, для кожної архітектури, будь то клієнт/клієнт або клієнт/сервер, існує головний інтерфейс, через покажчик на який і здійснюється робота додатка. Необхідно також відзначити й допоміжні інтерфейси, що грають важливу роль.
Для роботи програми спочатку треба запустити сервер. При запуску сервер завантажує базу даних зареєстрованих користувачів. Всі користувачі, що підключені до серверу відображаються в списку у вікні сервера.
Рисунок 2.2 – Зовнішній вигляд вікна сервера
Щоб додати нового користувача в базу даних сервера достатньо створити текстовий файл в директорії \Profiles\. Ім’я файлу являється ім’ям користувача в чаті. Вміст файлу може бути, наприклад, таким:
dima
human1
s1human1
Перша строка відповідає за бажане ім’я користувача в чаті, друга – пароль авторизації на сервері. Третя та четверта – це додаткові параметри, що впливають на зовнішній вигляд моделі користувача в тривимірному просторі.
На стороні клієнта відбувається підключення до серверу. Для підключення потрібні певні дані для авторизації клієнта в базі сервера. Ці дані також зберігаються в текстовому файлі:
127.0.0.1
dima
Перші дві строки слугують для ініціалізації графічного режиму додатку. Друга – це ІР-адреса серверу. Третя – це ім’я користувача, а четверта – пароль доступу.
При підключені сервер перевіряє ці дані, якщо вони підходять, то клієнт отримує доступ до серверу, тобто входить в чат.
Після отримання доступу клієнтська програма будує інтерактивний простір, що складається з таких етапів:
- завантаження ресурсів – моделі, текстури і т.д.;
- побудова простору із моделей;
- розміщення користувача в просторі;
- створення і розміщення інших користувачів в просторі;
Всі дії, що виконує будь який користувач чату передаються на сервер, а потім із серверу передаються всім іншим користувачам чату. Напряму, від одного користувача до іншого нічого не передається – це являється основним правилом клієнт-серверної архітектури. Програма дозволяє такі інтерактивні дії користувачам чату3D:
- переміщення (ходьба);
- швидке переміщення (біг);
- поворот
- підплигування;
- відправка текстових повідомлень.
Всі інші дії, що здійснює користувач на сервер не відправляються. Загалом архітектура побудована так, щоб якомога менше даних відправляти на сервер. Це по-перше економить трафік, а по-друге, збільшує швидкодію програми, як клієнтської так і серверної.
Після надходження інформації від користувача, сервер обробляє її, а потім відправляє всім іншим користувачам, щоб вони могли коректно взаємодіяти.
Тривимірна графіка
Тривимірна графіка призначена для імітації фотографування або відеозйомки тривимірних образів об'єктів, які можуть бути попередньо підготовані у пам'яті комп'ютера.
При використанні засобів тривимірної графіки синтез зображень виконується за алгоритмом, що містить:
- попередня підготовка;
- створення геометричної моделі сцени;
- налаштування освітлення та зйомочних камер;
- підготовка та призначення матеріалів;
- візуалізація сцени.
Перші чотири пункти є підготовчими, а останній власне формує зображення.
Попередня підготовка. На цьому етапі складається вміст сцени. Треба передбачити всі об'єкти та їх деталі, тому бажано мати намальований ескіз.
Створення геометричної моделі сцени. Будуються тривимірні геометричні моделі об'єктів, що мають ширину, довжину та висоту. Об'єкти розташовуються у тривимірному просторі, причому їх можна вкладати у середину інших об'єктів. Набір інструментів по створенню геометричних моделей називається геометричним конструктором сцен. Після створення геометричної моделі, сцену можна розглядати з любого ракурсу.
Робота над композицією: світло та камери. Відбувається налаштування моделей джерел освітлення та розставляння зйомочних камер. Правильний підбір джерел освітлення дозволяє виконати імітацію фотографування сцени в любих умовах освітлення. Освітлення всіх об'єктів, їхні тіні та відблиски світла розраховуються програмою автоматично. Моделі зйомочних камер надають можливості розглядати тривимірну сцену та виконувати її зйомку під любим кутом зору.
Підготовка та призначення матеріалів. Виконується робота, що забезпечує візуальну правдивість сцени та наближує якість зображення до реальної фотографії. В наш час є великі можливості по створенню нових матеріалів або вибору готових матеріалів із бібліотек, що розповсюджуються на CD- дисках або Інтернеті.
Працюючи з матеріалами, можна налаштовувати їх властивості, зокрема, силу відблискування, прозорість, самовипромінювання, дзеркальність, рельєфність. У склад матеріалів можна вміщувати фотографії реальних об'єктів навколишнього світу. Окрім того, фотографії можна використовувати у якості фону сцени.
Візуалізація сцени, тобто формування сцени, яке займає досить довгий час, що залежить від складності сцени та швидкодії комп'ютера.
На етапі візуалізації програма розраховує та наносить на зображення всі тіні, бліки, взаємне відбивання об'єктів. Для підвищення достовірності зображення можна створити імітацію природних явищ (димка, туман, полум'я).
Вигаданий світ, створений таким чином, називається віртуальним, тобто потенційно можливим. На питання, чи не простіше сфотографувати реальну сцену, можна відповісти, що є випадки, коли використання тривимірної графіки є єдиним можливим засобом рішення.
Області застосування тривимірної графіки
Комп'ютерне проектування:
- швидке вирішення задач проектування інтер'єрів;
- вбудовування вигаданої сцени у зображення реального світу. Тривимірна графіка звільнює від необхідності створення макета і забезпечує гнучкі можливості синтезу зображення сцени для любої погоди і під любим кутом зору;
- вбудовування зображення реального об'єкта у тривимірну сцену як складової (віртуальна галерея);
Автоматизоване проектування:
синтез зовнішнього вигляду складних деталей, що виготовляються методами штампування токарних та фрезерних операцій, візуальний вигляд автомобілів, літаків, пароплавів.
Створення тривимірних образів деталей та конструкцій, хоча й є складною задачею, але простішою, ніж створення масштабних або повнорозмірних макетів.
Комп'ютерні ігри: найпопулярніша ділянка використання тривимірної графіки. По мірі удосконалення програмних засобів моделювання, зросту продуктивності та збільшення ресурсів пам'яті комп'ютерів віртуальні світи стають більш складними й подібними до реальності.
Комбіновані зйомки: тривимірну графіку застосовують там, де зробити реальні фотографії просто неможливо, або потребує великих витрат (внутрішність працюючого двигуна, науково-фантастичні сюжети, нереальні світи, відеомонтаж, реклама тощо). Практично застосовується у книжковій та журнальній графіці і є популяризацією науки, реклами, художньої творчості.
Комп'ютерна мультиплікація: спрощує роботу розробників у сотні та тисячі разів.
Недоліки тривимірної графіки:
- підвищені вимоги до апаратної частини комп'ютера (об'єм оперативної пам'яті, наявність вільного місця на твердому диску, швидкодія комп'ютера);
- велика підготовча робота по створенню моделей всіх об'єктів сцени та призначенню їм матеріалів;
- обмежена свобода у формуванні зображення (потрібно враховувати об'єм об'єктів);
- жорсткий контроль за взаємним розташуванням відносно базису (об'єкт може втілюватись у інший об'єкт); необхідність додаткових зусиль для надання синтезованому зображенню реалістичності.
- часто результати візуалізації виглядають дуже правильно, чітко, що позбавляє сцену життєвості. У складі програм тривимірної графіки міститься набір фільтрів, що дозволяють імітувати глибину різкості зображень, зернистість віртуальної фотоплівки, змазування контуру при русі у момент зйомки.
Autodesk 3ds Max (раніше 3d Studio MAX) — повнофункціональна професійна програмна система для створення і редагування тривимірної графіки і анімації, розроблена компанією Autodesk. Містить найсучасніші засоби для художників і фахівців в області мультимедіа. Працює в операційних системах Microsoft Windows і Windows NT (як в 32-бітних, так і в 64-бітних). Восени 2011 року випущена чотирнадцята версія цього продукту під назвою «3ds Max 2012».