Слайд 2
Введение
В настоящее время применение компьютеров во всех сферах
деятельности человека значительно увеличивается. Теперь в какой бы области
вы не работали, вам обязательно придется столкнуться с ЭВМ. Одним из бурно развивающихся направлений применения ЭВМ является трёхмерное моделирование. Ещё несколько десятилетий назад никто не мог и представить себе, что с помощью компьютера будет возможно визуально воспроизвести элементы окружающей действительности. В наши дни технологии трёхмерного моделирования позволяют не только увидеть изображение того или иного объекта на экране монитора, но и посмотреть на объект в движении, с разных ракурсов. Более того, изображения получаются настолько реалистичными, что при создании кинофильмов элементы трёхмерного моделирования на ЭВМ великолепно вписываются в съемки реального мира.
Компьютерная графика используется во многих отраслях, как научных, то есть при проектирвании различных систем или механизмов, так и сфере бизнеса - для создания различного рода рекламных роликов, и индустрии развлечений -для создания разнообразных игр, спецэффектов. Она широко применяется в фильмах, математике, физике. Программа, работающая с трёхмерной графикой, рассчитывает математическую модель изображаемой сцены, преобразуя её к двумерной картине для вывода на плоский монитор, поэтому можно задать закон изменения координат объекта либо самого объекта. Именно такой подход позволяет создавать спецэффекты для фильмов, рисовать произвольные поверхности, изображать движение физической модели.
Данный дипломный проект – реализация основных операций, необходимых для работы с объемными изображениями. В нем реализованы три ортогональных проекции и одна изометрическая, основные видовые операции и некоторые операции над объектами. Всё это очень важно для познания методов представления 3D-графики и качественного и эффективного использования её в графическом и геометрическом моделировании в информационных системах.
Слайд 3
1 ПОСТАНОВКА ЗАДАЧИ
1.1 Цель создания
Целью создания проекта является приобретение практических навыков трёхмерного
графического моделирования, а так же разработка системы моделирования трехмерных сцен поддерживающей параметрические объекты и позволяющей производить простейшие преобразования над ними: перемещение, вращение, масштабирование, отражение, сдвиг.
1.2 Область применения
Данный проект может быть использован для демонстрации работы основных алгоритмов построения и визуализации трёхмерных моделей простейших геометрических объектов.
1.3 Актуальность разработки
Задача построения трёхмерных моделей решалась не раз. Примером этому могут служить такие известные пакеты как Maya и AutoCAD. Безусловно, они предоставляют гораздо более широкий круг функциональных возможностей, чем данный проект, но в то же время для использования только в демонстрационных целях они занимают слишком много места на жестком диске и ресурсов системы.
1.4 Постановка задачи
Основной задачей разработки является разработка и реализация с помощью библиотеки OpenGL системы трехмерного графического моделирования, поддерживающей несколько типов параметрических объектов и видов проецирования, позволяющей просматривать композиции данных объектов с разных ракурсов и проводить их визуализацию с использованием различных методов.
Слайд 4
Система трехмерного графического моделирования должна обладать следующей функциональностью:
создание
параметризованных 3D объектов и занесение их в графическую БД;
задание
точных параметров объектов с клавиатуры;
выбор типа проецирования для видовой операции;
реализация типичных операций управления “камерой” при визуализации;
возможность редактирования и манипулирования объектами;
возможность сохранения сцены в файле.
Сравнительный анализ существующих графических библиотек
На современном этапе развития систем по обработке компьютерной графики существует несколько методов по визуализации на экране компьютера графических объектов. Рассмотрим три основных метода: программный, использование библиотеки OpenGL и библиотеки DirectX.
Библиотека Microsoft DirectX
Библиотека Microsoft DirectX является наиболее динамично развивающейся и полнофункциональной.
Ее преимущества:
- поддержка со стороны операционной системы Microsoft Windows;
- набор методов DirectInput, DirectPlay, DirectSound, DirectDraw, позволяющих не только выводить графику, но и обрабатывать ввод данных со стороны пользователя, обрабатывать звуковую информацию, а также производить обмен данными по компьютерной сети.
- Основными недостатками этой библиотеки являются:
моноплатформенность;
- не очень сильная аппаратная поддержка со стороны графических процессоров;
- абсолютная коммерциализация всех продуктов корпорации Microsoft.
Слайд 5
Пакет графического моделирования OpenGL
Библиотека OpenGL представляет собой интерфейс
программирования трехмерной графики. Единицей информации является вершина, из них
состоят более сложные объекты. Программист создает вершины, указывает как их соединять (линиями или многоугольниками), устанавливает координаты и параметры камеры и ламп, а библиотека OpenGL берет на себя работу создания изображения на экране.. Используя OpenGL легко создать трехмерные поверхности, наложить на них текстуры, осветить источниками света, сделать эффект тумана, прозрачности, смешивания цветов, а также наложить трафарет, передвигать объекты сцены, лампы и камеры по заданным траекториям, сделав, тем самым, анимацию. Для работы с устройствами ввода, такими как клавиатура или мышь, можно задействовать функции конкретной операционной системы, под которую пишется программа, или воспользоваться надстройками над OpenGL, такими как библиотеки GLUT или GLAUX.
В различных видеокартах по разному реализованы функции по обработке данных. Часть из них лучше работает с интерфейсом OpenGL, часть – DirectX. Большинство производителей видеокарт обеспечивают аппаратную поддержку как можно большего числа функций. Но, так как спецификация библиотеки OpenGL абсолютно открыта, то реализация чисто OpenGL-алгоритмов часто оказывается лучше, чем алгоритмов DirectX.
Слайд 6
ПОШАГОВОЕ ПОСТРОЕНИЕ МОДЕЛИ СЛОЖНОГО ОБЪЕКТА
Декомпозиция сложного объекта
Моделью
сложного трехмерного объекта, согласно заданию, является модель робота-краба, которая
состоит из таких базовых примитивов как: эллипсоид, икосаэдр, призма с треугольным основанием, сфера, косоугольный цилиндр, усеченная пирамида с треугольным основанием, полусфера, косоугольная призма с треугольным основанием.
Модель робота-краба состоит из лап (призма с треугольным основанием, икосаэдр, усеченная пирамида с треугольным основанием), лап (косоугольный цилиндр) с клещнями (косоугольная призма с теугольным основанием), глаз (сфера), тело (полусфера, элипсоид).
Слайд 7
Структуры данных для хранения параметрических объектов
В данном курсовом
проекте описаны классы, упрощающие работу с 3D-примитивами, информационной частью
данных классов являются структуры данных, хранящие параметры объектов. Иерархия данных классов описывается диаграммой на рисунке ниже.
Слайд 8
Описание внутреннего формата графической БД
Графическая база данных реализуемого
программного продукта организована в виде набора структур данных, содержащих
параметры графических примитивов, камеры и источников. К операциям, осуществимым над графической базой данных, относятся добавление, удаление и поиск графических примитивов, а также изменение их параметров.
Описание формата файла хранения сцены
Файл, содержащий параметры сцены имеет формат, показанный на таблице
В таблице приведено описание формата файла хранения сцены
Слайд 9
Описание программных моделей
Для удобства построения системы трехмерного графического
моделирования программа была разбита на следующие модули:
-
KP.cpp – главный программный модель;
- globals.h – файл, содержащий описание глобальных переменных, доступных из всех программных модулей;
- glsetup.h – файл, содержащий подпрограммы, служащие для установки матриц проекций и областей просмотров;
- primitives.h – файл, содержащий описание протоколов и реализации классов, упрощающих работу с графическими примитивами;
- light.h – файл, содержащий описание протоколов и реализации классов, упрощающих работу с источниками света;
- camera.h – файл, содержащий описание протокола и реализацию классоа, упрощающего работу с камерой;
- drawscene.h - файл, содержищий подпрограммы отрисовки сцены;
- mainwnd.h - файл, содержищий описание функций для работы с главным окном программы;
- panel.h – файл, содержищий описание функций для работы с панелью управления в главном окне программы;
- panel_aff_aj.h, panel_camera.h, panel_light.h, panel_primitives.h, panel_scene.h – модули, касающиеся построения интерфейса программы, содержащие реализацию подпрограмм, описывающих поведение диалоговых панелей, позволяющих пользователю изменять параметры камеры, графических примитивов, источников света и сцены, а также осуществлять аффинные преобразования.
Слайд 10
Взаимосвязь программных модулей
Слайд 11
ЗАКЛЮЧЕНИЕ
В результате работы над курсовым проектом была создана
интерактивная система трехмерного графического моделирования в пространстве таких объектов
как: сфера, полусфера, икосаэдр, призма с треугольным основанием, усеченная пирамида с треугольным основанием, косоугольная призма с треугольным основанием, эллипсоид, косоугольный цилиндр. В ходе реализации проекта были рассмотрены аффинные преобразования как методы выполнения преобразований над объектами в пространстве. Реализована возможность сохранение сцены в файл. Результаты тестирования показали, что программа удовлетворяет предъявленным в постановке задания требованиям.
В дальнейшем КП может быть модернизирован и улучшен в соответствии с нововведенными требованиями.