- •Аппаратные средства мг: устройство pастpового гpафического дисплея
- •Аппаратные средства машинной графики: устройство стpуйного пpинтеpа.
- •Аппаратные средства машинной графики: устройство лазерного пpинтеpа.
- •Аппаратные средства машинной графики: графопостроители.
- •Аппаратные средства машинной графики: манипуляторы типа “мышь”.
- •Двумерные геометрические (аффинные) преобразования
- •Композиция и коммутативность геометрических преобразований. Однородные координаты.
- •Видовой конвейер 2d. Преобразование координат
- •Плоские геометрические проекции. Ортографические проекции.
- •Плоские геометрические проекции. Косоугольные проекции.
- •Компоненты Delphi для представления графической информации
- •Создание реалистических изображений: алгоритм плавающего горизонта.
- •Создание реалистических изображений: алгоритм Вейлера-Азертона для удаления невидимых линий и поверхностей.
- •Создание реалистических изображений: алгоритм использующий z-буфер для удаления невидимых линий и поверхностей.
- •Создание реалистических изображений: алгоритм Ньюэла- Ньюэла-Санча для удаления невидимых линий и поверхностей.
- •Создание реалистических изображений: удаление невидимых линий методом трассировки лучей.
- •Цвет в машинной графике. Модели rgb cmyk
- •Цвет в машинной графике. Модель художника, модель hsv
- •Простая модель освещения
- •OpenGl Основные матрицы и работа с ними
- •Свойства материала в OpenGl Грани
- •Реализация проекций в OpenGl
- •Определение нормалей и закрашивание методом Гуро
- •Определение нормалей и закрашивание методом Фонга
- •Позиционные источники света в OpenGl
- •Направленные источники света в OpenGl
- •Модель освещения в OpenGl
- •Текстуры
- •Текстуры. Mip отображение
- •Разложение отрезка в растр по методу простого дифференциального анализатора.
- •Метод Брезенхема для разложение отрезка в растр
- •Заполнения многоугольников: простой алгоритм заполнения с затравкой.
- •Заполнения многоугольников: построчный алгоритм заполнения с затравкой.
- •Основные понятие и определения компьютерной графики
- •Алгоритмы удаления невидимых линий
- •Алгоритм плавающего горизонта
- •Алгоритм Ньюэла-Ньюэла-Санча
- •Алгоритм Вейлера-Азертона
- •Алгоритм трассировки лучей
-
Цвет в машинной графике. Модель художника, модель hsv
Художники пользуются иными принципами и характеризуют цвета как различные разбелы, оттенки и тона предельно насыщенных или чистых пигментов. Разбел получается при добавлении белого пигмента к чистому пигменту; при этом уменьшается насыщенность. Оттенок получается при добавлении черного пигмента к чистому пигменту, в результате чего снижается светлота. Тона получаются при добавлении черного и белого пигментов к чистому пигменту. Во всех этих случаях получаются различные цвета одного и того же цветового тона, отличающиеся насыщенностью и светлотой. При смешении только черного и белого пигментов получаются серые цвета. На рис. 17.9 показаны соотношения между разбелами, оттенками и тонами. Можно было бы предложить измерять цвет процентным содержанием пигментов, смешение которых дает интересующий нас цвет.
Рис. __. Цветовой куб модели RGB, если на него смотреть вдоль главной диагонали. Видимые ребра куба изображены сплошными линиями, а невидимые – штриховыми.
модели HSV (рис. 5) цвет описывается следующими параметрами: цветовой тон H (Hue), насыщенность S (Saturation), яркость, светлота V(Value). Значение H измеряется в градусах от 0 до 360, поскольку здесь цвета радуги располагаются по кругу в таком порядке: красный, оранжевый, желтый, зеленый, голубой, синий, фиолетовый. Значения S и V находятся в диапазоне (0…1).
риведем примеры кодирования цветов для модели HSV. При S=0 (т.е. на оси V) - серые тона. Значение V=0 соответствует черному цвету. Белый цвет кодируется как S=0, V=1. Цвета, расположенные по кругу напротив друг друга, т.е. отличающиеся по H на 180 º, являются дополнительными. Задание цвета с помощью параметров HSV достаточно часто используется в графических системах, причем обычно показывается развертка конуса.
-
Простая модель освещения
падающая на поверхность, может быть поглощена, отражена или пропущена. Объект можно увидеть, только если он отражает или пропускает свет; если же объект поглощает весь падающий свет, то он невидим и называется абсолютно черным теломСвойства отраженного света зависят от строения, направления и формы источника света, от ориентации и свойств поверхности. Отраженный от объекта свет может также быть диффузным или зеркальным. Диффузное отражение света происходит, когда свет как бы проникает под поверхность объекта, поглощается, а затем вновь испускается. При этом положение наблюдателя не имеет значения, так как диффузно отраженный свет рассеивается равномерно по всем направлениям. Зеркальное отражение происходит от внешней поверхности объекта.
Свет точечного источника отражается от идеального рассеивателя по закону косинусов Ламберта: интенсивность отраженного света пропорциональна косинусу угла между направлением света и нормалью к поверхности, т. е.
I = Ilkdcosθ 0 <= θ <= π/2
где I - интенсивность отраженного света, Il - интенсивность точечного источника, kd - коэффициент диффузного отражения (0 <= kd <= 1), θ - угол между направлением света и нормалью к поверхности. Если θ > π/2, то источник света расположен за объектом. Коэффициент диффузного отражения kd зависит от материала и длины волны света, но в простых моделях освещения обычно считается постоянным.
машинной графике они заменяются на коэффициент рассеяния - константу, которая входит в формулу в линейной комбинации с членом Ламберта:
I = Iaka + Ilkdcosθ 0 <= θ <= π/2
где Ia - интенсивность рассеянного света, ka - коэффициент диффузного отражения рассеянного света (0 <= ka <= 1).. Но если центр проекции лежит близко к объекту, то 1/d2 изменяется очень быстро, т. е. у объектов, лежащих примерно на одинаковом расстоянии от источника, разница интенсивностей чрезмерно велика. Как показывает опыт, большей реалистичности можно добиться при линейном затухании. В этом случае модель освещения выглядит так:
I = Iaka + Ilkdcosθ
d + K
где K - произвольная постоянная.
Благодаря зеркальному отражению на блестящих предметах появляются световые блики. 23. OpenGL графические примитивы, координатные системы, трансформации.
В OpenGL векторными примитивами являются точки, линии и многоугольники., в разных координатных системах вершина может описываться парой, тройкой или четверкой координат.
Под термином прямая имеется ввиду отрезок прямой, а многоугольник обязательно должен быть выпуклым. Область называется выпуклой областью, если отрезок, соединяющий любые две ее точки, полностью находится внутри этой области.
OpenGL, каждый геометрический объект описывается как упорядоченный набор вершин. Вершины задаются командой
glVertex[2 3 4][s i f d](координаты)
mode – вид примитива, может принимать следующие значения:
GL_POINTS – каждая вершина задает точку. Вершина n задает точку n. Всего будет выведено N точек;
GL_LINES – две вершины образуют отрезок прямой линии. Вершины 2n-1 и 2n задают линию n. Всего будет выведено N/2 линий. Если число вершин нечетно, то последняя игнорируется;
GL_POLYGON – вершины от 1 до N задают один многоугольник.
Остальные команды работают по той же схеме.
glRotate[f d](angle, x, y, z) - рассчитывает матрицу поворота на угол angle относительно вектора, определяемого тройкой (x, y, z), с точкой привязки в начале координат.
glTranslate[f d] (x, y, z) – рассчитывает матрицу переноса на вектор, определяемый тройкой (x, y, z), с точкой привязки в начале координат