Трёхмерная компьютерная графика
Категория реферата: Рефераты по информатике, программированию
Теги реферата: доклад, контрольная работа 10
Добавил(а) на сайт: Nadezhda.
Предыдущая страница реферата | 11 12 13 14 15 16 17 18 19 20 21 | Следующая страница реферата
Если ymax (пробное тело) > ymin (пробный объект) или
ymin (пробное тело) < ymax (пробный объект),
то пробный объект может проткнуть верх или виз пробного тела.
Установить флаг видимого протыкания для последующего использования. Занести проткнутое тело в список протыканий.
Если список протыканий пуст, то устанавливать флаг протыкания не надо.
Провести проверки экранирования ребер:
Вычислить s и d для ребра.
Вы числить p, q, w для каждой плоскости, несущей грань пробного тела.
Проверка полной видимости. Если ребро полностью, видимо, то перейти к следующему ребру.
Сформировать уравнения hj = 0 и решить их, объединяя попарно и включив в систему уравнения границ t = 0 и t = 1. Если установлен флаг видимого протыкания, то в систему надо включить и уравнение границы a = 0. Запомнить точки протыкания. В противном случае границу a = 0 не учитывать.
0 для всех других плоскостей. Если эти условия выполнены, то найти tmaxmin и tminmax.
Вычислить видимые участки отрезков и сохранить их для последующей проверки экранирования телами с более низкими приоритетами.
Определить видимые отрезки, связывающие точки протыкания:
Если флаг видимого протыкания не установлен, перейти к процедуре визуализации.
Если точек протыкания не обнаружено, перейти к процедуре визуализации.
Сформировать все возможные ребра, соединяющие точки протыкания, для пар тел, связанных отношением протыкания.
Проверить экранирование всех соединяющих ребер обоими телами, связанными отношением протыкания.
Проверить экранирование оставшихся соединяющих ребер всеми прочими телами сцены. Запомнить видимые отрезки.
Визуализировать оставшиеся видимые отрезки ребер.
Алгоритм использующий Z-буфер
Это один из простейших алгоритмов удаления невидимых поверхностей. Работает этот алгоритм в пространстве изображения. Идея z-буфера является простым обобщением идеи о буфере кадра. Буфер кадра используется для запоминания атрибутов (интенсивности) каждого пиксела в пространстве изображения. Z-буфер - это отдельный буфер глубины, используемый для запоминания координаты z или глубины каждого видимого пиксела в пространстве изображения. В процессе работы глубина или значение z каждого нового пиксела, который нужно занести в буфер кадра, сравнивается с глубиной того пиксела, который уже занесен в z-буфер. Если это сравнение показывает, что новый пиксел расположен впереди пиксела, находящегося в буфере кадра, то новый пиксел заносится в этот буфер и, кроме того, производится корректировка z-буфера новым значением z. Если же сравнение дает противоположный результат, то никаких действий не производится. По сути, алгоритм является поиском по x и y наибольшего значения функции z (z, y).
Главное преимущество алгоритма - его простота. Кроме того, этот алгоритм решает задачу об удалении невидимых поверхностей и делает тривиальной визуализацию пересечений сложных поверхностей. Сцены могут быть любой сложности. Поскольку габариты пространства изображения фиксированы, оценка вычислительной трудоемкости алгоритма не более чем линейна. Поскольку элементы сцены или картинки можно заносить в буфер кадра или в z-буфер в произвольном порядке, их не нужно предварительно сортировать по приоритету глубины. Поэтому экономится вычислительное время, затрачиваемое на сортировку по глубине.
Основной недостаток алгоритма - большой объем требуемой памяти. Если сцена подвергается видовому преобразованию и отсекается до фиксированного диапазона координат z значений, то можно использовать z-буфер с фиксированной точностью. Информацию о глубине нужно обрабатывать с большей точностью, чем координатную информацию на плоскости (x, y); обычно бывает достаточно 20 бит. Буфер кадра размером 512х512х24 бит в комбинации с z-буфером размером 512х512х20 бит требует почти 1.5 мегабайт памяти. Однако снижение цен на память делает экономически оправданным создание специализированных запоминающих устройств для z-буфера и связанной с ним аппаратуры.
Альтернативой созданию специальной памяти для z-буфера является использование для этой цели оперативной или массовой памяти. Уменьшение требуемой памяти достигается разбиением пространства изображения на 4, 16 или больше квадратов или полос. В предельном варианте можно использовать z-буфер размером в одну строку развертки. Для последнего случая имеется интересный алгоритм построчного сканирования. Поскольку каждый элемент сцены обрабатывается много раз, то сегментирование z-буфера, вообще говоря, приводит к увеличению времени, необходимого для обработки сцены. Однако сортировка на плоскости, позволяющая не обрабатывать все многоугольники в каждом из квадратов или полос, может значительно сократить этот рост.
Другой недостаток алгоритма z-буфера состоит в трудоемкости и высокой стоимости устранения лестничного эффекта, а также реализации эффектов прозрачности и просвечивания.
Более формальное описание алгоритма z-буфера таково:
Заполнить буфер кадра фоновым значением интенсивности или цвета.
Заполнить z-буфер минимальным значением z.
Преобразовать каждый многоугольник в растровую форму в произвольном порядке.
Для каждого Пиксел(x, y) в многоугольнике вычислить его глубину z (x, y).
Сравнить глубину z (x, y) со значением Z буфер(x, y), хранящимися в z-буфере в этой же позиции.
Рекомендуем скачать другие рефераты по теме: шпоры бесплатно, налоги и налогообложение.
Предыдущая страница реферата | 11 12 13 14 15 16 17 18 19 20 21 | Следующая страница реферата