
- •Класс 1: тоновые и цветные изображения
- •Класс 2: двухуровневые или представляемые в нескольких «цветах» изображения
- •Класс 3: непрерывные кривые и линии
- •Класс 4: точки или многоугольники
- •Графические элементы (примитивы).
- •Ограничения на сложность изображения
- •Пересечение двух прямых на плоскости
- •Пересечение двух отрезков в плоскости
- •Пересечение плоскости и прямой
- •Тесты глубины Тест 1.
- •Тест 2.
- •Тест 3. Проверка сканирующей прямой
Тесты глубины Тест 1.
Это тест применяется для объектов в трехмерном пространстве. Используя центральную проекцию вдоль оси Z, вычисляется расстояние dp от точки наблюдения P0 до проверяемой точки P и d1 до точки пересечения грани P1 с направлением проекции. Если dp> d1, то точка заслонена гранью и невидима.
Тест 2.
Это применяется для объектов как в
трехмерном пространстве, так и в плоскости
при ортогональной проекции (при
)
для двух граней или точки и грани.
Пусть f1 и f2 - две грани, pr(f1) и pr(f2) - их проекции на картинную плоскость.
Первым этапом является нахождение точки
пересечения какого-либо ребра pr(f1)
с ребром рr(f2) -
.
Затем находятся точки
на
гранях f1 и f2, которые
проецируются в точку p12. Для этого
координаты xp и yp
подставляются в уравнения плоскостей
f1 и f2, откуда получаем
z1 и z2. Если
z1<z2, то грань f1
ближе к наблюдателю, чем грань f2.
Тест 3. Проверка сканирующей прямой
В этом тесте не недо искать точку
пересечения ребер проекции, как в тесте
2. Предполагается, что в картинной
плоскости проведена сканирующая линия,
для которой
.
Сканирующая прямая является проекцией некоторой сканирующей плоскости, параллельной оси Z. Сканирующая плоскость в свою очередь разрезает грани трехмерных фигур. Для каждой грани каждой фигуры определяются Z-координаты точек, проекции которых лежат на сканирующей прямой путем подстановки координат (х,у), где , в уравнение плоскости соответствующей грани. Тогда та грань из тех, которые пересекают сканирующую плоскость, является самой ближней к наблюдателю, для которой наименьшая Z-координата является наибольшей среди всех наибольших Z-координат других граней на интервале пересечения X-координат на сканирующей линии (пробном интервале).
Алгоритмы удаления невидимых поверхностей.
Сложность задачи удаления невидимых линий и поверхностей привела к появлению большого числа различных способов ее решения. Многие из них ориентированы на специализированные приложения. Наилучшего решения общей задачи удаления невидимых линий и поверхностей не существует. На практике существует тесная взаимосвязь между скоростью работы алгоритма и детальностью его результата. Ни один из алгоритмов не может достигнуть наилучших оценок для этих двух показателей одновременно.
Все алгоритмы удаления невидимых линий (поверхностей) включают в себя сортировку. Эффективность любого алгоритма удаления невидимых линий или поверхностей в большой мере зависит от эффективности процесса сортировки.
Алгоритмы удаления невидимых линий или поверхностей можно классифицировать по способу выбора системы координат или пространства, в котором они работают. Алгоритмы, работающие в объектном пространстве, имеют дело с физической системой координат, в которой описаны эти объекты. При этом получаются весьма точные результаты, ограниченные, вообще говоря, лишь точностью вычислений. Полученные изображения можно свободно увеличивать во много раз. Алгоритмы, работающие в объектном пространстве, особенно полезны в тех приложениях, где необходима высокая точность. Алгоритмы же, работающие в пространстве изображения, имеют дело с системой координат того экрана, на котором объекты визуализируются. При этом точность вычислений ограничена разрешающей способностью экрана. Результаты, полученные в пространстве изображения, а затем увеличенные во много раз, не будут соответствовать исходной сцене. Например, могут не совпасть концы отрезков. Алгоритмы, формирующие список приоритетов, работают попеременно в обеих упомянутых системах координат.
Объем вычислений для любого алгоритма,
работающего в объектном пространстве,
и сравнивающего каждый объект сцены со
всеми остальными объектами этой сцены,
растет теоретически как квадрат числа
объектов (n2). Аналогично, объем
вычислений любого алгоритма, работающего
в пространстве изображения и сравнивающего
каждый объект сцены с позициями всех
пикселей в системе координат экрана,
растет теоретически, как
.
Здесь n обозначает количество
объектов (тел, плоскостей или ребер) в
сцене, а N - число пикселей. Теоретически
трудоемкость алгоритмов, работающих в
объектном пространстве, меньше
трудоемкости алгоритмов, работающих в
пространстве изображения, при n<N.
Поскольку N обычно равно (512)2,
то теоретически большинство алгоритмов
следует реализовывать в объектном
пространстве. Однако на практике это
не так. Дело в том, что алгоритмы,
работающие в пространстве изображения,
более эффективны потому, что для них
легче воспользоваться преимуществом
когерентности при растровой реализации.
Наиболее известными алгоритмами удаления невидимых поверхностей являются:
алгоритм Робертса;
алгоритм количественной невидимости Аппеля;
алгоритм приоритетов Энкарнако;
алгоритм сканирующей прямой Уоткинса.
Алгоритм z-буфера
Все эти алгоритмы используют в том или ином виде основные тесты, рассмотренные выше.
Алгоритм Робертса.
Алгоритм удаления невидимых поверхностей на основе z-буфера.
Растровое представление геометрических объектов. Растровая развертка отрезка.
Растровая развертка сплошных областей. Закраска многоугольников.
Растровая развертка сплошных областей. Закраска ограниченной области.
Системы представления цвета. Аддитивный цветовой синтез.
Системы представления цвета. Субтрактивный цветовой синтез.
Система HSV. График МКО. Цветовой охват устройства.
Метод Гуро.
Метод Фонга.
Модели расчета освещенности граней трехмерных объектов.
Методы трассировки лучей. Метод прямой трассировки лучей.
Метод обратной трассировки лучей.