
- •Предмет, цели и задачи компьютерной графики.
- •Исторические этапы развития компьютерной графики
- •Современные направления и виды компьютерной графики, типы изображений.
- •Устройства ввода
- •Мышь, трекбол, джойстик
- •Сенсорные панели
- •Устройства вывода (дисплеи), цветовые модели.
- •Системы координат в машинной графике.
- •Аффинные преобразования (перенос и масштабирование).
- •Аффинные преобразования (вращение).
- •Однородные координаты и матричное представление 2d-преобразований.
- •Матричное представление 3d-преобразований.
- •Проекции. Основные виды и их отличия.
- •Математический аппарат центральной перспективной проекции.
- •Проблема удаления невидимых линий и поверхностей. Обзор основных подходов и алгоритмов.
- •Удаление невидимых линий методом плавающего горизонта.
- •Алгоритм удаления невидимых поверхностей с использованием z-буфера.
- •Удаление невидимых линий на основе алгоритма Робертса.
- •Удаление невидимых поверхностей методом трассировки лучей.
- •Алгоритм удаления невидимых поверхностей Варнока.
- •Построчный алгоритм удаления невидимых поверхностей Уоткинса.
- •Алгоритмы списка приоритетов. Метод сортировки по глубине (Ньюэла – Ньюэла – Санча).
- •Алгоритм Вейлера – Азертона.
- •Алгоритм Галимберти – Монтанари.
- •Алгоритм генерации отрезков (симметричный цда).
- •Алгоритм генерации отрезков (простой цда).
- •Алгоритм Брезенхема для генерации отрезков.
- •Проблема растровой развертки окружностей.
- •Алгоритм Брезенхема для развертки окружностей.
- •Алгоритмы заливки областей на основе построчного сканирования.
- •Алгоритмы заливки областей на основе затравочного заполнения.
- •Основы фрактальной геометрии.
- •Алгоритмы отсечения. Постановка задачи.
- •Алгоритм отсечения Коэна-Сазерленда.
- •33.Синтез реалистических изображений. Расчет интенсивности при различных видах освещения.
- •Классификация источников освещения. Проблема расчета затухания интенсивности (радиальное, угловое).
- •Методы закраски Гуро и Фонга.
- •Моделирование глобального освещения методом трассировки лучей (прямая и обратная трассировки).
- •Распределенная трассировка лучей. Дефект алиайзинга и методы его устранения.
- •Методы оптимизации методов трассировки лучей. Основные характеристики и недостатки методов трассировки лучей.
- •Метод излучательности.
Проблема удаления невидимых линий и поверхностей. Обзор основных подходов и алгоритмов.
Цель: устранение неоднозначности восприятия объектов и улучшение их зрительного восприятия.
Все алгоритмы удаления невидимых линий включают в себя сортировку, которая ведется по геометрическому расстоянию от наблюдателя до тела. Чем дальше расположена часть объекта от наблюдателя, тем больше вероятность того, что она будет частично/полностью заслонена другими частями этого объекта.
Эффективность любого алгоритма удаления невидимых линий (УНЛ) будет зависеть от эффективности алгоритма сортировки. Все методы УНЛ можно классифицировать по 3м признакам:
По выбору удаляемых частей: удаление невидимых линий, ребер, поверхностей, объектов;
По порядку обработки элементов сцены:
удаление в произвольном порядке
удаление в порядке, определенном процессом визуализации
По системе координат:
алгоритмы, работающие в пространстве объектов (каждая из n граней объекта сравнивается с остальными (n-1) гранями). Сложность – N^2
алгоритмы, работающие в пространстве изображения (для каждого пикселя изображения определяется, какая из n граней объекта в нем просматривается). Сложность – (M^2*N)
Удаление невидимых линий методом плавающего горизонта.
Чаще всего используется для удаления невидимых линий 3хмерного представления функций, описывающих какую-либо поверхность f(x,y,z)=0.
Алгоритм работает в пространстве изображения. Главная его идея заключается в сведении 3хмерных задач к нескольким двухмерным путем пересечения исходной поверхности последовательностью параллельных секущих плоскостей, имеющих постоянно значение координаты z. Получается набор кривых y=f(x,Zi), Zi=const в пределах одной секущей плоскости, i=1..n.
После определения n произвольно упорядоченных плоскостей Zi по возрастанию расстояния от наблюдателя.
Для каждой плоскости, начиная с ближайшей к точке наблюдения, строится кривая, лежащая на ней, т.е. для каждого значения координаты X в пространстве изображения определяется соответствующее значение Y.
Сам процесс УНЛ заключается в следующем: если на текущей плоскости при некотором заданном X соответствующее значение Y больше, чем значение Y на всех предыдущих кривых, то данная кривая в этой точке видима.
Данный алгоритм работает хорошо до тех пор, пока какая-то очередная кривая не окажется ниже самой первой из кривых. Алгоритм посчитает данный фрагмент кривой невидимым, тогда как на самом деле это не так. Чтобы исключить это, вводится понятие верхнего и нижнего горизонтов.
На программном уровне исходный вариант реализован 1 массивом. Верхний и нижний горизонты реализованы 2мя массивами.
Недостаток алгоритма: не всегда поверхность можно описать функцией.
Алгоритм удаления невидимых поверхностей с использованием z-буфера.
Основная идея: для каждого пикселя экрана в памяти хранится еще и координата Z или глубина
Данный алгоритм работает в пространстве изображений:
Заполнить буфер кадра фоновыми значениями интенсивности или цвета;
Заполнить Z-буфер максимальными значениями Z;
Преобразовать каждую грань сцены в растровую форму в произвольном порядке;
Для каждого значения (X, Y) пикселя в каждом многоугольнике вычислить его глубину Z и
в цикле сравниваем эту глубину с текущим значением Z, хранящимся в Z-буфере для этой позиции. Если
, записать атрибут этого пикселя в буфер кадра и заменить
на
Достоинства: простота; время работы алгоритма мало зависит от сложности сцены; многоугольники, составляющие сцену, могут обрабатываться в любом порядке.
Недостатки: дополнительные затраты памяти на Z-буфер; т.к. пиксели будут заноситься в произвольном порядке, возникают трудности с реализацией эффекта прозрачности/просвечивания