Скачиваний:
165
Добавлен:
01.05.2014
Размер:
446.46 Кб
Скачать

4.4.Алгоритм Уоткинса

В 1970 г. Уоткинс предложил алгоритм, ориентированный на растровой устройства вывода. Алгоритм работает в объектном пространстве и, по сути дела, сводит трехмерную задачу к двумерной. Уоткинс предложил рассекать рассматриваемую сцену плоскостями, перпендикулярными плоскости экрана, параллельными одна другой и проходящими по строкам развертки. Эти плоскости называются плоскостями развертки. Каждая плоскость развертки определяет совокупность отрезков прямой, представляющих собой следы пересечения граней с плоскостью развертки (рис.4.6).

Для формирования изображения в каждой плоскости развертки анализируют эти совокупности отрезков и определяют их положение относительно пользователя. Отрезки, расположенные впереди, закрывают полностью или частично отрезки, расположенные сзади. Таким образом, достаточно начертить на линии развертки части отрезков, видимые наблюдателю. Анализ всех плоскостей развертки позволяет сформировать множество всех строк и, следовательно, построить изображение с удаленными невидимыми частями.

Алгоритм Уоткинса особенно удобен, если требуется показать освещенность одиночных граней, а также такие эффекты, как прозрачность. Алгоритм позволяет формировать как линейные, так и растровые изображения. Недостатком является то, что для его эффективной работы необходимо использование достаточно сложных структур данных.

4.5.Алгоритм z-буфера

Является одним из простейших алгоритмов удаления невидимых поверхностей. Впервые был предложен Кэтмулом (1975 г.). Алгоритм работает в пространстве изображения. Является обобщением идеи о буфере кадра. Z-буфер - это отдельный буфер глубины, используемый для запоминания аппликаты или глубины каждого видимого пиксела в пространстве изображения. В процессе работы алгоритма глубина или значение аппликаты каждого нового пиксела, который нужно занести в буфер кадра, сравнивается с глубиной того пиксела, который уже занесен в z-буфер. Если это сравнение показывает, что новый пиксел расположен впереди пиксела, находящегося в буфере кадра, то новый пиксел заносится в этот буфер и, кроме того, производится корректировка z-буфера новым значением аппликаты. Если же сравнение дает противоположный результат, то никаких действий не производится. По сути, алгоритм является поиском по абсциссе и ординате наибольшего значения функции z(x,y).

Главное преимущество метода заключается в его простоте, что послужило причиной его аппаратной реализации в некоторых моделях графических процессоров. Помимо решения задачи об удалении невидимых поверхностей, алгоритм легко решает задачу визуализации пересечений сложных поверхностей. Алгоритм не требует никаких сортировок.

Основной недостаток - большой объем требуемой памяти. Так для стандартного режима видеоадаптера VGA c разрешением 640*480 потребуется 640*480*24+640*480* *20=13516800 байт.

Второй недостаток - трудоемкость устранения лестничного эффекта, а также реализация эффектов прозрачности и просвечивания.

4.6.Алгоритм трассировки лучей

Аппель в 1968 г. предложил отслеживать (трассировать) лучи, идущие от наблюдателя к объекту (рис.4.7). В алгоритме предполагается, сцена уже преобразована в пространство изображения. Перспективное преобразование не используется. Считается, что точка зрения или наблюдатель находятся в бесконечности на положительной полуоси аппликат. Поэтому все световые лучи параллельны этой оси. Каждый луч, исходящий от наблюдателя, проходит через центр пиксела на растре до сцены. Траектория каждого луча отслеживается, чтобы определить, какие именно объекты сцены, если таковые существуют, пересекаются с данным лучом. Если луч пересекает объект, то определяются все возможные точки пересечения луча и объекта. Если рассматривается много объектов, то получившиеся пересечения упорядочиваются (сортируются) по глубине. Пересечения с максимальным значением аппликаты представляют видимую поверхность для данного пиксела.

Наиболее важным элементом алгоритма трассировки лучей является процедура определения пересечений. Для упрощения (сокращения объема) вычислений используют сферические и параллелепипедные оболочки объектов.

Соседние файлы в папке Конспект по компьютерной графике