18
1 3D-МОДЕЛЮВАННЯ ЗАСОБАМИ C++ ЗА ДОПОМОГОЮ БІБЛІОТЕКИ DIRECTX Підготував Студент групи КН-45 Матвісів Роман Ярославович Науковий керівник кандидат фізико-математичних наук, доцент Григорович Віктор Геннадійович

3D-МОДЕЛЮВАННЯ ЗАСОБАМИ C++ ЗА ДОПОМОГОЮ БІБЛІОТЕКИ DIRECTX

  • Upload
    -

  • View
    172

  • Download
    9

Embed Size (px)

Citation preview

Page 1: 3D-МОДЕЛЮВАННЯ ЗАСОБАМИ C++ ЗА ДОПОМОГОЮ БІБЛІОТЕКИ DIRECTX

1

3D-МОДЕЛЮВАННЯ ЗАСОБАМИ C++ ЗА

ДОПОМОГОЮ БІБЛІОТЕКИ DIRECTX

ПідготувавСтудент групи КН-45Матвісів Роман Ярославович

Науковий керівниккандидат фізико-математичних наук, доцентГригорович Віктор Геннадійович

Page 2: 3D-МОДЕЛЮВАННЯ ЗАСОБАМИ C++ ЗА ДОПОМОГОЮ БІБЛІОТЕКИ DIRECTX

2

Актуальність темиДля програмування швидкої і якісної 3D-графіки під

Windows потрібно використовувати спеціальну технологію, яка дає прямий доступ до відео-пам’яті, бо в якості програмної основи для роботи з графікою використовується інтерфейс GDI (Graphic Device Interface, інтерфейс графічних пристроїв), який не надає такої можливості.

На даний час DirectX і OpenGL – це дві передові технології. Технологія DirectX використовується лише для ОС Windows, а OpenGL працює у будь якому середовищі. Перевага DirectX полягає в дещо більшій функціональності. Тому вивчення і використання технології DirectX є достатньо актуальним.

При викладанні у школі стереометрії, учням потрібно наочно показувати приклади тривимірних фігур, щоб їм було зрозуміло і щоб вони краще засвоювали матеріал.

Дана програма моделює 3D-фігури і дозволяє змінювати і обчислювати їх параметри.

Page 3: 3D-МОДЕЛЮВАННЯ ЗАСОБАМИ C++ ЗА ДОПОМОГОЮ БІБЛІОТЕКИ DIRECTX

3

Мета роботи

Розробити систему 3D-моделювання засобами C++ з використанням технології DirectX.

Page 4: 3D-МОДЕЛЮВАННЯ ЗАСОБАМИ C++ ЗА ДОПОМОГОЮ БІБЛІОТЕКИ DIRECTX

4

Завдання роботи

Ознайомитися з методами побудови 3D-графіки за допомогою технології DirectX;

Створити ієрархію класів 3D-фігур;

Спроектувати програму, яка б моделювала 3D-фігури;

Створити зручний інтерфейс для вибору об’єкта моделювання і зміни його параметрів;

Програмно реалізувати систему, яка моделює фігури в 3D-просторі.

Page 5: 3D-МОДЕЛЮВАННЯ ЗАСОБАМИ C++ ЗА ДОПОМОГОЮ БІБЛІОТЕКИ DIRECTX

5

Об’єкт досліджень

Процеси формування, зберігання, опрацювання, та відтворення 3D-об’єктів.

Page 6: 3D-МОДЕЛЮВАННЯ ЗАСОБАМИ C++ ЗА ДОПОМОГОЮ БІБЛІОТЕКИ DIRECTX

6

Предмет досліджень

Потоки та структури даних, які виникають в процесі реалізації 3D-графіки засобами C++ за допомогою бібліотеки DirectX.

Page 7: 3D-МОДЕЛЮВАННЯ ЗАСОБАМИ C++ ЗА ДОПОМОГОЮ БІБЛІОТЕКИ DIRECTX

7

Засоби досліджень

• методи комп’ютерної геометрії,

• об’єктно-орієнтоване програмування,

• технологія DirectX,

• інструментарій MS Visual C++.

Page 8: 3D-МОДЕЛЮВАННЯ ЗАСОБАМИ C++ ЗА ДОПОМОГОЮ БІБЛІОТЕКИ DIRECTX

8

1. Аналітичний огляд існуючих аналогів

В даному підрозділі розглянуті три програми-аналоги, які моделюють тривимірні фігури:

•«Тіло оберту»;

•«3ds Max»;

•«КОМПАС-3D».

Page 9: 3D-МОДЕЛЮВАННЯ ЗАСОБАМИ C++ ЗА ДОПОМОГОЮ БІБЛІОТЕКИ DIRECTX

9

Рис. 1.1. Створення фігури для обертання Рис. 1.2. Тіло після обертання по осі OZ

1. Аналітичний огляд існуючих аналогів

Програма «Тіло оберту»

Page 10: 3D-МОДЕЛЮВАННЯ ЗАСОБАМИ C++ ЗА ДОПОМОГОЮ БІБЛІОТЕКИ DIRECTX

10

1. Аналітичний огляд існуючих аналогів

Програма «3ds Max»

Рис. 1.3. Інтерфейс програми 3ds Max

Page 11: 3D-МОДЕЛЮВАННЯ ЗАСОБАМИ C++ ЗА ДОПОМОГОЮ БІБЛІОТЕКИ DIRECTX

11

1. Аналітичний огляд існуючих аналогів

Програма «3ds Max»

Рис. 1.3. Інтерфейс програми 3ds Max

В меню є функція добавлення примітивних фігур стереометрії (рис 1.4.);

Page 12: 3D-МОДЕЛЮВАННЯ ЗАСОБАМИ C++ ЗА ДОПОМОГОЮ БІБЛІОТЕКИ DIRECTX

12

1. Аналітичний огляд існуючих аналогів

Програма «3ds Max»

Рис. 1.4. Вибір тривимірної фігури з набору

Рис. 1.5. Зображення фігури з вказаними параметрами

2. Можна вибрати любу фігуру, вказати її параметри і змоделювати (рис. 1.4.);

3. Можна змінювати параметри фігури (рис. 1.5.).

Page 13: 3D-МОДЕЛЮВАННЯ ЗАСОБАМИ C++ ЗА ДОПОМОГОЮ БІБЛІОТЕКИ DIRECTX

13

1. Аналітичний огляд існуючих аналогів

Програма «КОМПАС-3D»

Рис. 1.7. Добавлення прямокутникаРис. 1.8. Витискування куба

Page 14: 3D-МОДЕЛЮВАННЯ ЗАСОБАМИ C++ ЗА ДОПОМОГОЮ БІБЛІОТЕКИ DIRECTX

14

2. Технічне завдання та вибір платформи розробки

2.1. Постановка завданняЗавдання: розробити просту, зручну у використанні програму для

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

Програма моделювання тривимірних фігур повинна відповідати таким вимогам:

•зручність побудови і зміни параметрів 3D-об’єктів.•вибір 3D-об’єктів із списку існуючих.•параметри фігури повинні виводитися на екран і повинна бути можливість зміни параметрів.

Крім того, розроблений програмний продукт повинен задовольняти наступним вимогам:

•зручність у користуванні та моделюванні 3D- об’єктів.•зручність у зміні параметрів 3D- об’єктів.

Page 15: 3D-МОДЕЛЮВАННЯ ЗАСОБАМИ C++ ЗА ДОПОМОГОЮ БІБЛІОТЕКИ DIRECTX

15

2. Технічне завдання та вибір платформи розробки

2.2. Вибір мови програмування

Для реалізації ієрархії класів тривимірних фігур потрібна об’єктно-орієнтована мова програмування. C++ є повністю підходяща мова для реалізації даного програмного продукту.

Page 16: 3D-МОДЕЛЮВАННЯ ЗАСОБАМИ C++ ЗА ДОПОМОГОЮ БІБЛІОТЕКИ DIRECTX

16

2. Технічне завдання та вибір платформи розробки

2.3. Вибір середовища розробки та версії

Згідно технічного завдання я використав середовище Visual Studio С++ 2008 з використанням бібліотеки DirectX 9 для розробки програми.

Visual Studio С++ 2008 – є середовищем розробки програм, яке має все необхідне, для створення даного програмного продукту (зокрема, це ООП, для побудови ієрархії 3D-фігур, і DirectX SDK написаний на C++). Як відомо, середовище розробки великою мірою визначає ефективність роботи програміста. У середовищі програмування Visual Studio С++ 2008 є всі необхідні інструменти для того, щоб створювати повноцінні програми.

Page 17: 3D-МОДЕЛЮВАННЯ ЗАСОБАМИ C++ ЗА ДОПОМОГОЮ БІБЛІОТЕКИ DIRECTX

17

2. Технічне завдання та вибір платформи розробки

2.4. Порівняльний аналіз технологій OpenGL та DirectX

OpenGL та DirectX – це дві найпопулярніші технології, для програмування 3D-графіки.

Page 18: 3D-МОДЕЛЮВАННЯ ЗАСОБАМИ C++ ЗА ДОПОМОГОЮ БІБЛІОТЕКИ DIRECTX

18

Висновок

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