Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПЗ2-v004.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
609.7 Кб
Скачать

ФЕДЕРАЛЬНОЕ АГЕНСТВО ОБРАЗОВАНИЯ

ПЕНЗЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

Кафедра САПР

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

к курсовой работе

по курсу «Инженерная и компьютерная графика»

на тему «Разработка интерактивной программы, реализующей процесс построения и визуализации 3D объекта/сцены с элементами динамики на основе графической библиотеки стандарта OpenGL»

Выполнил:

студент группы 11ВВ1

Барабаш К.О.

Принял:

Финогеев А.A.

Пенза 2012

СОДЕРЖАНИЕ

Введение 4

1. Исходные данные на проектирование 5

2. Выбор решения 6

2.1. Определение модулей программы 6

2.2. Создание и редактирование модели заданного объекта средствами Blender 6

3. Библиотека OpenGL 9

4. Схема программы 12

4.1. Схема работы приложения 12

4.3. Схема работы приложения в среде Windows 14

4.4. Алгоритм загрузки модели obj 15

5. Описание программы 16

5.1. Описание функций и структур программы 16

5.2. Функциональная структура программы 20

Заключение 23

Литература 24

Приложения 25

Приложение 1. Листинг программы 25

Приложение 2. Скриншоты работающей программы 36

Введение

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

Компьютерная графика проникает и в другие сферы повседневной жизни. Например, дизайн помещений, мебели; диагностирование и проведение операций в больницах, в лётных тренажерах и т.д. Также трудно представить современное кино без спецэффектов, большая часть из которых делается с помощью 3d библиотек.

OpenGL (Open Graphics Library — открытая графическая библиотека, графическое API) — спецификация, определяющая независимый от языка программирования платформонезависимый программный интерфейс для написания приложений, использующих двухмерную и трёхмерную компьютерную графику.

OpenGl включает более 250 функций для рисования сложных трёхмерных сцен из простых примитивов. Используется при создании компьютерных игр, САПР, виртуальной реальности, визуализации в научных исследованиях. На платформе Windows конкурирует с Direct3D.

Мы приходим к выводу, что в современном обществе трудно найти сферы творческой и познавательной деятельности, в которых, не участвуют различные 3d спецэффекты. Но чтобы устройство стало приносить пользу, оно должно выполнять ряд действий для записи которых и служит программа. Мы медленно подошли к теме данной курсовой работы.

Программа, разрабатываемая в рамках данной курсовой работы, называется «Obj.exe», которая выводит 3d-сцену с бутылкой газировки. Программа написана на языке С++ в среде разработки Microsoft Visual C++ 2010 с использованием библиотеки OpenGL.

1. Исходные данные на проектирование

Разработка графической программы визуализации 3D модели и фона и использованием библиотеки OpenGL на языке программирования СИ, для реализации процесса динамики объекта, освещения, фона и камеры в трехмерной сцене.

Объект моделирования : 3D модель реального объекта – бутылка с газировкой.

2. Выбор решения

2.1. Определение модулей программы

Каждый модуль отвечает за набор определенных действий:

  1. main.cpp (инициализация окна, сама программа)

  2. model.h (заголовки для создания класса модели)

  3. obj.cpp (функции загрузки и вывода .obj модели на экран)

  4. obj.h (связь всех файлов исходного кода в один проект)

  1. model.h

  1. obj.h

main.cpp

obj.cpp

Данные

Рисунок 1 - Структура модулей программы

2.2. Создание и редактирование модели заданного объекта средствами Blender

Еще недавно до возникновения 3d-графики и широкому ее применению в компьютерных играх, играх для телефонов или телевизионных приставок, в художественных фильмах и мультипликации, использовалась 2d-графика, и так было до начала 90-х годов. В основу 2d-графики, исходя из названия, заложена двухмерная графика, которая и определяется двумя координатами – X и Y, и впоследствии в таком виде и выводится на экран. При этом не имеет особого значения в каких единицах измерения будут выражены переменные.

Как уже можно догадаться, по названию 3d графика, или иначе трехмерная графика, немного сложнее, потому, что задается тремя координатами X,Y,Z. Так же единицы измерения переменных особой роли не играют.

Исторически сложилось, что 3d-графика, первоначально создавалась для получения спецэффектов в фильмах жанра фантастика и фэнтези, яркими примерами служат фильмы «Терминатор» и «Бесконечная история», несколько позже 3d-графику стали применять в мультипликации.

Теперь с развитием всемирной сети Интернет такая графика используется не только в играх, кинематографии и мультипликации, но и на многих других web-ресурсах.

Н овые технологии вошли в наш дом: кто-то ими пользуется, кто-то создаёт, а кто-то и зарабатывает на этом. Что же необходимо сделать, чтобы зарабатывать на 3d-графике?

Рисунок 2 – Пример окна программы Blender

С учетом того, что трехмерная графика позволяет создавать всевозможные «объемные» картинки, ролики, спецэффекты, а также анимацию, то с помощью этих средств можно неплохо зарабатывать. При этом не нужно быть прирожденным художником и иметь талант к исскуству, все намного проще. Благодаря развитию программного обеспечения для компьютеров, существует огромное множество программ, которые могут помочь, или даже практически самостоятельно изготовить необходимую «объемную» картинку или какой-нибудь видеоролик. Одна из таких программ – бесплатный пакет 3d моделирования Blender.

  • В программе Blender объект (сущность, взаимодействующая с окружающим миром) и его данные (форма или функции объекта) разделяемы. Отношение Объект-Данные представляется отношением 1:n (термин, относящийся к теории баз данных, обозначает возможность нескольких объектов использовать одни и те же данные — один ко многим или сюрьекция) и динамически связаны между собой, позволяя использовать некоторые процессы быстрого моделирования, уникальные для Blender.

  • Внутренняя файловая система, позволяет хранить несколько сцен в едином файле (называемом .blend файл).

  • Все «.blend» файлы совместимы как с более старыми, так и с более новыми версиями Blender. Так же все они переносимы с одной платформы на другую и могут использоваться как средство переноса созданных ранее работ.

  • Blender делает резервные копии проектов во время всей работы программы, что позволяет сохранить данные при непредвиденных обстоятельствах.

  • Все сцены, объекты, материалы, текстуры (только собственные, не импортированные), звуки, изображения, post-production эффекты могут быть сохранены в единый «.blend» файл.

  • Настройки рабочей среды могут быть сохранены в «.blend» файл, благодаря чему при загрузке файла получится именно то, что сохранили в нем. Файл можно сохранить как «пользовательский по умолчанию», и каждый раз при запуске Blender получается необходимый набор объектов и подготовленный к работе интерфейс.