Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций по КГ.doc
Скачиваний:
16
Добавлен:
12.09.2019
Размер:
17.06 Mб
Скачать

Пример работы с z-буфером

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

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

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

Переходим к выводу серого примитива. Здесь намеренно создана ситуация пересечения голубого и серого примитивов. Посмотрим, как алгоритм Z-буфера справится сней.

При выводе серого примитива в кадр попадают изображения его точек, находящихся правее пересечения с голубым примитивом – только у них глубины меньше, чем у точек голубого примитива. Соответственно в ячейки Z-буфера занесены новые меньшие значения.

Итоговая картинка показывает окончательное заполнение кадра и Z-буфера.

Как видим, алгоритм Z-буфера совершенно одинаково обрабатывает ситуации и заслонения одного примитива другим, и «протыкания» одним примитивом другого.

Достоинства алгоритма z-буфера

  1. Простота и универсальность.

  2. Он нечувствителен к сложности сцены.

  3. Легко строятся сечения z=const.

Недостаток алгоритма z-буфера

  1. Повышенный расход оперативной памяти.

Следует заметить, что при постоянно падающей цене на оперативную память компьютеров отмеченный недостаток нивелируется с каждым годом. Это приводит к тому, что алгоритм Z-буфера становится все более доминирующим. Практически во всех видеоконтроллерах сегодня присутствует специальная область памяти под Z-буфер, измеряемая сотнями мегабайт, а сама закраска с его использованием реализуется аппаратно.

ИТОГИ

  • При малых количествах примитивов сцены предпочтительны объектные алгоритмы удаления невидимых линий и граней, а при сложных сценах – экранные.

  • Как объектные, так и экранные алгоритмы удаления невидимого потребляют значительный объем компьютерных ресурсов.

  • Поэтому в современных компьютерах значительная часть этой работы аппаратно реализуется в видеоконтроллерах (в частности, алгоритм Z-буфера).

  • Как и ОТСЕЧЕНИЕ ПО ВИДИМОМУ ОБЪЕМУ, алгоритмы УДАЛЕНИЯ НЕВИДИМОГО служат повышению скорости вывода в видеоконвейере.

  • Все эти методы разделяют множество объектов и примитивов сцены на ВИДИМЫЕ (и только они выводятся во вьюпорт) и НЕВИДИМЫЕ, на обработку которых не тратится ни память, ни процессорное время.

11Построение проекций план раздела

  1. Общая классификация проекций.

  2. Виды центральных проекций.

  3. Виды параллельных проекций.

  4. Практическое проецирование

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

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

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