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