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


Динамическое связывание

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

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

В этом разделе

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

HLSL