Введение. 6
1. Общая часть. 9
1.1. Цель разработки. 9
1.2. Анализ средств программирования. 9
1.2.1. Обзор методов решения. 11
1.2.2. Описание языка. 15
1.2.3. Общие сведения. 16
1.2.4. Способы структурирования. 18
1.2.5. Дополнительные средства языка. 20
2. Специальная часть 23
2.1. Постановка задачи. 23
2.1.1. Цель работы 23
2.1.2. Задачи работы 24
2.1.3. Объект исследования 24
2.1.4. Предмет исследования 24
2.1.5. Требования к программе. 24
2.2. Описание алгоритма 25
2.2.1. UML диаграмма 25
2.3. Описание программы. 26
2.3.1. Описание структуры программы 26
2.3.2. Организация данных в программе. 28
2.3.3. Функции модулей. 42
2.3.4. Технико-математическое описание задачи. 52
2.4. Инструкция пользователя 54
2.4.1. Как работать с программным комплексом 54
2.4.2. Как использовать программный комплекс в собственном проекте 54
2.4.3. Запуск exe-файла 55
3. Заключение 55
4. Список используемых источников 56
5. Приложения
С развитием информационных технологий большую роль в разработке программных продуктов стали играть средства по их реализации. К таким средствам относятся языки программирования, Фреймворки, библиотеки и любые друге компоненты, позволяющие повысить скорость разработки и снизить затраты на обучение. Каждый год появляются новые средства разработки более высокого уровня дающие возможности программировать, углубляясь все меньше в сложные низкоуровневые конструкции тех или иных средств. Разработка программных продуктов используя высокоуровневые средства позволяет довольно сильно экономить на времени разработки уделяя при этом больше времени проектированию абстрактных высокоуровневых систем тем самым позволяя создавать более логически сложные и продуманные системы поднимая уровень программного продукта на более высокий уровень.
Среди множества программных средств, разработанных на данный момент есть область, затрагивающая работу с графикой. Такие средства чаще всего позиционируют себя как графические движки. Графический движок — это как правило промежуточное программное обеспечение основной задачей которого является визуализация двухмерной или трехмерной графики. Данная область держится на дорогостоящих средствах, разработанных производителями графических процессоров и других аппаратных средств. Есть так же и средства, работающие с графикой разработанные менее известными компаниями, но даже такие средства не уступают в цене брендовым высокобюджетным продуктам. Данные программные продукты не являются высокоуровневыми средствами и для того чтобы использовать данные средства нужны глубокие теоретические познания в области работы с графикой.
Среди графического промежуточного программного обеспечения можно выделить более полноценные и еще более узконаправленные средства программирования графических приложений таких как игровые движки. В основном игровые движки можно отнести к области разработки графических приложений, но не всегда так как например существуют такие игровые движки в которых отсутствует графический модуль и как его еще принято называть графический движок. Игровой движок — это как правило средство или центральный программный компонент компьютерных видеоигр включающий в себя некоторых набор модулей по работе с графикой, физикой, звуками, анимацией, сетевой составляющей и др. Графический движок является высокоуровневым средством разработки графических приложений, в основном направленных на игровую тематику. Да некоторые игровые движки предоставляют возможность разрабатывать программные продукты, не связанные с играми, но таких движков единицы. К тому же чем сильнее развит игровой движок, тем сильнее он связывает себя с разработкой только программных продуктов игровой тематики. Игровые движки не являются бесплатным или даже дешевым программным продуктом так как на создание игрового движка могут быть затрачены годы усилий и огромные суммы денег.
На рынке много средств по работе с графикой большинство из них дорогостоящие либо узконаправленные, либо и то и то вместе. Так же большинство графических движков, входящих в средства по работе с графикой представляют собой низкоуровневые средства, которые требуют много времени по изучению или простыми словами в них слишком высок порог вхождения, а игровые движки чаще всего не предоставляют возможность разрабатывать программные продукты, не представляющие собой игры. Следовательно, актуальность моей дипломной работы заключается в том, чтобы устранить дефицит средств по высокоуровневой разработке графических приложений с небольшой стоимостью за лицензию.
По итогу выполнения дипломной работы должно быть реализовано средство для разработки графических приложений основанное на рендере реального времени что позволяет разрабатывать именного графические приложения, а не приложения, работающие с графикой так же средство должно содержать в себе некий инструментарий упрощающий работу с графическими данными. Средство не должно быть самостоятельным, то есть работающим вне проекта разработчика, а должно быть подключаемым компонентом, расширяющим возможности по работе с графикой.
Для реализации поставленной задачи необходимо проанализировать рынок программных продуктов по разработке графических приложений, систематизировать программные продукты по областям применения, изучить низкоуровневые средства по работе с графикой, разработать программный продукт по разработке графических приложений.
Во время выполнения дипломной работы были использованы такие методы исследования как:
• Анализ литературы.
• Моделирование.
• Сравнение.
• Изучение и обобщение зарубежной практики.
• Анализ нормативно-правовой документации по теме дипломной.
Во время выполнения работы был спроектирован и разработан программный комплекс, представляющий собой средство для разработки графических приложений, выполненное в форме подключаемой статической библиотеки.
Работа выполнена на языках программирования C++, HLSL и графическом API DirectX 9c.
Все поставленные задачи в проекте были выполнены из них можно выделить четыре глобальные такие как: Реализация менеджера управления всеми данными по ходу проектирования ПО, разработка модуля ввода данных в программу, разработка модуля по выводу данных из программы и разработка модуля хранения данных.
В результате выполнения работы были освоены новые навыки в области работы с 3d/2d графикой.
1. Статья: Двадцать лет спустя. Эволюция API Miccrosoft DirectX. Ссылка: “http://www.ferra.ru/ru/system/review/directX-evolution/#.V2KUeyiLTcs”. Дата обращения 21.06.2016.
2. Учебный материал: Основы программирования для Win32 API. Ссылка: “http://dims.karelia.ru/win32/”. Дата обращения 21.06.2016.
3. Учебный материал по работе со звуковой библиотекой XAudio2. Автор Jay
Tannant. Ссылка: “http://www.win32developer.com/tutorial/xaudio/
xaudio_tutorial_1.shtm”. Дата обращения 21.06.2016.
4. Статья: Программирование звука с использованием XAudio2. Ссылка: “http://www.gamedev.ru/code/articles/XAudio2”. Дата обращения 21.06.2016.
5. Учебный материал по использованию скелетной анимации в файлах формата COLLADA. Ссылка: “http://www.wazim.com/Collada_Tutorial_1.htm”. Дата обращения 21.06.2016.
6. Книга: Begininng XNA 2.0 Game Programming Form Novice to Professionl. Авторы: Александр Лобао, Бруно Евангелиста, Жозе Антонио Лил де Фариас
7. Учебный материал по работе со скелетной анимацией. Ссылка: “http://graphics.ucsd.edu/courses/cse169_w05/2-Skeleton.htm”. Дата обращения 21.06.2016.
8. Книга: Shaders for Game Programmers and Artists. Автор: Sebastien St-Laurent.
9. Книга: Advanced Animation with DirectX. Автор Jim Adams.
10. Книга: DirectX 9 уроки программирования на C++. Автор Станислав Горнаков.
11. Книга: DirectX 10 - это просто. Программируем графику на С++. Автор Алексей Попов.
12. Статья: COLLADA Parser своими руками. Ссылка:
“http://yvision.kz/post/135548”. Дата обращения 21.06.2016.
13. Статья: OpenGL и DirectX: взгляд изнутри. Ссылка:
“http://cgm.computergraphics.ru/content/view/55”. Дата обращения 21.06.2016.
14. Книга: Программирование графики GDI+ DirectX. Авторы Виталий Брусенцев, Алексей Поляков.
15. Книга: DirectX и C++. Искусство программирования. Автор Фленов Михаил.