netlib.narod.ru< Назад | Оглавление | Далее >

Глава 8. Трафареты

Эта глава знакомит нас с буфером трафарета (stencil buffer) и завершает вторую часть книги. Буфер трафарета является внеэкранным буфером, который можно использовать для реализации ряда спецэффектов. Буфер трафарета имеет то же самое разрешение, что вторичный буфер и буфер глубины, так что пиксел буфера трафарета, находящийся в позиции (ij) соответствует пикселю в позиции (ij) во вторичном буфере и буфере глубины. Как видно из названия, буфер трафарета действует подобно трафарету, и позволяет блокировать визуализацию отдельных частей вторичного буфера.

Например, для того чтобы реализовать зеркало, нам просто необходимо отразить объект относительно плоскости зеркала; однако, вы наверняка хотите, чтобы отражение изображалось только в зеркале. Мы можем использовать буфер трафарета, чтобы блокировать визуализацию тех частей отражения, которые расположены вне зеркала. Эта ситуация поясняется на рис. 8.1.


Рис. 8.1. Отражение чайника без буфера трафарета и с ним

Рис. 8.1. На рисунке сверху изображено отражение чайника без использования буфера трафарета. Видно, что отражение визуализируется независимо от того, где оно находится — в зеркале или на стене. Используя буфер трафарета мы можем блокировать визуализацию тех частей отражения чайника, которые не попадают в зеркало (рисунок снизу)


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


Цели
  • Получить представление о том, как работает буфер трафарета, как создать буфер трафарета и как управлять им.
  • Узнать как создаются зеркальные отражения и как буфер трафарета используется для того, чтобы на поверхностях, не являющихся зеркальными, отражений не появлялось.
  • Посмотреть, как с помощью буфера трафарета можно визуализировать тени и избежать «двойного смешивания».


netlib.narod.ru< Назад | Оглавление | Далее >

Сайт управляется системой uCoz