- •© Вурста с.Ю.,Літнарович р.М.,2010
- •Вступ………………………………..………………………5
- •4.1.Високопродуктивний компілятор в машинний код………………………………..………………... 126
- •4.4 Бібліотека візуальних компонент…………..135
- •5. Опис графічних бібліотек для написання 3d – програм та ігор……………….……………………………………151
- •1. Історія появи фракталів та їх використання
- •2. Довжина берегової лінії. Фрактальна розмірність. Поняття фрактала.
- •2.1. Приклади побудови фрактальних множин. Класифікація фракталів.
- •2.2. Алгоритм фрактального шуму або шум перліна
- •2.3. Реалізація алгоритму
- •3. Історія розвитку комп’ютерної графіки та ігор
- •3.1. Основні поняття зd-графіки
- •3.2. Основні прийоми для роботи з світлом в 3d:
- •3.3 Алгоритми рельєфного текстурування
- •3.3.1 Рельєфне текстурування (bump mappіng)
- •3.3.5 Простий Relief Mapping
- •3.3.6 Багатошаровий Relief Mapping
- •3.4 Основні прийоми для роботи з текстурами в 3d:
- •3.5 Основні поняття про шейдер та види шейдерів
- •3.6. Генерація тривимірних ландшафтів
- •4.1 Високопродуктивний компілятор в машинний код
- •4.2. Могутня об'єктно-орієнтована мова
- •Об'єктно-орієнтована модель програмних компонент
- •4.4 Бібліотека візуальних компонент
- •4.5. Робота з компонентами
- •5. Опис графічних бібліотек для написання 3d – програм та ігор
- •5.1 Опис графічної бібліотеки OpenGl
- •5.2 Графічна бібліотека DirectX
- •5.3 Візуальні бібліотеки компонентів для OpenGl та DirectX.
- •5.4 Опис закладок glScene
- •6. Проектування системи
- •6.1 Вибір середовища реалізації
- •6.2 Опис використаних компонент glScene для реалізації системи
- •Опис інтерфейсу розробленої системи
- •6.3.1 Панель інструментів
- •6.3.2 Опис робочої області
- •6.3.3 Опис панелі налаштування 3d-сцени
- •Висновки
- •Список літератури:
- •Побудова фрактальних поверхонь в комп’ютерній графіці
- •33027 Рівне , Україна
5.2 Графічна бібліотека DirectX
Одним з головних конкурентів вважається Direct3d з пакету DirectX[20]. Якщо порівнювати ці дві бібліотеки, то не можна сказати, що одна з них краще, а інша гірше, у кожної бібліотеки є свої особливості. Наприклад, якщо порівнювати їх в плані переносимості програм з однієї платформи на іншу, то Direct3d працюватиме тільки на Intel платформах під управлінням операційної системи Windows, у той час програми, написані за допомогою OpenGL можна успішно перенести на такі платформи як Linux, Windows і багато інших. А ось в плані об'єктно-орієнтованого підходу OpenGL поступається Direct3d. OpenGL працює за принципом переходячи з одного стану в інше, здійснюючи при цьому якісь перетворення. І ще OpenGL легше чим Direct3d для вивчення основ графіки, OpenGL можна застосовувати наприклад для початкового вивчення тривимірної графіки.
5.3 Візуальні бібліотеки компонентів для OpenGl та DirectX.
У наш час програми[3] не прийнято писати «з чистого листа». Багато елементів майбутнього шедевра вже зроблене, і простіше їх запозичити, ніж створювати самостійно. Так з давніх років влаштоване програмування. І в першу чергу розробники звичайно прагнуть користуватися готовими рішеннями для проектування інтерфейсу. Цій меті служить, наприклад, бібліотека DirectX або OpenGL.
Але і ними в чистому вигляді користуються достатньо рідко. Над ними існує немало різних «надбудов».
Якщо програміст починає вивчати 3d-графіку, то не варто відразу ж починати вивчати DircetX API . Краще скористатись якою-небудь візуальною бібліотекою компонентів. До цих пір найвідомішою такою бібліотекою DelphiX(що має завдатки ігрового двіжка).
Строго кажучи, ігрове ядро(Game Engine) – являє собою загальну систему бібліотек та інструментів, на базі якого можна створити закінчений продукт. Також є ще надбудови для DirectX такі як LKI-Creator, Truevision3D та багато інших можна знайти в Інтернеті. Є декілька бібліотек компонентів для Delphi, що полегшують (і прискорюють!) роботу з OGL, це є з найвідоміших - Glscene.
Glscene[11] - це універсальний багатофункціональний тривимірний ігровий ядро під Delphi. He зовсім коректно називати цей ядро ігровим. Його творці ніколи і ніде не підкреслювали, що він може уживатися тільки для створення ігор. З його допомогою можна зробити як прекрасну тривимірну гру, так і пакет для створення тривимірної графіки або красиву презентацію. Не встигла компанія nvidia анонсувати свої програмні шейдери, як творці Glscene заявили, що їх підтримка вже включена в нову версію Glscene. Отже ядро йде в ногу з часом.
Glscene ліцензує суспільною ліцензією MPL(Mozilla Public License). Це означає, що можна використовувати ядро в будь-яких цілях, не порушуючи його авторських прав. Якщо внесли якісь зміни до структури двіжка, ви повинні зробити ці зміни загальнодоступними. Також можна зробити хоч тричі комерційний проект на основі Glscene з повною упевненістю, що з вас за нього ніхто не зажадає ні цента. Хіба що, ради порядності, не забудьте вказати походження двіжка де-небудь в титрах.
Glscene для виводу на екран використовує бібліотеку OPENGL, на відміну від багатьох інших движків, орієнтованих в першу чергу на Direct 3d. Добре це або погано, питання складне. З одного боку, OPENGL спритніший, ніж Direct 3d. З іншої - на деяких старих акселераторах була сира підтримка OPENGL, і ігри на його основі нерідко не хотіли запускатись. Але тепер ці проблеми у минулому. Нормальна підтримка OPENGL вбудована у всі сучасні акселератори.
Як і будь-який нормальне ядро, Glscene підтримує цілий ряд перед встановлених примітивів. Це означає, що, набравши просту команду, можна миттєво створити куб, сферу, лінію, чайник. Це така добра традиція у всіх сучасних графічних бібліотеках - для створення чайника виділяється спеціальна команда або об'єкт.
З одних кубиків і чайників світ не створиш. Тому будь-які об'єкти можна комбінувати - наприклад, зробити в одному об'єкті дірку за формою іншого об'єкту. Ця функція незамінна при створенні дверних і віконних отворів в іграх, подібних "Half-life".
Якщо мова йде про розробку складної гри, одними стандартними примітивами не обійтися. Добре б мати можливість завантажувати в ядро об'єкти, зроблені в популярних тривимірних редакторах. Glscene уміє завантажувати файли форматів 3ds (що експортується добре відомою програмою 3ds max), Obj/objf, SMD, Md2, STL, TIN і PLY.
Сучасні ігри вимагають сучасних технологій. На жаль, ще в дуже багатьох іграх використовується метод анімації персонажів по-старому - по тривимірних кадрах. Процес цей повільний і неефективний. Інша справа - скелетна анімація. Тривимірна модель насаджується на віртуальні кістки, і аніматор оперує не всією моделлю, а тільки цими кістками. Що це дає? Перш за все, розмір файлів-анімацій істотно зменшується, оскільки в них зберігаються зміни координат не всіх вершин моделі (а їх, як правило, дуже і дуже багато), а тільки ключових точок, на які як би спираються кістки. Скелетна анімація реалістичніша, ніж кадрова, і позбавляє аніматора від головного болю, пов'язаного з переходом між діями. У старих іграх ви напевно спостерігали таку картину: персонаж біжить, ви тиснете на "стрибок", і персонаж стрибає не зі свого положення, а як би миттєво повернувшись в стан по стійці струнко. Через це створюється враження уривчастості анімації. При використанні скелетної анімації положення між різними кадрами інтерполюється, тобто прораховуються пропущені кадри. Результат - персонажі рухаються плавно, а переходи між рухами виглядають природніше.
Glscene підтримує скелетну анімацію і інтерполяцію кадрів. Моделі, які в початковому варіанті були кривими або незграбними, вже в процесі виводу на екран згладжуються, стають рівними і красивими. Піхотинець, в якому всього 1000 полігонів, виглядає так, як ніби в нім декілька десятків тисяч трикутників.
Останнім часом в рамках Glscene активно створюється фізичний ядро. Вже працюють ефекти інерції, прискорення, розрахунку зіткнень, застосування декількох сил. Скоро буде доступна система Verier, що розраховує складні фізичні взаємодії об'єктів, не навантажуючи процесор і акселератор.
Glscene надає можливість зміни будь-яких властивостей матеріалів і накладення текстур, починаючи з основи основ "оточення, розмиття, віддзеркалення і блиск" і закінчуючи декількома видами підтримки прозорості і обробки альфа-каналів. Модуль роботи з матеріалами включає зручний візуальний редактор як це показано Рис.27, в якому замість того, щоб вводити незрозумілі цифри, можна інтуїтивними рухами миші підігнати властивості матеріалів під моделі.
Рис.27.Візуальний
редактор матеріалів
Модуль текстур підтримує всі відомі науці графічні формати, навіть тридцяти двох бітові формати bitmap, які поки взагалі мало де підтримуються.
В Glscene також є велика частина потрібних в роботі кольорів, представлена у вигляді зрозумілих порівняльних написів, наприклад "мокра пшениця", "спокійне море", "персик", "темний лимон". Так індексовано понад 150 відтінків. По простих і зрозумілих написах легко зорієнтуватися у виборі потрібного кольору.
Не забуті і спец ефекти. Потрібний дощ, туман, сніг, яскраві сонячні відблиски, виверження вулкана, димові завіси від лісу, що горить, блискавки.
Рис.28.
Спец
ефекти
GLScene
Glscene має підтримку тривимірного звуку через бібліотеку FMOD і BASS. Недавно з'явилася підтримка розширених пристроїв введення, зокрема джойстиків із зворотним зв'язком і гейм-падів.
