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

Большинство современных графических станций содержат в себе графические платы с аппаратной реализацией z-буфера, зачастую включая и аппаратную "растеризацию" (т. е. преобразование изображения из координатного представления в растровое) граней вместе с закрашиванием Гуро. Подобные карты обеспечивают очень высокую скорость рендеринга вплоть до нескольких миллионов граней в секунду (Voodoo - 1,5 млн треугольников в секунду, Voodoo2 - до 3 млн треугольников в секунду, 90-180 мегапикселов в сек).

Средние временные затраты составляют 0(и), где п- общее количество граней.

Одним из основных недостатков z-буфера (помимо большого объема требуемой под буфер памяти) является избыточность вычислений: осуществляется вывод всех граней вне зависимости от того, видны они или нет. И если, например, данный пиксел накрывается десятью различными лицевыми гранями, то для каждого соответствующего пиксела каждой из этих десяти граней необходимо произвести расчет цвета. При использовании сложных моделей освещенности (например, модели Фонга) и текстур эти вычисления могут потребовать слишком больших временных затрат.

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

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


⇐ Предыдущая| |Следующая ⇒