On-Line Библиотека www.XServer.ru - учебники, книги, статьи, документация, нормативная литература.
       Главная         В избранное         Контакты        Карта сайта   
    Навигация XServer.ru








 

Удаление невидимых поверхностей

     Получение списка многогранников - предварительная стадия в
процессе удаления невидимых поверхностей. Программа моделирова-
ния твердого тела обходит список двухмерных многогранников, об-
рабатывая  каждый  пиксел  соответствующего  изображения.  Если
Z-значение  пиксела  больше  соответствующего Z-значения, то он
находится за существующим пикселом (относительно человека,  си-
дящего  за дисплеем) и, следовательно, не отображается. Если же
его Z-значение сигнализирует о том, что пиксел находится  перед
существующим,  он отображается. В результате цвет пиксела уста-
навливается в соответствии с только что оцененным  пикселом,  а
новое Z-значение начинает отражать новую глубину. При этом обь-
екты на экране появляются в том порядке,  в  котором  программа
воспроизведения изображения обрабатывает список. В итоге  появ-
ляется изображение, визуально совпадающее с оригиналом.
     Сколько  дополнительной  экранной  памяти вам понадобится,
чтобы должным образом представить все значения глубины?  Восемь
бит  для  одного  пиксела в Z-буфере дает 256 значений глубины.
Для простых моделей этого будет достаточно. Непрактично  предс-
тавлять  каждое  возможное значение глубины. Сначала необходимо
установить диапазон Z-значений для данного объекта. Если  обра-
батываемый  трехмерный  объект имеет, например, площадь около 5
сантиметров, то безопасный диапазон глубины равен 10  сантимет-
рам. Восемь бит Z-буфера позволяют разбить этот диапазон на 256
значений,  то есть получить приращение глубины около трети мил-
лиметра. Ошибки округления могут привести к неправильному отоб-
ражению нескольких пикселов, но в основном представление  будет
очень точным.
     Современные развитые графические рабочие станции предагают
значительно  большие буфера - до 32 бит, позволяющие вам эффек-
тивно использовать более 4 биллионов различных градаций  глуби-
ны. В некоторых случаях необходима и такая точность.
     Общее заблуждение состоит в том, что модель большего объе-
ма, требует больший Z-буфер. Это не всегда справедливо, особен-
но  если  все  элементы выполнены в больших масштабах. Проблемы
возникают, когда нужно работать с моделями, имеющими как  боль-
шие, так и очень малые значения глубины.
     Рассмотрим модель, состоящую из двух мелких объектов, сое-
диненных  50-метровым  цилиндром. Допустим, что необходима точ-
ность глубины по крайней  мере  в  полмиллиметра,  чтобы  точно
отобразить  мелкие  объекты. Тогда нужно разделить расстояние в
50 метров на это приращение, что даст более 100 тысяч различных
Z-значений, или, по крайней мере, 17-битовый Z-буфер.  Если  вы
рассматриваете  некоторые  современные модели (например, косми-
ческие станции, компоненты  которых  варьируются  от  маленьких
болтиков  до  громадных  солнечных  батарей), важность точности
глубины существенно возрастает. К счастью, вам  не  обязательно
дважды  тратить  память на такую громоздкую Z-буферизацию, если
вы используете двойную буферизацию образа. Как только изображе-
ние нарисовано в одном из буферов, память  Z-буфера  можно  ис-
пользовать для вторичного буфера.
Назад       Содержание       Вперёд