1.Метод переборного типа.(«грубой силы»).
В алгоритмах переборного типа, как правило, рассматривается каждое ребро, принадлежащее каждому из объектов сцены, и анализируется его взаимное расположение со всеми гранями каждого из объектов, составляющих сцену. При этом возможны следующие ситуации:
Временная сложность алгоритмов такого типа пропорциональна произведению количества ребер и количества граней в сцене. Никакие дополнительные свойства изображаемых объектов не учитываются.
18. Метод Z-буфера.
Другим методом «грубой силы» является метод Z-буфера, который весьма удобен для аппаратной реализации ввиду простоты алгоритма и используемого в нем набора операций. Временные характеристики этого метода линейно зависят от количества точек растра и «глубинной сложности сцены», т.е. усредненного числа граней, взаимно закрывающих друг друга.
Для реализации метода используются две области памяти: буфер глубины (Z-буфер) и буфер кадра (хранящий информацию о состоянии пикселов экрана компьютера). Буфер длины используется для хранения координаты Z (глубины) каждого видимого на данной стадии анализа изображения пиксела картинной плоскости. В буфере кадра запоминаются атрибуты (интенсивность и цвет) соответствующего пикселя.
Формально описание метода таково. Предположим, что сцена представлена в виде объединения многоугольников (возможно, пересекающихся). Построим ортогональную проекцию сцены на картинную плоскость .
Предполагается следующая последовательность шагов:
Инициализировать буфер кадра фоновыми значениями интенсивности или цвета.
Инициализировать буфер глубины значениями глубины фона.
Для каждой грани сцены последовательно:
Преобразовать проекцию границ в растровуюформу.
Для каждого пиксела проекции вычислить его глубину ;
Сравнить значение с соответствующим значением буфера глубины .
Если , то:
Записать атрибуты этого пиксела в буфер кадра;
Записать значение в соответствующую позицию буфера глубины .
Иначе – никаких действий не производить.
14.Особенности проекций гладких отображений 1-й случай
Заданная поверхность плоскость, описываемая уравнением Z = X и проектируемая на плоскость X = 0 (рис. 1).
Записав ее уравнение в неявном виде X-Z=0, Вектор L, вдоль которого осуществляется проектирование, имеет координаты
Вычислим координаты нормального вектора:
Скалярное произведение этих двух векторов отлично от нуля:
Тем самым вектор проектирования и нормальный вектор рассматриваемой поверхности не перпендикулярны ни в одной точке. Отметим, что полученная проекция особенностей не имеет.
2-й случай
Заданная поверхность параболический цилиндр с уравнением Z = X2 или, что то же, X2 - Z = 0. Нормальный вектор ортогонален вектору проектирования L в точках оси Y. Это вытекает из того, что .
Здесь, в отличие от первого случая, точки плоскости X = 0 разбиваются на три класса: к первому относятся точки (Z > 0), у которых два прообраза (на рис. 2 этот класс заштрихован); ко второму те, у которых прообраз один (Z = 0);
к третьему классу относятся точки, у которых прообразов на цилиндре нет вовсе. Прямая X = 0, Z = 0является особой. Вдоль нее векторы N ρ и L ρ ортогональны. Особенность этого типа называется складкой.
3-й случай
Рассмотрим поверхность, заданную уравнением X3 + XY - Z = 0.
Пусть Y = 1. Тогда Z = X3 + X (рис. 3).
При Y = 0 имеем: Z = X3 (рис. 4).
рис.3
рис. 4
Наконец, при Y = 1 получаем: Z = X3 - X (рис. 5).
рис. 5
Построенные сечения дают представление обо всей поверхности. Поэтому нарисовать ее теперь уже несложно (рис. 6).
Do'stlaringiz bilan baham: |