Vinculação dinâmica

Às vezes, os desenvolvedores de gráficos criam sombreadores grandes e de uso geral que podem ser usados por uma ampla variedade de itens de cena. Em runtime, o sombreador executa condicionalmente o código apropriado para a situação determinada. Infelizmente, esses sombreadores grandes e de uso geral usam GPRs (registros de uso geral) de forma ineficiente e podem ser muito mais lentos do que sombreadores menores e mais direcionados.

O modelo de sombreador 5 resolve esse problema de desempenho introduzindo a vinculação de sombreador dinâmico. A vinculação dinâmica separa fragmentos de código do sombreador usando interfaces e funções virtuais e permite que o aplicativo selecione o fragmento a ser usado no momento do desenho. Isso melhora o desempenho associando apenas o código de sombreador necessário e não todo o sombreador grande e de uso geral.

Nesta seção

Item Descrição
Armazenando variáveis e tipos para sombreadores compartilharem
Descreve o objeto de vinculação de classe para armazenar variáveis e tipos que vários sombreadores podem compartilhar.
Interfaces e classes
Descreve o uso de interfaces e classes HLSL para implementar a vinculação dinâmica.
Restrições de uso da interface
Descreve as restrições sobre o uso de interfaces no código do sombreador.

HLSL