Pipeline graphique

Le pipeline programmable Direct3D 11 est conçu pour générer des graphiques pour les applications de jeu en temps réel. Cette section décrit le pipeline programmable Direct3D 11. Le diagramme suivant montre le flux de données de l’entrée à la sortie à travers chacune des étapes programmables.

diagramme du flux de données dans le pipeline programmable direct3d 11

Le pipeline graphique pour Microsoft Direct3D 11 prend en charge les mêmes étapes que le pipeline graphique Direct3D 10, avec des étapes supplémentaires pour prendre en charge les fonctionnalités avancées.

Vous pouvez utiliser direct3D 11API pour configurer toutes les étapes. Les étapes qui présentent des cœurs de nuanceur courants (les 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.

Contenu de cette section

Rubrique Description
Étape d’assembleur d’entrée
L’API Direct3D 10 et versions ultérieures sépare les zones fonctionnelles du pipeline en étapes ; la première étape du pipeline est la phase d’assembleur d’entrée (IA).
Étape du nuanceur de vertex
L’étape de nuanceur de vertex (VS) traite les sommets de l’assembleur d’entrée, en effectuant des opérations par sommet, telles que les transformations, l’apparence, le morphing et l’éclairage par sommet. Les nuanceurs de vertex fonctionnent toujours sur un sommet d’entrée unique et produisent un sommet de sortie unique. L’étape de nuanceur de vertex doit toujours être active pour que le pipeline s’exécute. Si aucune modification ou transformation de vertex n’est requise, un nuanceur de vertex direct doit être créé et défini sur le pipeline.
Étapes de pavage
Le runtime Direct3D 11 prend en charge trois nouvelles étapes qui implémentent la mise en place d’un pavage, qui convertit les surfaces de subdivision à faible détail en primitives plus détaillées sur le GPU. Les mosaïques de pavage (ou décomposent) les surfaces d’ordre élevé en structures appropriées pour le rendu.
Étape du nuanceur Geometry
L’étape geometry-shader (GS) exécute le code de nuanceur spécifié par l’application avec des sommets en entrée et la possibilité de générer des sommets en sortie.
Étape de sortie de flux
L’objectif de la phase de sortie de flux est de générer en continu (ou de diffuser) des données de vertex de la phase geometry-shader (ou de l’étape vertex-shader si la phase geometry-shader est inactive) vers une ou plusieurs mémoires tampons en mémoire mémoire (voir Prise en main avec l’étape de sortie de flux).
Étape de rastériseur
L’étape de rastérisation convertit les informations vectorielles (composées de formes ou primitives) en image raster (composée de pixels) dans le but d’afficher des graphiques 3D en temps réel.
Étape du nuanceur de pixels
La phase de nuanceur de pixels (PS) permet de riches techniques d’ombrage telles que l’éclairage par pixel et le post-traitement. Un nuanceur de pixels est un programme qui combine des variables constantes, des données de texture, des valeurs interpolées par sommet et d’autres données pour produire des sorties par pixel. L’étape de rastériseur appelle un nuanceur de pixels une fois pour chaque pixel couvert par une primitive. Toutefois, il est possible de spécifier un nuanceur NULL pour éviter d’exécuter un nuanceur.
Étape de fusion de sortie
L’étape de fusion de sortie (OM) génère la couleur finale des pixels rendus à l’aide d’une combinaison d’état de pipeline, des données de pixel générées par les nuanceurs de pixels, du contenu des cibles de rendu et du contenu des mémoires tampons de profondeur/gabarit. L’étape om est l’étape finale pour déterminer quels pixels sont visibles (avec des tests de gabarit en profondeur) et mélanger les couleurs des pixels finaux.