Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
voprosy_k_MGiG_2013 123456.doc
Скачиваний:
52
Добавлен:
28.03.2015
Размер:
328.19 Кб
Скачать
  1. Цвет в машинной графике. Модель художника, модель 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 достаточно часто используется в графических системах, причем обычно показывается развертка конуса.

  1. Простая модель освещения

падающая на поверхность, может быть поглощена, отражена или пропущена. Объект можно увидеть, только если он отражает или пропускает свет; если же объект поглощает весь падающий свет, то он невидим и называется абсолютно черным теломСвойства отраженного света зависят от строения, направления и формы источника света, от ориентации и свойств поверхности. Отраженный от объекта свет может также быть диффузным или зеркальным. Диффузное отражение света происходит, когда свет как бы проникает под поверхность объекта, поглощается, а затем вновь испускается. При этом положение наблюдателя не имеет значения, так как диффузно отраженный свет рассеивается равномерно по всем направлениям. Зеркальное отражение происходит от внешней поверхности объекта.

Свет точечного источника отражается от идеального рассеивателя по закону косинусов Ламберта: интенсивность отраженного света пропорциональна косинусу угла между направлением света и нормалью к поверхности, т. е.

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), с точкой привязки в начале координат

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]