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

4.10. Удаление невидимых точек поверхностей

Анализ потенциальной видимости элементов поверхностей позволяет примерно вдвое сократить объем вычислений при построении изображения. Однако эта обработка не решает окончательно проблему удаления невидимых точек поверхностей, т.е. таких, которые заслоняются другими поверхностями. Решению данной задачи посвящено большое число работ [3, 4, 5, 8]. Большинство из приведенных в них алгоритмов ориентировано на построение каркасных изображений геометрических тел, т.е. видимых частей сторон аппроксимирующих треугольников.

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

Суть метода Z-буфера очень проста и сводится к следующему. Аналогично видеопамяти аппаратно или программно создается буфер памяти для хранения координат z видимых на текущий момент точек поверхностей (рис. 4.14). В Z-буфере используется такая же координатная организация обращения к его элементам по координатам X и Y, как и в видеопамяти, т.е. каждому пикселю области вывода в Z-буфере соответствует элемент, определяемый его координатами. Желательно, особенно если возможен синтез перспективных изображений, чтобы элементы Z-буфера были вещественного типа.

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

Рис. 4.14

Если z < Z[Y, X], то это значит, что на текущий момент данная точка ближе других конкурирующих точек к плоскости проекции. Тогда в соответствии с выбранной моделью распространения света необходимо рассчитать код цвета, соответствующего этой точке пикселя, и записать его в видеопамять, а координату z записать в Z-буфер. Иначе точка закрывается другой, ранее рассчитанной, которая расположена ближе к плоскости проекции или на таком же расстоянии. В этом случае рассматриваемая точка исключается из дальнейшей обработки.

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

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

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

Соседние файлы в папке Комп_Граф