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


Отображение эффекта (Direct3D 10)

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

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

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

Естественно, существуют рекомендации по повышению производительности для использования эффектов. Эти рекомендации в значительной степени одинаковы, если вы не используете эффект. Например, минимизация количества изменений состояния или организация переменных, которые должны обновляться по частоте. Эти тактики используются для минимизации объема данных, которые необходимо отправить с ЦП на GPU, и, следовательно, свести к минимуму потенциальные проблемы синхронизации.

Эффекты (Direct3D 10)