Collegamento dinamico

Gli sviluppatori di grafica talvolta creano shader di grandi dimensioni per utilizzo generico che possono essere usati da un'ampia gamma di elementi della scena. In fase di esecuzione, lo shader esegue in modo condizionale il codice appropriato per la situazione specificata. Sfortunatamente, questi shader per utilizzo generico di grandi dimensioni usano registri per utilizzo generico in modo inefficiente e possono essere molto più lenti rispetto agli shader più piccoli e mirati.

Il modello shader 5 risolve questo problema di prestazioni introducendo il collegamento di shader dinamico. Il collegamento dinamico separa i frammenti di codice shader usando interfacce e funzioni virtuali e consente all'applicazione di selezionare il frammento da usare in fase di disegno. Ciò migliora le prestazioni associando solo il codice shader necessario e non l'intero shader per utilizzo generico.

Contenuto della sezione

Elemento Descrizione
Archiviazione di variabili e tipi per gli shader da condividere
Descrive l'oggetto di collegamento di classe per l'archiviazione di variabili e tipi che possono essere condivisi da più shader.
Interfacce e classi
Descrive l'uso di interfacce e classi HLSL per implementare il collegamento dinamico.
Restrizioni di utilizzo dell'interfaccia
Descrive le restrizioni relative all'uso delle interfacce nel codice dello shader.

HLSL