Динамическое связывание
Разработчики графики иногда создают большие шейдеры общего назначения, которые можно использовать различными элементами сцены. Во время выполнения шейдер условно запускает код, соответствующий заданной ситуации. К сожалению, эти крупные шейдеры общего назначения используют регистры общего назначения (GPR) неэффективно и могут быть гораздо медленнее, чем меньше и более целенаправленные шейдеры.
Модель шейдера 5 устраняет эту проблему производительности путем внедрения динамической компоновки шейдеров. Динамическое связывание отделяет фрагменты кода шейдера с помощью интерфейсов и виртуальных функций и позволяет приложению выбрать фрагмент для использования во время рисования. Это увеличивает производительность, привязывая только необходимый код шейдера, а не целый большой универсальный шейдер.
В этом разделе
Пункт | Описание |
---|---|
хранение переменных и типов для совместного использования шейдерами |
Описывает объект связывания классов для хранения переменных и типов, которыми могут совместно пользоваться несколько шейдеров. |
интерфейсы и классы |
Описывает использование интерфейсов и классов HLSL для реализации динамической компоновки. |
ограничения использования интерфейса |
Описывает ограничения на использование интерфейсов в коде шейдера. |