Considérations relatives aux performances (Direct3D 10)

Utilisation des 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 à tous les nuanceurs tels qu’une matrice universelle ou une position légère, et d’autres États spécifiques à chaque nuanceur, tels que la couleur diffuse d’un objet ou le calcul de surbrillance spéculaire. Un pool d’effets est un emplacement en mémoire où 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 seule 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 différents d’effets : un effet global qui ne dépend pas de l’état d’un autre effet par rapport à un effet enfant qui dépend de l’état d’un autre effet.

Vous spécifiez si un effet est un effet global (cas par défaut) ou un effet enfant (en fournissant l’effet D3D10 l’indicateur de compilation d’effet _ _ _ enfant _ ) 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.

Rendu d’un effet

Effets (Direct3D 10)