13.8. Резюме Удаление невидимых поверхностей и линий - фундаментальная проблема компьютерной графики, поэтому для качественного выполнения этой работы разработано много различных технологий. Алгоритмы удаления невидимых поверхностей (hidden-surface-removal - HSR) имеют обыкновение быть сложными, с большим временем исполнения, поэтому было затрачено много усилий для увеличения их эффективности. Полезно разделить различные методы на две категории. Одни алгоритмы оперируют на уровне «точности по объекту»: это означает, что все геометрические вычисления, осуществляемые в этих методах для определения относительных положений точек, ребер и плоскостей, делаются с максимально возможным для данной машины уровнем точности. Другие методы работают на уровне «точности по изображению»: это означает, что все операции там происходят «пиксел за пикселом», а расстояния сравниваются при помощи индикатора, обладающего конечной точностью.
В данной главе мы рассмотрели различные подходы к проблеме HSR для важного класса объектов, моделируемых полигональными сетками. Для повышения эсргрективности HSR все грани на сцене подвергаются предварительной обработке: их нелицевые грани удаляются, а лицевые отсекаются отображаемым объемом. Выжившие после этой процедуры грани отображаются в трехмерный порт просмотра с использованием перспективного преобразования и перспективного деления, так что каждая вершина в порте просмотра имеет результирующее положение (х, у) и значение псевдоглубины. Такая же предварительная обработка производилась и на подготовительном этапе алгоритма с буфером глубины, который описывался в главе 8. В целях сравнения мы в этой главе снова напомнили об алгоритме буфера глубины. Это весьма эффективный HSR-метод с точностью по изображению, особенно простой в реализации. Однако скорость этого метода ограничена большим количеством повторных рисований пикселов, которое в нем приходится делать. Кроме того, большое количество дополнительной памяти, необходимое для буфера глубины, может серьезно ограничить память, доступную для других задач программы, а фиксированная точность буфера глубины может привести к ошибкам в определении малых различий глубин удаленных объектов.