Отрисовка эффекта (Direct3D 10)

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

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

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

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

Эффекты (Direct3D 10)