Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kursach.doc
Скачиваний:
35
Добавлен:
03.03.2016
Размер:
5.93 Mб
Скачать

РЕФЕРАТ

Курсовой проект: 106 страниц, 42 рисунка, 2 таблицы, 18 фомул, 15 матриц, 4 приложения.

Целью данной работы является приобретение практических навыков трёхмерного моделирования, а также разработка системы моделирования трёхмерных сцен, поддерживающей параметрические объекты и позволяющей производить простейшие преобразования над ними: перемещение, вращение, масштабирование, отражение, сдвиг.

На данном этапе разработки реализуемый программный продукт может применяться для демонстрации возможностей графической библиотеки OpenGL, а в случае его усовершенствования, может быть использован в качестве программы для моделирования несложных 3D-объектов. Это станет возможным при наличии в программе возможности создания любых базовых графических примитивов и их модификаций, а также при наличии различных эффектов (например, затенения, отражения и пр.) и нескольких видов проецирования.

ПРОГРАММА, МОДЕЛЬ, АЛГОРИТМ, ГРАНЬ, РЕБРО, МАТРИЦА, АФИННЫЕ ПРЕОБРАЗОВАНИЯ, ОДНОРОДНЫЕ КООРДИНАТЫ, ГРАФИЧЕСКАЯ БАЗА ДАННЫХ, ИНТЕРФЕЙС, ИНТЕРАКТИВНОСТЬ

ДО80404.1.01.08/086.КП

Фамилия

Под.

Дата

Разраб.

Билык Н.О.

Система трехмерного графического моделирования на основе библиотеки OpenGL. Параметрическая модель сложного трехмерного объекта : « робот-краб»

Литера

Лист

Листов

Рук. Пр.

Ручкин К.А.

у

3

80

Консульт.

Пчелкин В.Н.

ГУИИИ

каф. СИИ

Н. контроль

Пчелкин В.Н.

Зав. каф.

Вороной С.М.

СОДЕРЖАНИЕ

Введение

7

1 Постановка задачи

8

1.1 Цель создания

8

1.2 Область применения

8

1.3 Актуальность разработки

8

1.4 Постановка задачи

8

1.5 Сравнительный анализ существующих графических библиотек

9

1.5.1 Библиотека Microsoft DirectX

9

1.5.2 Пакет графического моделирования OpenGL

9

2 Обоснование использования OpenGL

10

3 Анализ графических и геометрических методов

11

3.1 Системы координат

11

3.1.1 Декартова система координат

11

3.1.2 Векторная система координат

12

3.1.3 Аффинная система координат

12

3.1.4 Однородные координаты точки

12

3.2 Аффинные преобразования в пространстве

13

3.2.1 Преобразование переноса

13

3.2.2 Преобразование поворота

14

3.2.3 Преобразование масштабирования

15

3.2.4 Преобразования отражения

16

3.2.5 Преобразования сдвига

16

3.3 Проецирование. Виды проецирования

17

3.3.1 Параллельное ортографическое проецирование

18

3.3.2 Изометрическое проецирование

19

3.3.3 Диметрическая проекция

20

3.4 Модели представления объектов

20

3.5 Управление камерой

21

3.5.1 Мировая и локальная системы координат

21

3.5.2 Модель камеры

21

3.5.3 Типичные преобразования капер

22

3.6 Методы удаления невидимых граней

22

3.6.1 Алгоритм Z-буфера

22

3.6.2 Алгоритм художника

23

3.7 Закраска граней

23

4 Описание геометрических моделей объектов

24

4.1 Геометрическая модель куба

24

Разработал

Фамилия

Подпись

Дата

ДО80404.1.01.08/086.КП

Лист

ст.гр. ИС-08а

Билык Н.О.

4

4.2 Геометрическая модель сферы

25

4.3 Геометрическая модель полусферы

25

4.4 Геометрическая модель треугольной косоугольной призмы

26

4.5 Геометрическая модель призмы с треугольным основанием

27

4.6 Модель эллипсоида

27

4.7 Геометрическая модель косоугольного конуса

28

4.8 Геометрическая модель пирамиды с пятиугольным основанием

29

4.9 Геометрическая модель усечённой пирамиды с трёугольным основанием

30

4.10 Моделирование икосаэдра

31

4.11 Геометрическая модель додекаэдра

32

5 Построение геометрической и математической модели

34

5.1 Физическая модель

34

5.2 Параметрическая модель объекта

34

5.3 Построение примитивов

35

6 Описание программной реализации

38

6.1 Структуры данных для хранения параметрических объектов

38

6.2 Структуры данных для камеры

38

6.3 Структуры данных для источников света

39

6.4. Описание внутреннего формата графической БД

40

6.5 Описание формата файла хранения сцены

40

6.6 Описание программных моделей

40

6.7 Описание основных процедур и функций

41

6.8 Описание использованных функций OpenGL

42

6.9 Реализация аффинных преобразований

43

6.10 Описание структуры программы в виде блок-схемы

43

7 Проведение тестовых испытаний

45

Заключение

46

Список использованной литературы

47

Приложение А – Техническое задание

48

Приложение Б – Руководство пользователя

53

Приложение В – Экранные формы

56

Приложение Г – Листинг программы

Разработал

Фамилия

Подпись

Дата

ДО80404.1.01.08/086.КП

Лист

ст.гр. ИС-08а

Билык Н.О.

5

перечень обозначений, символов, единиц

сокращений и терминов

MS – Microsoft

мб – мегабайт

ос – операционная система

ЭВМ – Электронно–вычислительная машина

БД – База данных

МСК – мировая система координат

ЛСК – локальная система координат

Разработал

Фамилия

Подпись

Дата

ДО80404.1.01.08/086.КП

Лист

ст.гр. ИС-08а

Билык Н.О.

6

Введение

В настоящее время применение компьютеров во всех сферах деятельности человека значительно увеличивается. Теперь в какой бы области вы не работали, вам обязательно придется столкнуться с ЭВМ. Одним из бурно развивающихся направлений применения ЭВМ является трёхмерное моделирование. Ещё несколько десятилетий назад никто не мог и представить себе, что с помощью компьютера будет возможно визуально воспроизвести элементы окружающей действительности. В наши дни технологии трёхмерного моделирования позволяют не только увидеть изображение того или иного объекта на экране монитора, но и посмотреть на объект в движении, с разных ракурсов. Более того, изображения получаются настолько реалистичными, что при создании кинофильмов элементы трёхмерного моделирования на ЭВМ великолепно вписываются в съемки реального мира.

Компьютерная графика используется во многих отраслях, как научных, то есть при проектировании различных систем или механизмов, так и сфере бизнеса - для создания различного рода рекламных роликов, и индустрии развлечений -для создания разнообразных игр, спецэффектов. Она широко применяется в фильмах, математике, физике. Программа, работающая с трёхмерной графикой, рассчитывает математическую модель изображаемой сцены, преобразуя её к двумерной картине для вывода на плоский монитор, поэтому можно задать закон изменения координат объекта либо самого объекта. Именно такой подход позволяет создавать спецэффекты для фильмов, рисовать произвольные поверхности, изображать движение физической модели.

Данный курсовой проект – реализация основных операций, необходимых для работы с объемными изображениями. В нем реа­лизованы три ортогональных проекции и одна изометрическая, основные ви­довые операции и некоторые операции над объ­ектами. Всё это очень важно для познания методов представления 3D-графики и качественного и эффективного использования её в графическом и геометрическом моделировании в информационных системах.

1 Постановка задачи

1.1 Цель создания

Целью создания проекта является приобретение практических навыков трёхмерного графического моделирования, а так же разработка системы моделирования трехмерных сцен поддерживающей параметрические объекты и позволяющей производить простейшие преобразования над ними: перемещение, вращение, масштабирование, отражение, сдвиг.

1.2 Область применения

Данный проект может быть использован для демонстрации работы основных алгоритмов построения и визуализации трёхмерных моделей простейших геометрических объектов.

1.3 Актуальность разработки

Задача построения трёхмерных моделей решалась не раз. Примером этому могут служить такие известные пакеты как 3D Studio Max, Maya и AutoCAD. Безусловно, они предоставляют гораздо более широкий круг функциональных возможностей, чем данный проект, но в то же время для использования только в демонстрационных целях они занимают слишком много места на жестком диске и ресурсов системы.

1.4 Постановка задачи

Основной задачей разработки является разработка и реализация с помощью библиотеки OpenGL системы трехмерного графического моделирования, поддерживающей несколько типов параметрических объектов и видов проецирования, позволяющей просматривать композиции данных объектов с разных ракурсов и проводить их визуализацию с использованием различных методов.

Систему трехмерного графического моделирования должна обладать следующей функциональностью:

  • Создание параметризованных 3d объектов и занесение их в графическую бд;

  • задание точных параметров объектов с клавиатуры;

  • выбор типа проецирования для видовой операции;

  • реализация типичных операций управления “камерой” при визуализации;

  • возможность редактирования и манипулирования объектами;

  • возможность сохранения сцены в файле.

1.5 Сравнительный анализ существующих графических библиотек

На современном этапе развития систем по обработке компьютерной графики существует несколько методов по визуализации на экране компьютера графических объектов. Рассмотрим три основных метода: программный, использование библиотеки OpenGL и библиотеки DirectX.

1.5.1 Библиотека Microsoft DirectX

Библиотека Microsoft DirectX является наиболее динамично развивающейся и полнофункциональной.

Ее преимущества:

- поддержка со стороны операционной системы Microsoft Windows;

- набор методов DirectInput, DirectPlay, DirectSound, DirectDraw, позволяющих не только выводить графику, но и обрабатывать ввод данных со стороны пользователя, обрабатывать звуковую информацию, а также производить обмен данными по компьютерной сети.

- Основными недостатками этой библиотеки являются:

моноплатформенность;

- не очень сильная аппаратная поддержка со стороны графических процессоров;

- абсолютная коммерциализация всех продуктов корпорации Microsoft.

1.5.2 Пакет графического моделирования OpenGL

Библиотека OpenGL представляет собой интерфейс программирования трехмерной графики. Единицей информации является вершина, из них состоят более сложные объекты. Программист создает вершины, указывает как их соединять (линиями или многоугольниками), устанавливает координаты и параметры камеры и ламп, а библиотека OpenGL берет на себя работу создания изображения на экране.. Используя OpenGL легко создать трехмерные поверхности, наложить на них текстуры, осветить источниками света, сделать эффект тумана, прозрачности, смешивания цветов, а также наложить трафарет, передвигать объекты сцены, лампы и камеры по заданным траекториям, сделав, тем самым, анимацию. Для работы с устройствами ввода, такими как клавиатура или мышь, можно задействовать функции конкретной операционной системы, под которую пишется программа, или воспользоваться надстройками над OpenGL, такими как библиотеки GLUT или GLAUX.

В различных видеокартах по разному реализованы функции по обработке данных. Часть из них лучше работает с интерфейсом OpenGL, часть – DirectX. Большинство производителей видеокарт обеспечивают аппаратную поддержку как можно большего числа функций. Но, так как спецификация библиотеки OpenGL абсолютно открыта, то реализация чисто OpenGL-алгоритмов часто оказывается лучше, чем алгоритмов DirectX.

2 ОБОСНОВАНИЕ ИСПОЛЬЗОВАНИЯ OPENGL

Графический стандарт OpenGL, разработан и утвержден в 1992 году девятью ведущими фирмами, среди которых Digital Equipment Corporation, Evans & Sutherland, Hewlett–Packard Co., IBM Corp., Intel Corp., Intergraph Corp., Silicon Graphics, Inc., Sun Microsystems Inc. В осно­ву стандарта была положена библиотека IRIS GL, разработанная Silicon Graphics. Это достаточно простая в изучении и использовании графическая система, обладающая при этом поразительно широкими возможностями. Вот только некоторые из ее достоинств:

- Стабильность. OpenGL устоявшийся стандарт, действующий уже девятнадцать лет. Все вносимые в него изменения предварительно анонсируются и реали­зуются таким образом, чтобы гарантировать нормальную работу уже на­писанного программного обеспечения.

- Надежность. Все приложения, использующие OpenGL, гарантируют оди­наковый визуальный результат вне зависимости от используемого обору­дования и операционной системы.

- Переносимость. Для запуска OpenGL-приложения необходима лишь его компиляция под конкретную платформу без изменения OpegGL-части кода.

- Простота использования. OpenGL хорошо структурирована. Ее драйверы включают информацию об основном оборудовании, освобождая разра­ботчика приложения от необходимости проектирования для специфиче­ских особенностей графических устройств. Команды OpenGL обеспечи­вают необходимый баланс между необходимыми функциональными возможностями и гибкостью. Каждая команда OpenGL строго придержи­вается опубликованной спецификации, сохраняя драгоценный цикл раз­работки, который теряется при работе с другим, менее удачно спроекти­рованным интерфейсом.

Альтернативой библиотеке OpenGL являются разработанные компанией Microsoft библиотеки DirectShow и DirectDraw, входящие в состав DirectX. В отличие от OpenGL DirectX не является свободно распространяемой библиотекой и не обеспечивает переносимости приложений, т.к. разработана исключительно для операционных систем Microsoft Windows.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]