- •Виртуальные поверхности отображения Память буфера кадра.
- •Черно-белый буфер кадра (с одной битовой плоскостью)
- •Полутоновый чёрно-белый буфер кадра с n битовыми плоскостями.
- •Полутоновый чёрно-белый буфер кадра с n битовыми плоскостями и w-разрядной таблицей цветов.
- •Простой цветной буфер кадра.
- •Ц ветной буфер кадра с 24 битовыми плоскостями.
- •Цветной буфер кадра с 24 битовыми плоскостями и 10-разрядной таблицей цветов.
- •Работа буфера кадров в реальном времени
- •Генерация векторов
- •Простой пошаговый алгоритм
- •Цифровой дифференциальный анализатор
- •Алгоритм Брезенхема
- •Алгоритмы растровой графики
- •Алгоритм Брезенхема разложения в растр отрезка для первого октанта
- •Целочисленный алгоритм Брезенхема
- •Целочисленный алгоритм Брезенхема для первого октанта
- •Общий алгоритм Брезенхема
- •Обобщенный целочисленный алгоритм Брезенхема квадрантов
- •Улучшение качества аппроксимации векторов
- •Простой метод устранения лестничного эффекта
- •Растровая развертка в реальном времени Заполнение многоугольника в порядке сканирования строк
- •Тест принадлежности точки многоугольнику
- •Простейший алгоритм построчного сканирования.
- •Развертка с групповой сортировкой.
- •Простой алгоритм заполнения с завтравкой
- •Построчный алгоритм заполнения с затравкой
- •Основы методов устранения ступенчатости
- •Отсечение. Основные алгоритмы двумерного отсечения и их идеи
- •Простой алгоритм двумерного отсечения
- •Алгоритм отсечения Сазерленда-Коэна.
- •Последовательное осечение многоугольников. Алгоритм Сазермана - Ходтмена
- •Алгоритм разбиения средней точкой.
- •Трехмерное отсечение
- •Построение реалистических изображений
- •Простая модель освещения
- •Эмпирическая модель отражения Буи-Туонга Фонга
- •Представление цвета в машинной графике
- •Зрительная система человека
- •Сложение цветов
- •Свойства голубого , жёлтого и пурпурного цвета.
- •Вычитание цветов
- •Цветовая система cie xyz и диаграмма цветности cie
- •Цветовые модели cmy и cmyk
- •Цветовая модель hsv
- •Цветовые модели y**
- •Цветовые модели yuv, yPbPr и yCbCr
- •Цветовая модель yiq
- •Удаление скрытых линий и поверхностей Классификация методов удаления невидимых частей Алгоритмы удаления линий
- •Алгоритм удаления поверхностей с z-буфером
- •Построчный алгоритм с z-буфером
- •Алгоритм разбиения области Варнока
- •Построчный алгоритм Уоткинса
- •Алгоритм трассировки лучей
- •1. Понятие текстуры и текстурирования.
- •2. Виды текстурирования.
- •2.1. Точное текстурирование.
- •2.2. Аффинное текстурирование.
- •2.3. Перспективно-корректное текстурирование.
- •2.4. Параболическое текстурирование.
- •2.5. Билинейная фильтрация текстур.
- •2.6. Мипмэппинг.
- •3. Текстуры в OpenGl.
Тест принадлежности точки многоугольнику
Обозначим ребра простого многоугольника на рис. .10. P1P2, P2P3, ..., PnP1. Пусть A(x, y) - точка, не лежащая на ломаной и нужно определить, принадлежит она многоугольнику или нет.
Проведем через точку горизонтальную полупрямую с правым концом в точке. Отметим на ней точку Q, которая заведомо не принадлежит многоугольнику.
В результате возникают следующие варианты:
Нет пересечений с многоугольником ==> точка А внешняя (точка 1).
Нечетное число пересечений ==> точка А внутренняя (точки 3 и 4).
Четное число пересечений ==> точка А внешняя (точка 5).
Точное определение тех пикселов, которые должны активироваться, требует некоторой осторожности. Рассмотрим простой прямоугольник, изображенный на рис. 2.11. Прямоугольник имеет координаты (1,1) (5,1), (5,4), (1,4). Сканирующие строки с 1 по 4 имеют пересечения с ребрами многоугольника при х = 1 и 5. Вспомним, что пиксел адресуется координатами своего левого нижнего угла, значит, для каждой из этих сканирующих строк будут активированы пикселы с x-координатами 1, 2, 3, 4 и 5. На рис. 2.11,а показан результат. Заметим, что площадь, покрываемая активированными пикселами, равна 20, в то время как настоящая площадь прямоугольника равна 12.
Модификация системы координат сканирующей строки и теста активации устраняет эту проблему, как это показано на рис. 2.11,b. Считается, что сканирующие строки проходят через центр строк пикселов, т. е. через середину интервала, как это показано на рис. 2.11,b. Тест активации модифицируется следующим образом:проверяется, лежит ли внутри интервала центр пиксела, расположенного справа от пересечения. Однако пикселы все еще адресуются координатами левого нижнего угла. Как показано на рис. 2.11,b, результат данного метода корректен. Перебирая все линии сверху вниз, мы получим заполнение в порядке сканирования строк.
Алгоритм можно улучшить, если повысить эффективность сортировки. Последнее достигается разделением сортировки по строкам в направлении y и сортировки в строке в направлении x с помощью групповой сортировки по y. Таким образом, развертка начинается до завершения
Простейший алгоритм построчного сканирования.
1 |
2 |
3 |
BC |
BC |
BC |
BA |
BA |
BA |
BD |
BD |
B |
CD |
CD |
CD |
AD |
AB |
A |
1 |
2 |
3 |
BA |
BA |
BA |
BC |
BC |
BC |
BD |
BD |
BD |
CD |
CD |
CD |
A |
AD |
AD |
2 формы сортировки
Порядок сортировки начинаемый с у влияет на размер списка активных ребер.
Либо обрабатывается больше информации чем нужно для данной строки.
Развертка с групповой сортировкой.
Проблема борьбы с избыточной информацией решается за счет введения дополнительных данных.
Вначале выполняется групповая сортировка по у всех отрезков изображения.
У – группа
1- пусто
2 -
3 – пусто
4 -
5 – пусто
6 -
7 – пусто
8 – пусто
При групповой сортировке по у образуются области памяти или группы.
При просмотре дисплейного списка заносится информация в группу, соответствующей наибольшей у координате.
х –координата точки пересечения со сканирующей строкой.
-
изменение координаты х при переходе
одной с другой
-
число сканирующих строк пересекаемых
данным отрезком.
Алгоритм
Список активных ребер для каждой сканирующей строки формируется добавлением информации из каждой у группы соответствующей сканирующей строке.
Координаты х точек пересечения
сортируется в порядке сканирования, а ребра из списка активных ребер преобразуются в растровую форму.
Для каждого отрезка список
активных ребер
число
пересечения со сканирующей строкой
уменьшается на единицу. Если
отрицательный
то отрезок исключается из списка.
Для каждого отрезка координата х получается добавлением
список активных ребер
сканирование строки 3
сканирование строки 5
сканирование строки 7
тип гранично определенный
4-рех или 8-ми связные пикселы
4-х связный связан в 4-х направлениях
8-ми связный соответственно в 8-ми
(используются реже – сложный алгоритм многопроходный)
Простой рекурсивный алгоритм закрашивания по затравке
Тек(x,y)= old_value

D
D
D