Étapes de pipeline (Direct3D 10)
Le pipeline programmable Direct3D 10 est conçu pour générer des graphiques pour les applications de jeu en temps réel. Le diagramme suivant montre le flux de données de l’entrée à la sortie à travers chacune des étapes programmables.
Toutes les étapes peuvent être configurées à l’aide de l’API. Les étapes comportant des cœurs de nuanceur courants (blocs rectangulaires arrondis) sont programmables à l’aide du langage de programmation HLSL. Comme vous le verrez, cela rend le pipeline extrêmement flexible et adaptable. L’objectif de chacune des étapes est répertorié ci-dessous.
- Étape assembleur d’entrée : la phase d’assembleur d’entrée est chargée de fournir des données (triangles, lignes et points) au pipeline.
- Étape du nuanceur de vertex. Cette étape traite les vertex, généralement par le biais d’opérations de type transformation, application d’apparence et éclairage. Un nuanceur de vertex prend toujours un seul vertex d’entrée et produit un seul vertex de sortie.
- Geometry-Shader Stage : la phase geometry-shader traite des primitives entières. Son entrée est une primitive complète (qui est trois sommets pour un triangle, deux sommets pour une ligne ou un sommet unique pour un point). En outre, chaque primitive peut également inclure les données de vertex pour toutes les primitives adjacentes aux bords. Cela peut inclure au maximum trois sommets supplémentaires pour un triangle ou deux sommets supplémentaires pour une ligne. Le nuanceur geometry prend également en charge l’amplification et la dé-amplification géométriques limitées. Étant donné une primitive d’entrée, le nuanceur Geometry peut ignorer la primitive ou émettre une ou plusieurs nouvelles primitives.
- Étape de sortie de flux : la phase de sortie de flux est conçue pour diffuser en continu des données primitives du pipeline vers la mémoire sur son chemin vers le rastériseur. Les données peuvent être diffusées vers la sortie et/ou dans le rastériseur. Les données diffusées dans la mémoire peuvent être renvoyées dans le pipeline en tant que données d’entrée ou lues par le processeur.
- Étape de rastériseur : le rastériseur est chargé de couper les primitives, de préparer les primitives pour le nuanceur de pixels et de déterminer comment appeler des nuanceurs de pixels.
- Étape du nuanceur de pixels. Cette étape reçoit les données interpolées pour une primitive et génère des données par pixel telles que la couleur.
- Étape de fusion de sortie : l’étape sortie-fusion est chargée de combiner différents types de données de sortie (valeurs de nuanceur de pixels, informations de profondeur et de gabarit) avec le contenu de la cible de rendu et des mémoires tampons de profondeur/gabarit pour générer le résultat final du pipeline.
Rubriques connexes