Поделиться через


Рекомендации по производительности (Direct3D 10)

Использование пулов эффектов

Обычно конвейеры отрисовки используют множество шейдеров для отрисовки различных типов объектов и специальных эффектов. Шейдер — это смесь состояний, которые распространены среди всех шейдеров, таких как мировая матрица или световая позиция, и другое состояние, которое относится к каждому шейдеру, например диффузный цвет объекта, или вычисление зрителя выделения. Пул эффектов — это место в памяти для хранения состояния, используемого во многих шейдерах, а также распространенных объектов устройств, таких как шейдеры, объекты состояния отрисовки и буферы констант. Улучшение производительности приводит к обновлению общего состояния один раз для всех шейдеров, которым требуется это состояние.

Пул эффектов — это общее расположение памяти для состояния эффекта. Пул создается аналогично эффекту; его можно создать из памяти (или файла или ресурса). Это приводит к двум различным типам эффектов: глобальный эффект, который не зависит от состояния в другом эффекте и дочернем эффекте, который зависит от состояния в другом эффекте.

Вы указываете, является ли эффект глобальным (регистром по умолчанию) или дочерним эффектом (путем предоставления флага D3D10_EFFECT_COMPILE_CHILD_EFFECT) при создании эффекта. Глобальный эффект может служить пулом эффектов; Дочерний эффект не может быть пулом эффектов.

отрисовка эффекта

эффекты (Direct3D 10)