close

Вход

Забыли?

вход по аккаунту

?

Библиотека трехмерной графики

код для вставкиСкачать
БИБЛИОТЕКА ТРЕХМЕРНОЙ
ГРАФИКИ OPENGL
Южный Федеральный Университет
Фомин Г.В.
Введение
OpenGL (Open Graphics Library – открытая графическая библиотека) содержит несколько сотен процедур и
функций, которые обеспечивают формирование любого 3-мерного образа на экране компьютера. Библиотека
OpenGL не требует специальной установки. Все ее процедуры реализованы в файлах opengl32.dll и glu32.dll,
поставляемых вместе с OS Windows в каталоге System32.
Контекст воспроизведения OpenGL
Использование команд (процедур, функций, подпрограмм или методов класса
в зависимости от языка реализации) OpenGL требует создания так называемого контекста воспроизведения, или порта, через который
результаты выполнения этих
команд будут отображаться на экране.
One Point
Команды OpenGL позволяют изображать фигуры, указывая положения и атрибуты отдельных вершин.
Из этих вершин строятся так называемые примитивы. Простейшим примитивом является точка.
Point Attributes
Примитив «точка» обладает атрибутами – размером, формой (сглаживанием), цветом, которые регулируются командами OpenGL.
Alpha test
В OpenGL существует возможность управлять изображением примитивов, используя так называемую α-компоненту
цвета вершины. Значение α-компоненты вершины сравнивается с некоторым заданным значением по указанному
правилу. В зависимости от результата сравнения вершина изображается или нет на экране.
Object coordinates
Положение вершины относительно других объектов задается объектными координатами. Объектные координаты
жестко связаны с объектом. Положение вершины на экране определяется оконными координатами. Между
оконными и объектными координатами есть некоторая связь, на которую влияют размеры экрана.
Viewport
Одним из методов, управляющих преобразованием от объектных координат к оконным координатам является
метод Viewport. Вызов метода Viewport при изменении размеров окна обеспечивает разумное масштабирование.
Depth Test
Реалистическое изображение трехмерных объектов требует
специального тестирования глубины изображаемых вершин.
Для этого в OpenGL есть метод, определяющий функцию тестирования, и метод, активирующий эту функцию.
Ortho
В OpenGL существуют методы, регулирующие преобразования от объектных координат к так называемым
координатам отсечения. Одним из таких методов является метод Ortho, создающий матрицу ортографической
проекции. Использование метода Ortho позволяет сохранить пропорции изображения и отображать объект в
правой системе координат.
MODELVIEW transformation
Методы OpenGL, преобразующие объектные координаты к координатам наблюдения,
позволяют манипулировать положением объекта на экране, его видимыми размерами
и ориентацией в пространстве.
Display Lists
Команды OpenGL могут быть объединены в так называемые дисплейные списки. Дисплейные списки можно
сохранять в быстрой памяти и многократно воспроизводить на экране, оптимизируя использование ресурсов
времени и памяти.
GDI Text
Существуют различные возможности вывода текста на экран. Простейший из них состоит в использовании
стандартных функций GDI. В этом случае текст выводится в окно с контекстом OpenGL так же, как в обычное окно.
BMP Symbols
Другой способ вывода текста на экран использует методы, требующие присутствия контекста
OpenGL. Символы текста преобразуются в так называемые битовые карты (BITMAP).
Outline Symbols
В OpenGL можно выводить текст в форме символов, которые представлены 3-мерными объектами.
Это так называемый контурный шрифт (outline font).
LINES
Примитив LINES позволяет изображать отдельные отрезки прямых линий, ограниченных заданными вершинами.
Цвета вершин интерполируются.
Методы OpenGL позволяют выбирать произвольную толщину линии и алгоритм ее прерывистости.
LINE STRIP vs LINE LOOP
Два примитива LINE STRIP и LINE LOOP позволяют изображать связанные отрезки прямых линий, проходящих
через данные вершины. Атрибуты линий так же могут быть выбраны произвольно, как и в случае примитива LINES.
TRIANGLES
Примитив TRIANGLES позволяет изображать отдельные треугольники, опирающиеся на заданные координаты
вершин. Как и в случае линий цвет треугольника является результатом интерполяции цветов вершин. Атрибуты
многоугольника вообще и треугольника в частности предполагают наличие двух граней, каждая из которых может
быть исключена из изображения и по разному выглядеть.
TRIANGLE STRIP vs FAN
Примитивы TRIANGLE STRIP и TRIANGLE FAN позволяют изображать треугольники, связанные своими вершинами и/или сторонами.
Sphere and Torus
Использование примитивов TRIANGLE STRIP и TRIANGLE FAN позволяет изображать практически произвольные поверхности,
примером которых является сфера.
QUADS
Примитивы QUADS позволяют строить отдельные 4-угольники по заданным вершинам. Цвет вершин
интерполируется, как и в случае треугольников. Атрибуты изображения регулируются теми же методами OpenGL,
что и в общем случае многоугольников.
QUAD STRIP
Примитив QUAD STRIP позволяет по данным вершинам строить связанные своими сторонами совокупности 4-угольников.
Frustum
Используя примитив QUAD STRIP, можно построить дисплейные списки различных поверхностей, примером
которых является усеченный конус.
POLYGON
Примитив POLYGON позволяет объединить любое количество вершин в выпуклый многоугольник.
Форма многоугольника может зависеть от порядка перечисления вершин, как в случае, например, 10-угольника
звезды.
Blending Transparence
В OpenGL существуют команды, позволяющие смешивать цвета пикселей, последовательно поступающих в буфер фрейма. Это
позволяет создавать эффект прозрачности, манипулируя, например, значениями α-компонент пикселей.
Clipping
С помощью команд OpenGL можно отсекать различные участки объекта, задавая уравнения различных плоскостей отсечения.
Stencil
В OpenGL существует возможность использовать область памяти, которая называется буфером трафарета.
В буфере трафарета можно создавать изображения, независимо от буфера фрейма.
Затем полученный трафарет (Stencil) можно накладывать на текущее изображение в буфере фрейма.
Accum Buffer
Использование буфера-аккумулятора в OpenGL позволяет создать эффект затухающего следа при движении объекта.
Perspective Fog
Перспективная проекция позволяет создать эффект удаления объекта путем изменения его видимых размеров.
Эффект тумана способствует созданию реалистического образа при движении объекта в среде.
Scissor Test
Специальная команда OpenGL позволяет вырезать прямоугольник изображения объекта в оконных координатах произвольного
положения и размеров.
Material
Эффект освещения регулируется в OpenGL специальными командами, определяющими
модель освещения и свойства материала объекта.
Lights
При активном режиме освещения можно включать различные источники света, регулируя их атрибуты и атрибуты
материала. Эффекты освещения значительно улучшают реалистичность изображения.
Документ
Категория
Презентации
Просмотров
40
Размер файла
2 979 Кб
Теги
1/--страниц
Пожаловаться на содержимое документа