Considérations sur les performances (Direct3D 10)
Utilisation de pools d’effets
Il est courant pour les pipelines de rendu d’utiliser 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 à tous les nuanceurs, comme une matrice mondiale ou une position de lumière, et d’autres états spécifiques à chaque nuanceur, comme la couleur diffuse d’un objet ou le calcul de la surbrillance spéculaire. Un pool d’effets est un emplacement en mémoire pour stocker l’état utilisé dans de nombreux nuanceurs, ainsi que des 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 conduit à deux types d’effets différents : un effet global qui ne dépend pas de l’état dans un autre effet et 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 ) lors de la création de l’effet. Un effet global peut servir de pool d’effets ; un effet enfant ne peut pas être un pool d’effets.
Rubriques connexes