Разработка программы для операционных систем с применением технологий трехмерной графики
Еще две известные библиотеки — GLUT (для Unix) и GLAUX (для MS Windows). В них реализованы не только дополнительные функции OpenGL (для построения некоторых сложных фигур вроде конуса и тетраэдра), но также есть функции для работы с окнами, клавиатурой и мышью в консольных приложениях. Чтобы работать с OpenGL в конкретной операционной системе (например, Windows или Unix), надо провести некоторую… Читать ещё >
Разработка программы для операционных систем с применением технологий трехмерной графики (реферат, курсовая, диплом, контрольная)
- СОДЕРЖАНИЕ
- ВВЕДЕНИЕ
- 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. ЗАКЛЮЧЕНИЕ
- СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ
- Приложение
OpenGL является одним из самых популярных прикладных программных интерфейсов (API — Application Programming Interface) для разработки приложений в области двумерной и трехмерной графики.
Стандарт OpenGL (Open Graphics Library — открытая графическая библиотека) был разработан и утвержден в 1992 году ведущими фирмами в области разработки программного обеспечения как эффективный аппаратно-независимый интерфейс, пригодный для реализации на различных платформах. Основой стандарта стала библиотека IRIS GL, разработанная фирмой Silicon Graphics Inc.
Библиотека насчитывает около 120 различных команд, которые программист использует для задания объектов и операций, необходимых для написания интерактивных графических приложений.
На сегодняшний день графическая система OpenGL поддерживается большинством производителей аппаратных и программных платформ. Эта система доступна тем, кто работает в среде Windows, пользователям компьютеров Apple. Свободно распространяемые коды системы Mesa (пакет API на базе OpenGL) можно компилировать в большинстве операционных систем, в том числе в Linux.
Характерными особенностями OpenGL, которые обеспечили распространение и развитие этого графического стандарта, являются:
Стабильность. Дополнения и изменения в стандарте реализуются таким образом, чтобы сохранить совместимость с разработанным ранее программным обеспечением.
Надежность и переносимость. Приложения, использующие OpenGL, гарантируют одинаковый визуальный результат вне зависимости от типа используемой операционной системы и организации отображения информации. Кроме того, эти приложения могут выполняться как на персональных компьютерах, так и на рабочих станциях и суперкомпьютерах.
Легкость применения. Стандарт OpenGL имеет продуманную структуру и интуитивно понятный интерфейс, что позволяет с меньшими затратами создавать эффективные приложения, содержащие меньше строк кода, чем с использованием других графических библиотек. Необходимые функции для обеспечения совместимости с различным оборудованием реализованы на уровне библиотеки и значительно упрощают разработку приложений.
Наличие хорошего базового пакета для работы с трехмерными приложениями упрощает понимание студентами ключевых тем курса компьютерной графики — моделирование трехмерных объектов, закрашивание, текстурирование, анимацию и т. д. Широкие функциональные возможности OpenGL служат хорошим фундаментом для изложения теоретических и практических аспектов предмета.
1. ПРОГРАММИРОВАНИЕ С ИСПОЛЬЗОВАНИЕМ БИБЛИОТЕКИ OPENGL
1.1 Назначение и возможности библиотеки OpenGL
Для упрощения разработки программ на языке Си++ существует большое количество готовых библиотек с реализацией алгоритмов для конкретных предметных областей, от численных расчетов до распознавания речи. Библиотека OpenGL является одним из самых популярных программных интерфейсов (API) для работы с трехмерной графикой. Стандарт OpenGL был утвержден в 1992 г. ведущими фирмами в области разработки программного обеспечения. Его основой стала библиотека IRIS GL, разработанная фирмой Silicon Graphics на базе концепции графической машины Стэнфордского университета (1982 г.).
OpenGL переводится как Открытая Графическая Библиотека (Open Graphics Library). Программы, использующие OpenGL, гарантируют одинаковый визуальный результат во многих операционных системах — на персональных компьютерах, на рабочих станциях и на суперкомпьютерах.
С точки зрения программиста, OpenGL — это программный интерфейс для графических устройств (например, графических ускорителей). Он включает в себя около 150 различных функций, с помощью которых программист может задавать свойства различных трехмерных и двумерных объектов и выполнять их визуализацию (рендеринг). Т. е. в программе надо задать местоположение объектов в трехмерном пространстве, определить другие параметры (поворот, растяжение), задать свойства объектов (цвет, текстура, материал и т. д.), положение наблюдателя, а затем библиотека OpenGL выполнит генерацию двумерной проекции этой трехмерной сцены.
Можно сказать, что библиотека OpenGL является библиотекой только для визуализации трехмерных сцен (rendering library). Она не поддерживает какие либо периферийные устройства (например, клавиатуру или мышь) и не содержит средств для управления экранными окнами. Обеспечение взаимодействия периферийных устройств с библиотекой OpenGL в конкретной операционной системе является задачей программиста.
Основные возможности OpenGL, предоставляемые программисту, можно разделить на несколько групп:
1. Геометрические и растровые примитивы. На основе этих примитивов строятся все остальные объекты. Геометрические примитивы — это точки, отрезки и многоугольники. Растровыми примитивами являются битовые массивы и изображения.
2. Сплайны. Сплайны применяются для построения гладких кривых по опорным точкам.
3. Видовые и модельные преобразования. Эти преобразования позволяют задавать пространственное расположение объектов, изменять форму объектов и задавать положение камеры, для которой OpenGL строит результирующее проекционное изображение.
4. Работа с цветом. Для операций с цветом в OpenGL есть режим RGBA (красный — зелёный — синий — прозрачность) и индексный режим (цвет задается порядковым номером в палитре).
5. Удаление невидимых линий и поверхностей.
6. Двойная буферизация. В OpenGL доступна и одинарная, и двойная буферизация. Двойная буферизация применяется для устранения мерцания при мультипликации. При этом изображение каждого кадра сначала рисуется в невидимом буфере, а на экран кадр копируется только после того, как полностью нарисован.
7. Наложение текстуры. Текстуры упрощают создание реалистичных сцен. Если на объект, например, сферу, наложить текстуру (некоторое изображение), то объект будет выглядеть иначе (например, сфера будет выглядеть как разноцветный мячик).
8. Сглаживание. Автоматическое сглаживание компенсирует ступенчатость, свойственную растровым дисплеям. При сглаживании отрезков OpenGL изменяет интенсивность и цвет пикселей так, что эти отрезки отображаются на экране без зигзагов" .
9. Освещение. Указание расположения, интенсивности и цвета источников света.
10. Специальные эффекты. Например, туман, дым, прозрачность объектов. Эти средства позволяют сделать сцены более реалистичными.
Хотя библиотека OpenGL предоставляет практически все возможности для моделирования и воспроизведения трёхмерных сцен, некоторые графические функции непосредственно в OpenGL недоступны. Например, чтобы задать положение и направление камеры для наблюдения сцены придется рассчитывать проекционную матрицу, что сопряжено с достаточно громоздкими вычислениями. Поэтому для OpenGL существуют так называемые вспомогательные библиотеки.
Одна из этих библиотек называется GLU. Эта библиотека является частью стандарта и поставляется вместе с главной библиотекой OpenGL. В состав GLU входят более сложные функции (например, для создания цилиндра или диска требуется всего одна команда). В библиотеке GLU есть также функции для работы со сплайнами, реализованы дополнительные операции над матрицами и дополнительные виды проекций.
Еще две известные библиотеки — GLUT (для Unix) и GLAUX (для MS Windows). В них реализованы не только дополнительные функции OpenGL (для построения некоторых сложных фигур вроде конуса и тетраэдра), но также есть функции для работы с окнами, клавиатурой и мышью в консольных приложениях. Чтобы работать с OpenGL в конкретной операционной системе (например, Windows или Unix), надо провести некоторую предварительную настройку, которая зависит от операционной системы. GLUT и GLAUX позволяют буквально несколькими командами определить окно, в котором будет работать OpenGL, задать функции для обработки команд от клавиатуры или мыши.
Возможности OpenGL описаны через функции его библиотеки. Все функции можно разделить на пять категорий.
Функции описания примитивов определяют объекты нижнего уровня иерархии (примитивы), которые способна отображать графическая подсистема. В OpenGL в качестве примитивов выступают точки, линии, многоугольники и т. д.
Функции описания источников света служат для описания положения и параметров источников света, расположенных в трехмерной сцене.
Функции задания атрибутов. С помощью задания атрибутов программист определяет, как будут выглядеть на экране отображаемые объекты. Другими словами, если с помощью примитивов определяется, что появится на экране, то атрибуты определяют способ вывода на экран. В качестве атрибутов OpenGL позволяет задавать цвет, характеристики материала, текстуры, параметры освещения.
Функции визуализации позволяет задать положение наблюдателя в виртуальном пространстве, параметры объектива камеры. Зная эти параметры, система сможет не только правильно построить изображение, но и отсечь объекты, оказавшиеся вне поля зрения.
Набор функций геометрических преобразований позволяют программисту выполнять различные преобразования объектов — поворот, перенос, масштабирование.
При этом OpenGL может выполнять дополнительные операции, такие как использование сплайнов для построения линий и поверхностей, удаление невидимых фрагментов изображений, работа с изображениями на уровне пикселей и т. д.
1.2 Работа с матрицами
библиотека визуализация интерфейс декомпозиция
Для задания различных преобразований объектов сцены в OpenGL используются операции над матрицами, при этом различают три типа матриц: модельно-видовая, матрица проекций и матрица текстуры. Все они имеют размер 4×4. Видовая матрица определяет преобразования объекта в мировых координатах, такие как параллельный перенос, изменение масштаба и поворот. Матрица проекций определяет, как будут проецироваться трехмерные объекты на плоскость экрана (в оконные координаты), а матрица текстуры определяет наложение текстуры на объект.
Умножение координат на матрицы происходит в момент вызова соответствующей команды OpenGL, определяющей координату (как правило, это команда glVertex*.
Для того чтобы выбрать, какую матрицу надо изменить, используется команда: void glMatrixMode (GLenum mode), вызов которой, со значением параметра «mode» равным GL_MODELVIEW, GL_PROJECTION, или GL_TEXTURE включает режим работы с модельно-видовой матрицей, матрицей проекций, или матрицей текстуры соответственно. Для вызова команд, задающих матрицы того или иного типа, необходимо сначала установить соответствующий режим.
Для определения элементов матрицы текущего типа вызывается команда void glLoadMatrix[f d](GLtype *m), где «m» указывает на массив из 16 элементов типа float или double в соответствии с названием команды, при этом сначала в нем должен быть записан первый столбец матрицы, затем второй, третий и четвертый. Еще раз следует обратить внимание, в массиве «m» матрица записана по столбцам.
Команда void glLoadIdentity (void) заменяет текущую матрицу на единичную.
1.3 Проекции
В OpenGL существуют стандартные команды для задания ортографической (параллельной) и перспективной проекций. Первый тип проекции может быть задан командами 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), которые отвечают левому нижнему и правому верхнему углам окна вывода. Параметры «near» и «far» задают расстояние до ближней и дальней плоскостей отсечения по удалению от точки (0,0,0) и могут быть отрицательными.
Рисунок 1 — Ортографическая проекция
Перспективная проекция определяется командой void gluPerspective (GLdouble angley, GLdouble aspect, GLdouble znear, GLdouble zfar), которая задает усеченный конус видимости в левосторонней системе координат. Параметр «angley» определяет угол видимости в градусах по оси у и должен находиться в диапазоне от 0 до 180. Угол видимости вдоль оси x задается параметром «aspect», который обычно задается как отношение сторон области вывода (как правило, размеров окна).
Параметры «zfar» и «znear» задают расстояние от наблюдателя до плоскостей отсечения по глубине и должны быть положительными. Чем больше отношение zfar/znear, тем хуже в буфере глубины будут различаться расположенные рядом поверхности, так как по умолчанию в него будет записываться «сжатая» глубина в диапазоне от 0 до 1.
Прежде чем задавать матрицы проекций, нужно включить режим работы с нужной матрицей командой glMatrixMode (GL_PROJECTION) и сбросить текущую, вызвав glLoadIdentity ().
Рисунок 2 — Перспективная проекция
1.4 Освещение
В OpenGL используется модель освещения, в соответствии с которой цвет точки определяется несколькими факторами: свойствами материала и текстуры, величиной нормали в этой точке, а также положением источника света и наблюдателя. Для корректного расчета освещенности в точке надо использовать единичные нормали, однако команды: типа glScale*(), могут изменять длину нормалей. Чтобы это учитывать, нужно использовать режим нормализации векторов нормалей, который включается вызовом команды glEnable (GL_NORMALIZE) .
Для задания глобальных параметров освещения используются команды 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_FALSE, то направление обзора считается параллельным оси z, вне зависимости от положения в видовых координатах. Если же он равен GL_TRUE, то наблюдатель находится в начале видовой системы координат. Это может улучшить качество освещения, но усложняет его расчет. Значение по умолчанию — GL_FALSE.
GL_LIGHT_MODEL_TWO_SIDE параметр «param» должен быть булевым и управляет режимом расчета освещенности, как для лицевых, так и для обратных граней. Если он равен GL_FALSE, то освещенность рассчитывается только для лицевых граней. Если же он равен GL_TRUE, расчет проводится и для обратных граней. Значение по умолчанию — GL_FALSE.
GL_LIGHT_MODEL_AMBIENT параметр «params» должен содержать четыре целых или вещественных числа, которые определяют цвет фонового освещения даже в случае отсутствия определенных источников света. Значение по умолчанию — (0.2, 0.2, 0.2,1.0).
1.5 Создание эффекта тумана
Одна из интересных и часто используемых возможность OpenGL — создание эффекта тумана. Легкое затуманивание сцены создает реалистичный эффект, а частенько может и скрыть некоторые артефакты, которые появляются, когда в сцене присутствуют отдаленные объекты.
Туман в OpenGL реализуется путем изменения цвета объектов в сцене в зависимости от их глубины, т. е. расстояния до точки наблюдения. Изменение цвета происходит либо для вершин примитивов, либо для каждого пикселя на этапе растеризации в зависимости от реализации OpenGL. Этим процессом можно частично управлять.
Для включения эффекта затуманивания необходимо вызвать команду glEnable (GL_FOG).
Метод вычисления интенсивности тумана в вершине можно определить с помощью команд void glFog[if](enum pname, T param); void glFog[if]v (enum pname, T params);
Аргумент «pname» может принимать следующие значения:
GL_FOG_MODE аргумент «param» определяет формулу, по которой будет вычисляться интенсивность тумана в точке. В этом случае «param» может принимать значения:
— GL_EXP интенсивность вычисляется по формуле f=exp (-d*z);
— GL_EXP2 интенсивность вычисляется по формуле f=exp (-(d*z)2);
— GL_LINEAR интенсивность вычисляется по формуле f=e-z/e-s,
где z — расстояние от вершины, в которой вычисляется интенсивность тумана, до точки наблюдения.
Коэффициенты d, e, s задаются с помощью следующих значений аргумента pname:
— GL_FOG_DENSITY param определяет коээфициент d;
— GL_FOG_START param определяет коэффициент s;
— GL_FOG_END param определяет коэффициент e.
Цвет тумана задается с помощью аргумента pname, равного GL_FOG_COLOR в этом случае params — указатель на массив из 4-х компонент цвета.
2. РАЗРАБОТКА ПРИЛОЖЕНИЯ ДЛЯ ПОСТРОЕНИЯ ДИНАМИЧЕСКОГО ИЗОБРАЖЕНИЯ ТРЕХМЕРНОЙ МОДЕЛИ ОБЪЕКТА «Корабль»
2.1 Разработка процедуры визуализации трехмерной сцены
За прорисовку самого грузового автомобиля отсвечает метод void CLR1View: usr_RenderScene (). Вся модель состоит из довольно большого числа примитивов, таких как прямоугольный паралелипипед, конус, линия, простой многоугольник.
Первым нарисованы паралелипипеды для разных частей модели: дна Корабльа и кармы. После этого — цилиндры — тоже для разных частей модели: парусных матчт и некоторых частей штурвала. Но перед этим фигуры совмещены нужным образом.
Затем нарисованы выпуклые многоугольники — паруса. Все эти фигуры нарисованы с помощью команд: glBegin, glEnd, glVertex3d, где первые две команды — операторные скобки, а третий — точка в трехмерном пространстве.
Все необходимые операции производились теми же функциями: glTranslated, glRotated.
Так же в сцене присутствуют источники света, их восемь, и расположены они по вершинам воображаемого куба. Можно включать/выключать эффект тумана.
2.2 Разработка интерфейса пользователя
Через интерфейс, пользователь может изменять работу программы. Имеются следующие возможности:
— включать/выключать источники света;
— включать/выключать эффект тумана;
— разворачивать объект относительно трех осей;
— Перемещать объект относительно одной оси.
Для добавления этих возможностей в приложении отредактировано панель элементов, добавлены следующие пункты (и обработчики их выбора):
— К+ - Вывод объекта в виде каркаса;
— К- - Вывод сплошного объекта;
— Т+ - включает эффект тумана;
— Т- - выключает эффект тумана;
Вызов каждого пункта меню можно заменить нажатием на клавиши, таблица соответствия приведена ниже.
Таблица 1 — «Горячие» клавиши
№ | Пункт меню | " Горячая" клавиша | |
К+ | |||
К; | |||
Т+ | |||
Т; | |||
Вращение относительно оси Х | <> | ||
Вращение относительно оси Y | |||
Вращение относительно оси Z | < > | ||
Перемещение объекта вперед | Z | ||
Перемещение объекта назад | X | ||
Включение освещения | |||
Выключение освещения | |||
3. ИНФОРМАЦИОННОЕ И ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
3.1 Общие сведения о программе
Программа называется «Трехмерная модель Корабльа». При её использовании, пользователь получает возможность работать с визуальной моделью Корабльа. Вращать модель относительно трех осей, изменять освещение, включать/выключать эффект тумана. Программное обеспечение, на котором разработано приложение — Microsoft Visual Studio 6 с использованием библиотеки OpenGL.
3.2 Функциональное назначение
Данная программа предназначается для представления трехмерной модели Корабльа. Приложение дает следующие возможности:
— наблюдать модель;
— изменять её положение в пространстве (вращать относительно трех осей);
— включать/выключать эффект тумана;
— изменять освещение;
3.3 Логическая структура и функциональная декомпозиция проекта
Инициализация OpenGL происходит в два этапа.
Первый этап. В методе «PreCreateWindow» устанавливается стиль окна, после чего — формат пикселей, это делается функцией usr_bSetupPixelFormat, в котором в свою очередь выполняются ChoosePixelFormat и SetPixelFormat, которые проверяют формат и устанавливают его соответственно.
Метод (usr_ReSize) устанавливает область вывода, и перспективу. Он вызывается при каждом изменении размера окна.
Рисование самой сцены. За это отвечает метод usr_RerSize, который вызывается при каждой перерисовки окна, и в свою очередь вызывает вспомогательные функции рисования usr_RenderScene, которая выводит саму модель паруника.
Так как данная программа является так называемым Windows-приложением, то алгоритм её работы зависит от конкретных событий, а пользователь, в свою очередь, получает возможность, через интерфейс, «порождать» эти события. Поэтому важную роль играют обработчики событий, таких как выбор пунктов меню, нажатие горячих клавиш Самые важные для понимания логической структуры программы события описаны в разделе «2.3 Разработка подсистемы управления событиями». В итоге приведена таблица, в которой отображены основные методы (функции) и описано, за что они отвечают (таблица 2).
Таблица 2 — Основные методы и функции
№ | Имя функции (метода) | Описание | |
PreCreateWindow | Инициализация окна | ||
usr_bSetupPixelFormat | Установка формата пикселей | ||
usr_bInitOpenGL | Инициализация OpenGL | ||
user_DestoryOpenGL | Освобождение ресурсов | ||
usr_ReSize | Корректирует вывод сцены на экран при изменении размера окна | ||
usr_RenderScene | Рисует Корабль | ||
glPushMatrix | Помещает в стек копию текущей матрицы. | ||
glPopMatrix | Выталкивает на вершину стека матрицу, расположенную под матрицей на вершине, заменяя ее собой. | ||
glTranslated | Выполняет сдвиг текущей матрицы на «вектор сдвига» . | ||
glRotated | В функции вычисляется матрица поворота | ||
glVertex3f | Задает положение вершины в трехмерном пространстве | ||
glColor3f | Устанавливает текущий цвет для вершины. | ||
3.4 Требования к техническому программному обеспечению
Для успешной эксплуатации программного продукта необходим персональный компьютер со следующими характеристиками: процессор Intel Pentium с тактовой частотой 800 МГц и выше, оперативная память — не менее 64 Мбайт, свободное дисковое пространство — не менее 500 Мбайт, устройство для чтения компакт-дисков, монитор типа Super VGA (число цветов — 256). Программное обеспечение: Microsoft Visual Studio 2008, операционная система WINDOWS 2000/XP и выше.
3.5 Руководство пользователя
Для установки приложения требуется скопировать с установочного диска, прилагаемого к работе файл «Корабль .exe» в любую директорию на жестком диске. Для запуска программы нужно два раза нажать на левую клавишу мыши. Запуск можно осуществлять с установочного диска.
Исходя из функционального назначения приложения видно, что пользователь получает следующие возможности:
— изменять положение модели в пространстве (вращать относительно трех осей);
— включать/выключать эффект тумана;
— изменять освещение;
— двигать объект.
Чтобы изменить положение модели в пространстве нужно выполнить одно из следующих действий:
— нажать на одну из кнопок «>», «<» ., «^», «v» ," <", «>» ., для поворота в соответствующую сторону.
Чтобы включить/выключить эффект тумана нужно:
— нажать на кнопку Т+ / Т-;
— нажать на клавишу «5» / «6» .
Чтобы включить/выключить освещение нужно:
— нажать на клавишу «1» / «2» .
Чтобы включить/выключить каркасный вид объекта нужно:
— нажать на кнопку К+ / К-;
— нажать на клавишу «3» / «4» .
Чтобы переместить объект вперед или назад необходимо нажать:
— нажать на кнопку Z / X;
Открывается и закрывается приложение любым из привычных для ОС Windows способом.
4. ЗАКЛЮЧЕНИЕ
Целью данной курсовой работы является получение практических навыков по разработке программ для операционных систем семейства Windows с применением технологий трехмерной графики с использованием библиотеки OpenGL.
В рамках курсовой работы были выполнены следующие задачи:
— изучение принципов работы OpenGL
— с графическими примитивами;
— с освещением;
— с эффектом тумана;
Разработанное приложение является полнофункциональной 3D моделью Корабль, содержит в себе большое количество встроенных настроек, с помощью которых отражаются основные возможности и достоинства графической библиотеки OpenGL, а также интуитивно понятный интерфейс. Основные достоинства данного приложения:
— стабильность;
— надежность и переносимость;
— легкость применения;
— наличие хорошего базового пакета для работы с трехмерными приложениями.
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ
1. Порев В. Н. Компьютерная графика. СПб., BHV, 2002.
2. Шикин А. В., Боресков А. В. Компьютерная графика. Полигональные модели. Москва, ДИАЛОГ-МИФИ, 2001.
3. Тихомиров Ю. Программирование трехмерной графики. СПб,
4. Performance OpenGL: Platform Independent Techniques.
5. Томпсон Н. Секреты программирования трехмерной графики для Windows Пер. с англ. — СПб.: Питер
6. Visual Introduction in OpenGL, SIGGRAPH'98.
7. The OpenGL graphics system: a specification (version 1.1).
8. Программирование GLUT: окна и анимация. Miguel Angel Sepulveda, LinuxFocus.
9. Фролов А., Игнатенко А. Учебное пособие. Программирование на Open GL. ВМиК МГУ. 2000 г.
10. Поляков, БрусенцевМетоды и алгоритмы компьютерной графики в примерах на Visual C++ (2003).
11. Херн, Бейкер — Компьютерная графика и стандарт OpenGL (2005)
Приложение А
Диаграмма классов
Рисунок Б.1 — Диаграмма классов
Приложение В
Алгоритм построения трехмерного объекта средствами OpenGL
Приложение Г
Экранная форма приложения
Рисунок Г.1 — Экранная форма приложения