Основная идея этого алгоритма поясняется на рис. 5.29. Проецирующий луч, исходящий из центра проецирования ЦП, пересекает две поверхности. Если в процессе растрового преобразования многоугольников мы будем отслеживать расстояние от ЦП до ближайшего многоугольника вдоль каждого луча проецирования, то сможем обновлять эту информацию по мере проективного преобразования всех многоугольников, описывающих объекты сцены. В изображение от каждого луча проецирования включается только точка многоугольника, ближайшего к ЦП.
Рис. 5.29. Алгоритм z-буфера Если речь идет о выпуклых объектах, таких как куб, то грани, ориентированные прочь от наблюдателя, можно просто искпючить из дальнейшего процесса. Частные случаи будут рассмотрены в главе 7.
5.5. Удаление невидимых поверхностей Основное достоинство этого алгоритма заключается в том, что его сложность в худшем случае пропорциональна количеству многоугольников и что для его реализации требуется очень мало вычислительных операций в дополнение к тем, которые в любом случае требуется выполнять при формировании изображения. Для реализации алгоритма в системе должен быть организован буфер глубины (или z-буфер), в котором по мере выполнения обработки очередных многоугольников сохраняется информация о расстоянии между ЦП и точками на объекте. В некоторых графических системах такой буфер организуется в основной памяти компьютера, а в некоторых добавляется специальный модуль памяти, с которым работает ап-паратно реализованный конвейер обработки.
От прикладного программиста при работе с этим алгоритмом требуется выполнить только две операции"opengl5_246.html">⇐ Предыдущая| |Следующая ⇒