- •Аппаратные средства мг: устройство pастpового гpафического дисплея
- •Аппаратные средства машинной графики: устройство стpуйного пpинтеpа.
- •Аппаратные средства машинной графики: устройство лазерного пpинтеpа.
- •Аппаратные средства машинной графики: графопостроители.
- •Аппаратные средства машинной графики: манипуляторы типа “мышь”.
- •Двумерные геометрические (аффинные) преобразования
- •Композиция и коммутативность геометрических преобразований. Однородные координаты.
- •Видовой конвейер 2d. Преобразование координат
- •Плоские геометрические проекции. Ортографические проекции.
- •Плоские геометрические проекции. Косоугольные проекции.
- •Компоненты Delphi для представления графической информации
- •Создание реалистических изображений: алгоритм плавающего горизонта.
- •Создание реалистических изображений: алгоритм Вейлера-Азертона для удаления невидимых линий и поверхностей.
- •Создание реалистических изображений: алгоритм использующий z-буфер для удаления невидимых линий и поверхностей.
- •Создание реалистических изображений: алгоритм Ньюэла- Ньюэла-Санча для удаления невидимых линий и поверхностей.
- •Создание реалистических изображений: удаление невидимых линий методом трассировки лучей.
- •Цвет в машинной графике. Модели rgb cmyk
- •Цвет в машинной графике. Модель художника, модель hsv
- •Простая модель освещения
- •OpenGl Основные матрицы и работа с ними
- •Свойства материала в OpenGl Грани
- •Реализация проекций в OpenGl
- •Определение нормалей и закрашивание методом Гуро
- •Определение нормалей и закрашивание методом Фонга
- •Позиционные источники света в OpenGl
- •Направленные источники света в OpenGl
- •Модель освещения в OpenGl
- •Текстуры
- •Текстуры. Mip отображение
- •Разложение отрезка в растр по методу простого дифференциального анализатора.
- •Метод Брезенхема для разложение отрезка в растр
- •Заполнения многоугольников: простой алгоритм заполнения с затравкой.
- •Заполнения многоугольников: построчный алгоритм заполнения с затравкой.
- •Основные понятие и определения компьютерной графики
- •Алгоритмы удаления невидимых линий
- •Алгоритм плавающего горизонта
- •Алгоритм Ньюэла-Ньюэла-Санча
- •Алгоритм Вейлера-Азертона
- •Алгоритм трассировки лучей
-
Модель освещения в OpenGl
Параметры модели задаются командой:
glLightModel[i f] v(GLenum pname, GLenum param)
Аргумент pname определяет единственное значение параметра модели освещения и может принимать следующие значения:
GL_LIGHT_MODEL_LOCAL_VIEWER - Параметр param содержит единственное булевское значение, определяющее местоположение наблюдателя. Если param = GL_FALSE, то направление наблюдения считается параллельным оси -z и направленным вдоль нее, независимо от действительного положения в видовых координатах. В противном случае (GL_TRUE) предполагается, что наблюдатель находится в начале видовой системы координат. По умолчанию параметр param установлен в GL_FALSE.
Использование локальной точки наблюдения позволяет создать более реалистичную картину зеркального освещения, так как для каждой точки поверхности формируется вектор, направленный на наблюдателя. В случае наблюдателя, расположенного в бесконечности, данный вектор для всех точек одинаков и направлен вдоль оси Z.
GL_LIGHT_MODEL_TWO_SIDE - Параметр param представляет единственное булевское значение, которое определяет расчет освещенности многоугольников для одной или двух граней. Этот параметр не влияет на расчет освещенности для точек, линий или битовых массивов. Если param = FALSE, то задано одностороннее освещение, и расчет освещенности производится только для лицевой грани. В противном случае (TRUE) задается двухстороннее освещение и, на ряду с лицевыми гранями, рассчитывается освещенность вершин обратных граней многоугольников. Их нормали направлены в противоположные стороны. По умолчанию FALSE. Если сцену составляют только замкнутые пространственные объекты (сферы, кубы и пр.), без сечений то целесообразно использовать расчет освещения только лицевых граней, что существенно ускоряет визуализацию объектов сцены.
GL_LIGHT_MODEL_COLOR_CONTROL - Параметр param может определятся символической константой GL_SEPATARE_SPECULAR_COLOR, заставляющей конвейер отделять вычисление зеркально отраженного света от других составляющих. В этом случае для каждой вершины рассчитываются два значения цвета: первое значение образуется совокупность всех не зеркальных составляющих, а второе суммой зеркальных составляющих. Данный режим важен при наложении текстур. При расчете результирующего цвета сначала первое значение комбинируется с цветовыми характеристиками текстуры, а затем результат объединяется со вторым значением. Такой подход позволяет получить более ярко выраженные зеркальные блики на текстурированной поверхности. Для возврата к значению, установленному по умолчанию, необходимо воспользоваться константой GL_SINGLE_COLOR .
Кроме того, для векторной версии команды доступно еще одно значение параметра pname.
GL_LIGHT_MODEL_AMBIENT - Параметр param содержит четыре целых или вещественных значения, которые задают полную фоновую интенсивность света. По умолчанию значение фонового цвета равно (0.2, 0.2,0.2, 1.0).
-
Текстуры
Текстуры можно рассматривать как прямоугольные массивы данных, хранящие информацию о цвете. Массив называется картой текстуры или текстурной картой, а элементы массива по аналогии с пикселем – тексель (Texel). Массивы могут быть одно-, двух-, трех- или четырехмерными.
Для того, чтобы текстурировать объект, надо:
-
Подготовить данные для текстуры (данные должны быть представлены двухмерным массивом, в том числе, изображением);
-
Создать текстурный объект, если необходимо. Нулевой текстурный объект создается автоматически;
-
Загрузить данные в текстурный объект;
-
Установить необходимые фильтры увеличения или уменьшения текстуры;
-
Определить поведение текстуры при выходе текстурных координат за диапазон (0;1);
-
Задать функцию наложения текстуры, т.е. определить, как сочетать информацию из пикселя с информацией текселя;
-
Привязать координаты текстуры к вершинам текстурированного объекта, т.е. указать для каждой вершины текстурные координаты;
-
Можно рассчитать текстурные координаты, исходя из координат вершин.
-
Включить режим текстурирования – разрешить системе использовать текстуры.
Загрузка данных в текстурный объект осуществляется командой glTextImage2D с перечисленными параметрами. Загрузка идет в текущий текстурный объект.
GL_PROXY_TEXTURE_2D проверяет возможность текстурирования.
Параметр level указывает уровень детализации: параметр задается отличным от нуля только в случае использования мультитекстурирования.
InternalFormat показывает, какую информацию вы хотите хранить в текселе.
ШИРИНА И ВЫСОТА ДОЛЖНЫ БЫТЬ СТЕПЕНЯМИ ДВОЙКИ.