- •Физические основы цвета и восприятие его человеком.
- •Удаление невидимх граней алгоритмом z-буфера.
- •Кодирование цветов в вычислительной технике.
- •Виды кг
- •Растровая графика. Базовые алгоритмы построения отрезка
- •Методы приоритетов
- •Алгоритм Брезенхейма для построения отрезка.
- •Кривая Безье
- •А лгоритмы закраски области заданным цветом. Простой алгоритм с упорядоченным списком ребер
- •Алгоритмы заполнения с затравкой
- •Методы построчного сканирования для криволинейных поверхностей
- •Алгоритмы Варнака и Робертса
- •Алгоритм Аппеля (метод трассировки лучей)
- •Однородные координаты. Геометрическая интерпретация
- •Виды проецирования.
- •Двумерное отсечение. Простой алгоритм определения видимости.
- •Двумерное параметрическое отсечение. Отсечение средней точкой
- •Двумерный алгоритм Лианга-Барски
- •Алгоритм Кируса-Бека
- •Зеркальное отражение. Закраска методом Гуро.
- •Зеркальное отражение. Закраска методом Фонга
- •Текстурирование.
- •Свето-теневой анализ. Метод излучательности
- •Отображения в окне. Виды координат
- •Растровая развертка. Алгоритмы отрезков и сплошных областей
- •Трехмерное отсечение. Обобщение
- •Алгоритм Плавающего горизонта
- •Алгоритм Вейлера-Азертона
- •Прозрачность. Свето-теневой анализ
Методы приоритетов
При реализации всех обсуждавшихся алгоритмов удаления невидимых линий и поверхностей устанавливались приоритеты, т. е. глубины объектов сцены или их расстояния от точки наблюдения. Алгоритмы, использующие список приоритетов, пытаются получить преимущество посредством предварительной сортировки по глубине или приоритету. Цель такой сортировки состоит в том, чтобы получить окончательный список элементов сцены, упорядоченных по приоритету глубины, основанному на расстоянии от точки наблюдения. Если такой список окончателен, то никакие два элемента не будут взаимно перекрывать друг друга. Тогда можно записать все элементы в буфер кадра поочередно, начиная с элемента, наиболее удаленного от точки наблюдения. Более близкие к наблюдателю элементы будут затирать информацию о более далеких элементах в буфере кадра. Поэтому задача об удалении невидимых поверхностей решается тривиально. Эффекты прозрачности можно включить в состав алгоритма путем не полной, а частичной корректировки содержимого буфера кадра с учетом атрибутов прозрачных элементов .
Для простых элементов сцены, например для многоугольников, этот метод иногда называют алгоритмом художника, поскольку он аналогичен тому способу, которым художник создает картину. Сначала художник рисует фон, затем предметы, лежащие на среднем расстоянии, и, наконец, передний план. Тем самым художник решает задачу об удалении невидимых поверхностей, или задачу видимости, путем построения картины в порядке обратного приоритета.
Алгоритм Брезенхейма для построения отрезка.
Для простоты, будем считать, что начало отрезка совпадает с началом координат, и прямая имеет вид , где .
Пусть начало отрезка имеет координаты (x1,y1), а конец (x2,y2) Обозначим dx=(x2-x1) dy=(y2-y1). Считаем что начальная точка находится слева. Пусть необходимо вычислить на (i+1)-м шаге какую точку необходимо выбрать.. Выбор следующей точки зависит от знака разности . Если , то следующая точка будет иметь координаты (xi+1,yi) и тогда , , если же , то следующая точка будет иметь координаты (xi+1,yi+1), тогда , .
Алгоритм построения окружности.
Из геометрии мы знаем, что окружность с центром в точке (xc,yc) и радиусом r, задается параметрически с помощью системы уравнений:
где
Дополнительно можно воспользоваться свойством симметрии и расчет производить лишь для 1/8.
Устранение ступенчатости
Наиболее заметно ухудшает качество изображения ступенчатость. Имеется следующие способы борьбы со ступенчатостью :
увеличение пространственного разрешения за счет усовершенствования аппаратуры,
трактовка пиксела не как точки, а как площадки конечного размера, яркость которой зависит от размера площади пиксела, занятой изображением отрезка,
"размывание" резкой границы, за счет частичной подсветки пикселов, примыкающих к формируемому отрезку. Понятно, что при этом ухудшается пространственное разрешение изображения.
Если пересекается только один пиксел, то площадь правее и ниже отрезка равна yi+m /2.
Если же надо рассмотреть два пиксела , то площадь нижнего пиксела составляет 1 – (1 – уi )²/2m,
а верхнего — (уi - 1 +m)²/2m