
- •Задачи компьютерной графики и ее место среди других методов обработки информации
- •Основные направления компьютерной графики. Основные структурные элементы системы машинной графики
- •Виды данных, представленных в форме изображений
- •Класс 1: тоновые и цветные изображения
- •Класс 2: двухуровневые или представляемые в нескольких «цветах» изображения
- •Класс 3: непрерывные кривые и линии
- •Класс 4: точки или многоугольники
- •Виды данных, представленных в форме изображений Понятие изображения
- •Понятие о структуре изображения. Основные графические элементы (примитивы)
- •Графические элементы (примитивы).
- •Видимые и невидимые поверхности. Ограничения на сложность изображения
- •Ограничения на сложность изображения
- •Тесты глубины Тест 1.
- •Тест 2.
- •Тест 3. Проверка сканирующей прямой
- •Алгоритмы удаления невидимых поверхностей
- •Алгоритм сканирующей прямой Уоткинса
- •Алгоритм Робертса
- •Растровое представление геометрических объектов. Растровая развертка отрезка
- •Растровая развертка отрезка.
- •Растровая развертка сплошных областей. Закраска многоугольников
- •Закраска многоугольников.
- •Растровая развертка сплошных областей. Закраска ограниченной области
- •Алгоритмы отсечения отрезков Отсечение отрезков
- •Алгоритм Сазерленда-Коэна
- •Алгоритм средней точки
- •Алгоритм Кируса-Бека
- •Метод Гуро
- •Метод Фонга
- •Модели расчета освещенности граней трехмерных объектов
- •Методы трассировки лучей. Метод прямой трассировки лучей
- •Классический метод обратной трассировки лучей
- •Методы повышения качества изображения при обратной трассировке лучей Текстурные карты и свойства материалов. Работа с растровыми картами (bmp, png, jpeg)
- •Отображение шероховатости (bump-mapping)
- •Сглаживание (antialiasing)
- •Кубические сплайны
Алгоритм Кируса-Бека
В
работе алгоритма Кируса-Бека используется
параметрическое представление отрезка:
Ps
(t)=P1+(P2-P1)*t;t∈[0;1].
Данный алгоритм позволяет выполнять
отсечение не только прямоугольным
окном, но и любым выпуклым
многоугольником.
Рассмотрим отдельное
ребро Ei
отсекающего многоугольника. Ориентируем
нормаль к этому ребру во внешнюю сторону
отсекающего многоугольника. Также будем
считать, что отсекающий многоугольник
обходится против часовой стрелки. Тогда,
если ребро – это вектор P(E(i1))
PEi2,
то нормаль NEi
будет пропорциональна (yEi2-yEi1;
xEi1-xEi2).
Обозначим
прямую, на которой лежит ребро через
Li.
Тогда область, отсекаемая прямой Li,
соответствует точкам P, для которых
скалярное произведение векторов (P-PEi))
и NEi
больше 0 (PEi
— любая точка на ребре Ei).
Точка пересечения прямой, на которой
лежит отрезок, с отсекающей прямой Li
находится из уравнения ((Ps(t)-PEi,NEi=0.
Решая это уравнение, находим t.
Для
описываемого алгоритма также важно в
каком направлении (внутрь окна или из
него) проходит точка при движении по
отрезку от P1
к P2.
Это определяется знаком ((P2-P1
),NEi.
Будем обозначать такие точки пересечения
как:
После
того, как рассчитаны координаты t для
всех возможных пересечений с прямыми
Li,
следует выбрать максимальную координату
из потенциально входящих и минимальную
из потенциально выходящих (tВхМакс;tВыхМин).
Если прямая, на которой лежит отрезок
P1
P2,
пересекает отсекающий многоугольник,
то tВхМакс<tВыхМин.
В этом случае, если пересечение
[t1,t2]=[tВхМакс,tВыхМин]∩[0,1]
непусто, то Ps(t1)
Ps(t2)
и будет искомым отсечённым отрезком, в
противном случае отрезок полностью
лежит вне отсекаемой области.
Метод Гуро
Этот метод предназначен для создания иллюзии гладкой криволинейной поверхности, описанной в виде многогранников или полигональной сетки с плоскими гранями. Если каждая плоская грань имеет один постоянный цвет, определенный с учетом отражения, то различные цвета соседних граней очень заметны, и поверхность выглядит именно как многогранник. Казалось бы, этот дефект можно замаскировать за счет увеличения количества граней при аппроксимации поверхности. Но зрение человека имеет способность подчеркивать перепады яркости на границах смежных граней - такой эффект называется эффектом полос Маха. Поэтому для создания иллюзии гладкости нужно намного увеличить количество граней, что приводит к существенному замедлению визуализации - чем больше граней, тем меньше скорость рисования объектов.
Метод Гуро основывается на идее закрашивания каждой плоской грани не одним цветом, а плавно изменяющимися оттенками, вычисляемыми путем интерполяции цветов примыкающих граней. Закрашивание граней по методу Гуро осуществляется в четыре этапа.
Рис. 1 Нормаль в вершине
|
Вычисляются нормали к каждой грани. |
|
Определяются нормали в вершинах. Нормаль в вершине определяется усреднением нормалей примыкающих граней (рис. 1). |
|
На основе нормалей в вершинах вычисляются значения интенсивностей в вершинах согласно выбранной модели отражения света. |
|
Закрашиваются полигоны граней цветом, соответствующим линейной интерполяции значений интенсивности в вершинах. |
Вектор нормали в вершине (a) равен
Определение интерполированных значений интенсивности отраженного света в каждой точке грани (и, следовательно, цвет каждого пиксела) удобно выполнять во время цикла заполнения полигона. Рассмотрим заполнение контура грани горизонталями в экранных координатах (рис. 2).
Рис. 2. Заполнение контура грани
Интерполированная интенсивность I в точке (X,Y) определяется исходя из пропорции
Отсюда
Значения интенсивностей I1 и I2 на концах горизонтального отрезка представляют собой интерполяцию интенсивности в вершинах:
или