Декольтирование (Direct3D 9)
В приложениях Direct3D пользователи с помощью переводных картинок контролируют, какие пиксели из определенного изображения-примитива рисуются на поверхность однобуферной прорисовки. Приложения применяют переводные картинки к изображениям примитивов для правильной отрисовки многоугольников.
Например, следы шин и желтая дорожная разметка должны отображаться непосредственно на поверхности дороги. Однако значения разметки и дорожной поверхности по оси Z совпадают. Поэтому велика вероятность нечеткого разделения этих сущностей буфером глубины. Некоторые пиксели в примитиве заднего вида могут отображаться поверх пикселей в примитиве переднего вида, и наоборот. В результате изображение может дрожать при смене кадра. Этот эффект называется z-боевым или флимерингом.
Чтобы решить эту проблему, используйте трафарет для маскировки раздела примитива заднего вида, в котором будет отображаться переводная картинка. Выключите Z-буферизацию и отрисуйте изображение примитива переднего обзора в замаскированной области поверхности однобуферной прорисовки.
Хоть эту проблему и можно решить наложением нескольких текстур, но такой подход ограничит число других спецэффектов в приложении. Применение буфера трафарета для наложения декалей освобождает этапы наложения текстур для других эффектов.
Связанные темы