русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Лекция 30.11.2008


Дата добавления: 2013-12-23; просмотров: 837; Нарушение авторских прав


Алгоритмы упорядочения граней.

Удаление невидимых граней

Z-буфер - буфер глубины, один и простейших методов эффективно реализуется аппаратно.

Каждому пикселю П(ху) картинной плоскости кроме цвета хранящегося в видеопамяти сопоставляется расстояние от него до картинной плоскости вдоль оси проецирования (его глубина)

В начале массив глубин инициализируется со значением +00. Для вывода на КП произвольной грани она переводится в растровое представление и для каждого пикселя определяется его глубина. Если глубина меньше глубины в z-буфере, то пиксель рисуется новым цветом и его глубина заносится в Z-буфер.

Для вычисления глубины соседних пикселей при растровом разложении грани можно использовать вариант целочисленного алгоритма Брезенхейма.

 

 

Ведем понятие сцены - комплекс изображений пространственных фигур на экране дисплея или в кадре (в кадре)

Сцена:

1) предметы (пространственные объекты),

2) освещение (цвет, число источников света и их характеристики),

3) фон, т.е. плоские объекты, заполняющие пространство экрана, не заполненное предметами.

 

Для корректного заполнения сцены требуется упорядочить грани изображаемых объектов, то дальние грани выводились раньше, чем более близких. Бывает, что заданные грани нельзя упорядочить, тогда производится разбиение одной или нескольких граней на фрагменты которые легко упорядочить.

 

 

Сортировки.

1. Метод сортировки по глубине. Наиболее простой – сортировка по расстояния до картинной плоскости вдоль направления проецирования с последующим выводом в порядке приближения. Иногда просто сортировка по глубине не обеспечивает правильного упорядочивания граней. Поэтому после сортировки проводится проверка порядка вывода граней.

Рассмотрим алгоритм проверки для проецирования по оz. Перед выводом грани P следует убедиться, что никакая Q проекция которой на Oz пересекается с проекцией грани P и не будет закрываться гранью P. Алгоритм состоит из проверок:



а) пересекаются ли проекции этих граней на ось Ox

б) пересекаются ли их проекции на ось Oy

в) находится ли грань P по другую сторону от плоскости проходящей через Q чем начало координат (наблюдатель)

г) находится ли грань Q по ту же сторону от плоскости через P что и начало координат

д) пересекаются ли проекции этих граней на картинную плоскость

 

Если хотя бы на один из этих вопросов получен отрицательный ответ считаем что они упорядочены верно и сравниваем P с другой гранью, иначе считаем что их нужно поменять местами, для чего вводятся проверки:

е) находится ли грань Q по другую плоскости от плоскости через Q что и начало координат

ж) находится ли грань P по ту же сторону от плоскости через Q что и начало координат

Если ни одна из доп проверок не позволяет с уверенностью решить какую из граней выводить раньше то одна из граней разбивается плоскостью проходящей через другую, тогда вопрос упорядочения решается легко.

 

2. Метод двоичного разбиения пространства.

Рассмотрим некоторую плоскость в объектном пространстве. \Она разбивает множество всех граней на 2 непересекающихся подмножества (кластера) в зависимости от того в каком полупространстве лежат эти грани. Плоскость не должна пересекать ни одну из граней.


 

 

Очевидно что ни одна из граней не лежащих в полу пространке не содержащих наблюдателя не может закрыть грани из полу пространства наблюдателя. Сначала выводятся дальние кластеры, а потом ближние. Также техника упорядочивания применяется и внутри кластера с повтором до тех пор, пока в кластере не останется только 1 грань.

Часто в качестве разделяющей плоскости выбирают одну из существующих. Есть 4 класса:

- лежащих на плоскости

- пересекающих её

- лежащих в положительном полупространстве

- лежащих в отрицательном

 

Грани, пересекаемые плоскостью, разбиваются вдоль неё. Производится разбиение дерева. Изображение строим в зависимости от использования типа проецирования

 

Метод построчного сканирования.

Всё изображение на картинной плоскости – ряд горизонтальных пикселей (или вертикальных)

 

Рассматривается сечение плоскостью проходящей через линию пикселей и через центр проецирования.. Пересечение плоскости с объектами сцены – множество отрезков которые необходимо спроэктировать. Задача удалении невидимых частей решается несложно (учитывается минимальный луч). После определения видимой проэкции грани на кп можно достроить видимую грань целиком.

 

4. Алгоритм Варнака.

 

 

Основан на разбиении картинной плоскости на части для каждой из которых задача видимости решается достаточно просто:

а) видимая часть картинной плоскости делится на 4 равных части

б) если часть полностью закрыта проекцией ближайшей грани или не содержит изображений ни одной грани то закраска очевидна

в) иначе эта часть делится на 4 более мелких и переходим к б

г) разбиение с точностью до пикселя

 



<== предыдущая лекция | следующая лекция ==>
Алгоритм определения видимости ребер произвольного многогранника. | Виды сглаживающих прямых.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.003 сек.