Upload
-
View
172
Download
9
Embed Size (px)
Citation preview
1
3D-МОДЕЛЮВАННЯ ЗАСОБАМИ C++ ЗА
ДОПОМОГОЮ БІБЛІОТЕКИ DIRECTX
ПідготувавСтудент групи КН-45Матвісів Роман Ярославович
Науковий керівниккандидат фізико-математичних наук, доцентГригорович Віктор Геннадійович
2
Актуальність темиДля програмування швидкої і якісної 3D-графіки під
Windows потрібно використовувати спеціальну технологію, яка дає прямий доступ до відео-пам’яті, бо в якості програмної основи для роботи з графікою використовується інтерфейс GDI (Graphic Device Interface, інтерфейс графічних пристроїв), який не надає такої можливості.
На даний час DirectX і OpenGL – це дві передові технології. Технологія DirectX використовується лише для ОС Windows, а OpenGL працює у будь якому середовищі. Перевага DirectX полягає в дещо більшій функціональності. Тому вивчення і використання технології DirectX є достатньо актуальним.
При викладанні у школі стереометрії, учням потрібно наочно показувати приклади тривимірних фігур, щоб їм було зрозуміло і щоб вони краще засвоювали матеріал.
Дана програма моделює 3D-фігури і дозволяє змінювати і обчислювати їх параметри.
3
Мета роботи
Розробити систему 3D-моделювання засобами C++ з використанням технології DirectX.
4
Завдання роботи
Ознайомитися з методами побудови 3D-графіки за допомогою технології DirectX;
Створити ієрархію класів 3D-фігур;
Спроектувати програму, яка б моделювала 3D-фігури;
Створити зручний інтерфейс для вибору об’єкта моделювання і зміни його параметрів;
Програмно реалізувати систему, яка моделює фігури в 3D-просторі.
5
Об’єкт досліджень
Процеси формування, зберігання, опрацювання, та відтворення 3D-об’єктів.
6
Предмет досліджень
Потоки та структури даних, які виникають в процесі реалізації 3D-графіки засобами C++ за допомогою бібліотеки DirectX.
7
Засоби досліджень
• методи комп’ютерної геометрії,
• об’єктно-орієнтоване програмування,
• технологія DirectX,
• інструментарій MS Visual C++.
8
1. Аналітичний огляд існуючих аналогів
В даному підрозділі розглянуті три програми-аналоги, які моделюють тривимірні фігури:
•«Тіло оберту»;
•«3ds Max»;
•«КОМПАС-3D».
9
Рис. 1.1. Створення фігури для обертання Рис. 1.2. Тіло після обертання по осі OZ
1. Аналітичний огляд існуючих аналогів
Програма «Тіло оберту»
10
1. Аналітичний огляд існуючих аналогів
Програма «3ds Max»
Рис. 1.3. Інтерфейс програми 3ds Max
11
1. Аналітичний огляд існуючих аналогів
Програма «3ds Max»
Рис. 1.3. Інтерфейс програми 3ds Max
В меню є функція добавлення примітивних фігур стереометрії (рис 1.4.);
12
1. Аналітичний огляд існуючих аналогів
Програма «3ds Max»
Рис. 1.4. Вибір тривимірної фігури з набору
Рис. 1.5. Зображення фігури з вказаними параметрами
2. Можна вибрати любу фігуру, вказати її параметри і змоделювати (рис. 1.4.);
3. Можна змінювати параметри фігури (рис. 1.5.).
13
1. Аналітичний огляд існуючих аналогів
Програма «КОМПАС-3D»
Рис. 1.7. Добавлення прямокутникаРис. 1.8. Витискування куба
14
2. Технічне завдання та вибір платформи розробки
2.1. Постановка завданняЗавдання: розробити просту, зручну у використанні програму для
моделювання тривимірних фігур (призма, піраміда, циліндр і т. д.) та обчислення і можливість зміни їх параметрів (площа поверхні, об’єм і т. д.).
Програма моделювання тривимірних фігур повинна відповідати таким вимогам:
•зручність побудови і зміни параметрів 3D-об’єктів.•вибір 3D-об’єктів із списку існуючих.•параметри фігури повинні виводитися на екран і повинна бути можливість зміни параметрів.
Крім того, розроблений програмний продукт повинен задовольняти наступним вимогам:
•зручність у користуванні та моделюванні 3D- об’єктів.•зручність у зміні параметрів 3D- об’єктів.
15
2. Технічне завдання та вибір платформи розробки
2.2. Вибір мови програмування
Для реалізації ієрархії класів тривимірних фігур потрібна об’єктно-орієнтована мова програмування. C++ є повністю підходяща мова для реалізації даного програмного продукту.
16
2. Технічне завдання та вибір платформи розробки
2.3. Вибір середовища розробки та версії
Згідно технічного завдання я використав середовище Visual Studio С++ 2008 з використанням бібліотеки DirectX 9 для розробки програми.
Visual Studio С++ 2008 – є середовищем розробки програм, яке має все необхідне, для створення даного програмного продукту (зокрема, це ООП, для побудови ієрархії 3D-фігур, і DirectX SDK написаний на C++). Як відомо, середовище розробки великою мірою визначає ефективність роботи програміста. У середовищі програмування Visual Studio С++ 2008 є всі необхідні інструменти для того, щоб створювати повноцінні програми.
17
2. Технічне завдання та вибір платформи розробки
2.4. Порівняльний аналіз технологій OpenGL та DirectX
OpenGL та DirectX – це дві найпопулярніші технології, для програмування 3D-графіки.
18
Висновок
При виконанні роботи освоєно основні принципи програмування 3D-графіки технологією DirectX: ініціалізацію Direct3D, створення примітиву в Direct3D, створення класів тривимірних фігур. На основі здобутих знань та умінь створено програмну систему, яка дозволяє моделювати тривимірні фігури (призма, конус і т. п.), змінювати ключові характеристики (довжину ребра, тощо) і обчислювати параметри (площу поверхні, об’єм і т. п.).