Разработка программы для операционных систем с применением технологий трехмерной графики - Курсовая работа

бесплатно 0
4.5 167
Возможности библиотеки OpenGL, создание матрицы и эффекта тумана. Разработка процедуры визуализации трехмерной модели "Корабль", интерфейса пользователя и подсистемы управления событиями. Логическая структура и функциональная декомпозиция проекта.


Аннотация к работе
Стандарт OPENGL (Open Graphics Library - открытая графическая библиотека) был разработан и утвержден в 1992 году ведущими фирмами в области разработки программного обеспечения как эффективный аппаратно-независимый интерфейс, пригодный для реализации на различных платформах. Основой стандарта стала библиотека IRIS GL, разработанная фирмой Silicon Graphics Inc. Библиотека насчитывает около 120 различных команд, которые программист использует для задания объектов и операций, необходимых для написания интерактивных графических приложений. Дополнения и изменения в стандарте реализуются таким образом, чтобы сохранить совместимость с разработанным ранее программным обеспечением. Приложения, использующие OPENGL, гарантируют одинаковый визуальный результат вне зависимости от типа используемой операционной системы и организации отображения информации.Для упрощения разработки программ на языке Си существует большое количество готовых библиотек с реализацией алгоритмов для конкретных предметных областей, от численных расчетов до распознавания речи. Его основой стала библиотека IRIS GL, разработанная фирмой Silicon Graphics на базе концепции графической машины Стэнфордского университета (1982 г.). Он включает в себя около 150 различных функций, с помощью которых программист может задавать свойства различных трехмерных и двумерных объектов и выполнять их визуализацию (рендеринг). Т.е. в программе надо задать местоположение объектов в трехмерном пространстве, определить другие параметры (поворот, растяжение), задать свойства объектов (цвет, текстура, материал и т.д.), положение наблюдателя, а затем библиотека OPENGL выполнит генерацию двумерной проекции этой трехмерной сцены. Можно сказать, что библиотека OPENGL является библиотекой только для визуализации трехмерных сцен (rendering library). Если на объект, например, сферу, наложить текстуру (некоторое изображение), то объект будет выглядеть иначе (например, сфера будет выглядеть как разноцветный мячик).Для задания различных преобразований объектов сцены в OPENGL используются операции над матрицами, при этом различают три типа матриц: модельно-видовая, матрица проекций и матрица текстуры. Матрица проекций определяет, как будут проецироваться трехмерные объекты на плоскость экрана (в оконные координаты), а матрица текстуры определяет наложение текстуры на объект. Для того чтобы выбрать, какую матрицу надо изменить, используется команда: void GLMATRIXMODE(GLENUM mode), вызов которой, со значением параметра "mode" равным GL_MODELVIEW, GL_PROJECTION, или GL_TEXTURE включает режим работы с модельно-видовой матрицей, матрицей проекций, или матрицей текстуры соответственно.Первый тип проекции может быть задан командами void GLORTHO(GLDOUBLE left, GLDOUBLE right, GLDOUBLE bottom, GLDOUBLE top, GLDOUBLE near, GLDOUBLE far) и void GLUORTHO2D(GLDOUBLE left, GLDOUBLE right, GLDOUBLE bottom, GLDOUBLE top). Первая команда создает матрицу проекции в усеченный объем видимости (параллелепипед видимости) в левосторонней системе координат. Параметры команды задают точки (left, bottom, znear) и (right, top, zfar), которые отвечают левому нижнему и правому верхнему углам окна вывода. Перспективная проекция определяется командой void GLUPERSPECTIVE(GLDOUBLE angley, GLDOUBLE aspect, GLDOUBLE znear, GLDOUBLE zfar), которая задает усеченный конус видимости в левосторонней системе координат.В OPENGL используется модель освещения, в соответствии с которой цвет точки определяется несколькими факторами: свойствами материала и текстуры, величиной нормали в этой точке, а также положением источника света и наблюдателя. Для корректного расчета освещенности в точке надо использовать единичные нормали, однако команды: типа GLSCALE*(), могут изменять длину нормалей. Для задания глобальных параметров освещения используются команды void GLLIGHTMODEL[i, f](GLENUM pname, GLENUM param) и void GLLIGHTMODEL[i f]v(GLENUM pname, const GLTYPE *params). Аргумент "pname" определяет, какой параметр модели освещения будет настраиваться и может принимать следующие значения: GL_LIGHT_MODEL_LOCAL_VIEWER, параметр "param" должен быть булевым и задает положение наблюдателя. GL_LIGHT_MODEL_TWO_SIDE параметр "param" должен быть булевым и управляет режимом расчета освещенности, как для лицевых, так и для обратных граней.Легкое затуманивание сцены создает реалистичный эффект, а частенько может и скрыть некоторые артефакты, которые появляются, когда в сцене присутствуют отдаленные объекты. Туман в OPENGL реализуется путем изменения цвета объектов в сцене в зависимости от их глубины, т.е. расстояния до точки наблюдения. Метод вычисления интенсивности тумана в вершине можно определить с помощью команд void GLFOG[if](enum pname, T param); void GLFOG[if]v(enum pname, T params); Аргумент "pname" может принимать следующие значения: GL_FOG_MODE аргумент "param" определяет формулу, по которой будет вычисляться интенсивность тумана в точке. GL_LINEAR интенсивность вычисляется п

План
СОДЕРЖАНИЕ

ВВЕДЕНИЕ

1. ПРОГРАММИРОВАНИЕ С ИСПОЛЬЗОВАНИЕМ БИБЛИОТЕКИ OPENGL

1.1. Назначение и возможности библиотеки OPENGL

1.2 Работа с матрицами

1.3. Проекции

1.4 Освещение

1.5 Создание эффекта тумана

2. РАЗРАБОТКА ПРИЛОЖЕНИЯ ДЛЯ ПОСТРОЕНИЯ ДИНАМИЧЕСКОГО ИЗОБРАЖЕНИЯ ТРЕХМЕРНОЙ МОДЕЛИ ОБЪЕКТА "Корабль"

2.1 Разработка процедуры визуализации трехмерной сцены

2.2 Разработка интерфейса пользователя

2.3 Разработка подсистемы управлениями событиями

3. ИНФОРМАЦИОННОЕ И ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ

3.1 Общие сведения о программе

3.2 Функциональное назначение

3.3 Логическая структура и функциональная декомпозиция проекта

3.4 Требования к техническому программному обеспечению

3.5 Руководство пользователя

4. ЗАКЛЮЧЕНИЕ

СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ

Приложение
Заказать написание новой работы



Дисциплины научных работ



Хотите, перезвоним вам?