Пензенский
государственный университет
Кафедра
"Информационно-вычислительные системы"
Разработка приложения с использованием
OpenGL для динамического изображения трехмерной
модели изображения
Пояснительная
записка к курсовому проекту по дисциплине
«Компьютерная
графика»
Выполнил: ст-т
гр.
Проверил:
доцент каф. ИВС
2014
Содержание
Введение ……………………………………………………………………..….…..
5
1 Анализ
предметной области …………………………………………………...
6
2 Техническое
задание ………….………………………………..………………...7
2.1 Основание для разработки ……................……………………………….7
2.2 Назначение разработки ………………...…………………………………7
2.3 Требования к программе ……………………………………………………7
2.3.1 Требования к функциональным
характеристикам ……….……..7
2.3.2 Требования к составу и параметрам
технических средств…...... 7
2.3.3 Требования к информационной
и программной совместимости… 8
2.4 Требования к программной документации……….…………………
......8
3. Описание
программы ……….………………………………………………….9
3.1 Общие сведения ………………..………… ...................................................9
3.2 Функциональное назначение.………………………………………..…....
9
3.3 Описание логической структуры…………………………………..….….
9
3.4 Используемые технические средства…………………………….….........11
3.5 Вызов и загрузка…………………………………....................................11
4. Описание
программы ……….…………………………..………………….…12
4.1 Объект испытаний ……..……………………..……………………...........12
4.2 Цель испытаний.………………………………..........................................12
4.3 Требования к программе…………….…………….…….
........................12
4.4 Требования к программной документации……………..………………..12
4.5 Средства и порядок испытаний……….……….…….
…….....................12
5. Описание
применения……............................................................................14
5.1 Назначение программы...……………..………………..…………………
14
5.2 Условия применения…………….……………….....................................14
5.3 Описание задачи…….……. ....................................................................14
5.4 Входные и выходные данные………………...........................................14
Заключение
…………………………………………….…………………...….….
15
Список использованных
источников ……………………………………..……
16
Приложение
А. Текст программы ....................................................................
17
Приложение
Б. Результаты работы ……………….…………………......….......
24
Введение
Сегодня
трехмерная компьютерная графика нашла
широкое распространение и применение
в повседневной жизни. Ученые используют
компьютерную графику для анализа результатов
моделирования. Инженеры и архитекторы
используют трехмерную графику для создания
виртуальных моделей. Кинематографы создают
удивительные спецэффекты или полностью
анимированные фильмы. В последние годы
широкое распространение получили также
компьютерные игры, максимально использующие
трехмерную графику для создания виртуальных
миров.
Таким образом,
визуализация трехмерных сцен на компьютере
является очень актуальной задачей на
сегодняшний день.
Целью данной
курсовой работы является создание трехмерной
сцены, на которой изображены фигуры (треугольники
и квадраты с общей вершиной), вращающиеся
вокруг одной точки. Работа должна быть
выполнена в среде разработки Lazarus.
В результате
выполнения данной курсовой работы изучены
правила создания сцен на компьютере и
приобретены навыки работы с графической
библиотекой.
В программе
для отображения трехмерной сцены использована
готовая графическая библиотека, причем
не в полном объеме. Для выполнения задания
курсовой работы достаточно воспользоваться
лишь базовой функциональностью библиотеки.
В данной
работе произведен обзор популярной графической
библиотеки (OpenGL), позволяющих создавать
трехмерные сцены, доступных в Lazarus.
В заключительной
части приведено описание создания пользовательского
интерфейса программы в Lazarus, а в приложении
– текст программы.
1. Анализ предметной области
Библиотека
OpenGL предназначена для моделирования
компьютерной графики на высоком уровне,
и является программным интерфейсом к
аппаратному обеспечению. Главное назначение
библиотеки - преобразовывать 2-х и 3- х
мерные объекты в специальный формат в
специальном буфере. Эти объекты описываются
как последовательности точек в пространстве,
которые определяют геометрические объекты,
или пикселов, которые определяют изображения.
OpenGl производит
несколько последовательных операций
обработки этих данных, чтобы сконвертировать
их в пикселы для формирования окончательного
требуемого изображения в буфере.
В задании требуется
разработать приложение, имитирующее
движение примитива относительно заданной
общей стороны треугольников.
2 .Техническое задание
2.1
Основание для разработки
Программа
разрабатывается на основании задания
на курсовое проектирование по дисциплине
«Компьютерная графика». Задание утверждено
заведующим кафедрой ИВС Пензенского
государственного университета Косниковым
Ю.Н. и выдано доцентом кафедры ИВС Стариковой
А.Ю.
2.2
Назначение разработки
Данное
приложение предназначено для демонстрации
возможностей библиотеки OpenGL и для реализации
имитации движения заданного графического
примитива в пространстве.
2.3
Требования к программе
2.3.1
Требования к функциональным
характеристикам
В программе
должны выполняться следующие действие,
а именно после нажатия кнопки запуска,
должно происходить вращение двух треугольников
вокруг их общей стороны, против часовой
стрелки.
2.3.2
Требования к составу и параметрам технических
средств
Программа
предназначена для работы на IBM-совместимых
персональных компьютерах, имеющих следующие
минимальные характеристики:
- Оперативная память 1Гб;
- Операционная система Windows XP;
- Процессор Intel Pentium 3;
- Объем графической памяти 128 Мб.
2.3.3 Требования к информационной и программной
совместимости
Так как
программа должна быть написана на языке
программирования Lazarus, ее требуется разрабатывать
в объектно-ориентированной среде Lazarus.
2.4
Требования к программной документации
Разрабатываемая программа должна сопровождаться
следующими программными документами:
- Описание программы;
- Описание применения;
- Текст программы.
3. Описание программы
3.1 Общие сведения
Для текстурирования
примитивов и фона потребуется 3 варианта
текстур в формате .png. Для включения текстур
в проект требуется дополнительная библиотека,
реализующая функции преобразования и
добавления текстуры в проект. Данные
функции реализованы в библиотеке BMP. Остальные
функции работы с примитивами уже реализованы
в библиотеке OpenGL.
3.2 Функциональное назначение
Приложение
реализует имитацию движения графических
примитивов по заданной траектории.
3.3 Описание логической структуры
Программа состоит
из модуля exampleform.pp- содержащий исходный
код программы, текстуры, и служебных файлов
проекта.
Выполним необходимые
действия для создания программы по шагам.
Для отрисовки треугольников использовалась команда из библиотеки OpenGL - GL_LINE_LOOP.
Выполним расстановку объектов в сцене.
Спроектировал сцену, выбрав необходимые
команды и их параметры. Разработал последовательность
геометрических преобразований, необходимых
для поворота на заданный угол каждого
объекта сцены в отдельности – команды
нужного поворота ставятся непосредственно
перед рисованием фигуры, после прорисовки
фигуры необходимо возвращать всё
в начальное положение.
Для
получения нескольких одинаковых изображений было создано
3 дисплейных списка:
ParticleList:=glGenLists(1);
glNewList(ParticleList,
GL_COMPILE); // лист для рисования точки
glBindTexture(GL_TEXTURE_2D,
textures[0]);
glBegin(GL_TRIANGLE_STRIP);
glNormal3f( 0.0, 0.0, 1.0);
glTexCoord2f( 1.0, 1.0); glVertex3f(+0.025,
+0.025, 0);
glTexCoord2f( 0.0, 5.0); glVertex3f(-0.025,
+0.025, 0);
glTexCoord2f( 1.0, 0.0); glVertex3f(+0.025,
-0.025, 0);
glTexCoord2f( 0.0, 0.0); glVertex3f(-0.025,
-0.025, 0);
glEnd;
glEndList; В
программу добавил команды сдвига и поворота
системы координат.
Провел текстурирование сцены. Залил фон текстурой «texture2.png».
В программу заготовку ввел команды подготовки
и наложения текстур на объекты сцены.
Для того чтобы наложить текстуру поверх фигуры построенной с помощью GL_LINE_LOOP и GL_QUADS, создана фигура с соответствующими текстурными координатами.
Задал соответствующие координаты текстур для объектов (Рисунок 2 Приложение Б).
Для создания анимации воспользуемся
компонентом Timer, который необходим для того, чтобы выполнять преобразования (сдвиг) фигур.
Установил интервал таймера = 16, чтобы достичь оптимальной плавности движения.
Для
вращения фигуры по собственной эллипсоидной
траектории в пространстве, после установки
начального положения фигур, с помощью
математических операций происходит определение
новых точек, согласно которым объект будет перемещаться
в сцене. (Рисунок 3 Приложение Б).
3.4 Используемые технические средства
Работа программы обеспечивается на
вычислительной машине с нижеприведёнными
минимальными характеристиками:
- Оперативная память 1Гб;
- Операционная система Windows XP;
- Процессор Intel Pentium 3;
- Объем графической памяти 128 Мб.
3.5 Вызов и загрузка
Запуск программы осуществляется при
открытии файла openglcontrol.exe.
В каталоге с программой должны
находиться текстуры для фона и для объектов,
а так же сам файл программы формата .exe.
4. Программа и методика испытаний
4.1
Объект испытаний
Объектом испытания
является программа, предназначенная
для имитации движения заданных графических
примитивов – двух треугольников.
4.2
Цель испытаний
Целью испытания
является проверка работоспособности
и надежности программы.
4.3
Требования к программе
Программа
должна выполнять все функции, указанные
в техническом задании. Работа программы
не должна приводить к сбою в работе операционной
системы в заданном промежутке времени.
4.4
Требования к программной документации
Состав программной документации, предъявляемой
на испытания:
- Техническое задание;
- Требования к программе;
- Описание программы;
- Описание применения;
- Текст программы;
4.5
Средства и порядок испытаний
Работа программы обеспечивается на
вычислительной машине с нижеприведёнными
минимальными характеристиками:
- Оперативная память 1Гб;
- Операционная система Windows XP;
- Процессор Intel Pentium 3;
- Объем графической памяти 128 Мб.
Программа разработана в среде Lazarus работающей
под управлением операционной системы
Windows 7.
Для проверки правильности работы системы
был принят следующий порядок действий:
а) запустить программу на выполнение;
б) сравнить реакцию программы с ожидаемым
результатом;
в) сделать выводы по результатам тестирования
о работоспособности программы.
Результаты работы программы приведены
в приложении Б.
5 . Описание применения
5.1
Назначение программы
Программа
позволяет имитировать движение треугольников
относительно общей стороны в пространстве.
5.2
Условия применения
Работа программы обеспечивается на
вычислительной машине с нижеприведёнными
минимальными характеристиками:
- Оперативная память 1Гб;
- Операционная система Windows XP;
- Процессор Intel Pentium 3;
- Объем графической памяти 128 Мб.