А-буфер - A-buffer

В компьютерная графика, А-буфер, также известен как сглаженный, усредненная по площади или буфер накопления, представляет собой общий механизм скрытой поверхности, подходящий для компьютеров с виртуальной памятью среднего размера. Он разрешает видимость среди произвольного набора непрозрачных, прозрачных и пересекающихся объектов. Используя легко вычисляемое окно Фурье (прямоугольный фильтр), он увеличивает эффективное разрешение изображения во много раз по сравнению с Z-буфером с умеренным увеличением стоимости.[1]

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

Использует

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

A-буфер помогает в использовании методов видимости и поддерживает все мыслимые примитивы геометрического моделирования: многоугольники, участки, квадрики, фракталы и т. Д. Это также помогает управлять прозрачностью и пересекающимися поверхностями (и прозрачными пересекающимися поверхностями).

Стратегия

Алгоритм A-буфера Карпентера[1] решает эту проблему, приближая Catmull's выборка области с точностью до пикселя[2] с попиксельной операцией точности изображения, выполняемой в субпиксельной сетке. Полигоны сначала обрабатываются в порядке строк сканирования, обрезая их до каждого квадратного пикселя, который они покрывают. В результате получается список обрезанных фрагментов многоугольника, соответствующих каждому квадратному пикселю. Каждый фрагмент имеет 4 на 8 битовую маску частей покрываемого пикселя.[3]

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

Битовыми масками можно эффективно управлять с помощью Логические операции. Например, две битовые маски фрагментов могут быть сложены вместе, чтобы определить перекрытие между ними. Алгоритм A-буфера сохраняет лишь небольшое количество дополнительной информации с каждым фрагментом. Например. Он включает в себя z-экстент фрагмента, но не информацию о том, какая часть фрагмента связана с этими z-значениями. Таким образом, алгоритм должен делать предположения о геометрии субпикселя в случаях, когда битовые маски фрагментов перекрываются по z.

использованная литература

  1. ^ а б Карпентер, Лорен (Июль 1984 г.). "A-буфер, метод скрытой поверхности со сглаживанием". Компьютерная графика. 18 (3): 103–108. CiteSeerX  10.1.1.210.5497. Дои:10.1145/964965.808585.
  2. ^ Кэтмелл, Эдвин (Август 1978 г.). «Алгоритм скрытых поверхностей со сглаживанием» (PDF). Компьютерная графика. 12 (3): 6–11. Дои:10.1145/965139.807360. Архивировано из оригинал (PDF) на 2016-03-04. Получено 2015-06-19.
  3. ^ Фоли, Джеймс Д.; Файнер, Стивен К .; ван Дам, Андрис; Хьюз, Джон Ф. (1995). Компьютерная графика: принципы и практика на C (2-е изд.). Эддисон-Уэсли. ISBN  978-0-201-84840-3.