Considérations sur les performances (Direct3D 10)
Utilisation de pools d’effets
Il est courant que les pipelines de rendu utilisent de nombreux nuanceurs pour afficher différents types d’objets et effets spéciaux. Le nuanceur est un mélange d’états qui sont communs entre tous les nuanceurs tels qu’une matrice mondiale ou une position claire, et d’autres états spécifiques à chaque nuanceur, comme la couleur diffuse d’un objet ou le calcul de surbrillance spéculaire. Un pool d’effets est un emplacement en mémoire pour stocker l’état utilisé dans de nombreux nuanceurs, ainsi que les objets d’appareil courants tels que les nuanceurs, les objets d’état de rendu et les mémoires tampons constantes. L’amélioration des performances résulte de la mise à jour de l’état commun une fois pour tous les nuanceurs qui ont besoin de cet état.
Un pool d’effets est un emplacement de mémoire partagée pour l’état de l’effet. Un pool est créé de la même façon qu’un effet ; il peut être créé à partir de la mémoire (ou d’un fichier ou d’une ressource). Cela entraîne deux types d’effets différents : un effet global qui ne dépend pas de l’état dans d’autres effets par rapport à un effet enfant qui dépend de l’état dans un autre effet.
Vous spécifiez si un effet est un effet global (cas par défaut) ou un effet enfant (en fournissant l’indicateur D3D10_EFFECT_COMPILE_CHILD_EFFECT) lorsque l’effet est créé. Un effet global peut servir de pool d’effets ; un effet enfant ne peut pas être un pool d’effets.
Rubriques connexes
-
effets (Direct3D 10)