Liaison dynamique
Les développeurs de graphiques créent parfois des nuanceurs de grande taille et à usage général qui peuvent être utilisés par un large éventail d’éléments de scène. Lors de l’exécution, le nuanceur exécute de manière conditionnelle le code approprié pour la situation donnée. Malheureusement, ces gros nuanceurs à usage général utilisent des registres à usage général (GPRs) de manière inefficace et peuvent être beaucoup plus lents que les plus petits et les plus petits.
Le Shader Model 5 résout ce problème de performances en introduisant une liaison de nuanceur dynamique. La liaison dynamique sépare les fragments de code du nuanceur en utilisant des interfaces et des fonctions virtuelles et permet à l’application de sélectionner le fragment à utiliser au moment du tracé. Cela améliore les performances en liant uniquement le code du nuanceur nécessaire et non l’intégralité du nuanceur à usage général.
Dans cette section
| Élément | Description |
|---|---|
| Stockage des variables et des types pour les nuanceurs à partager |
Décrit l’objet de liaison de classe pour stocker des variables et des types que plusieurs nuanceurs peuvent partager. |
| Interfaces et classes |
Décrit l’utilisation d’interfaces et de classes HLSL pour implémenter la liaison dynamique. |
| Restrictions d’utilisation de l’interface |
Décrit les restrictions sur l’utilisation des interfaces dans le code du nuanceur. |