Partager via


Étape d’assembleur d’entrée (IA)

L’étape d’assembleur d’entrée (IA) fournit des données primitives et dedjacency au pipeline, telles que des triangles, des lignes et des points, y compris les ID sémantiques pour aider à rendre les nuanceurs plus efficaces en réduisant le traitement aux primitives qui n’ont pas déjà été traitées.

Objectif et utilisations

L’objectif de l’étape d’assembleur d’entrée (IA) consiste à lire les données primitives (points, lignes et triangles) à partir de mémoires tampons remplies par l’utilisateur et à assembler les données en primitives qui seront utilisées par les autres phases de pipeline et à attacher des valeurs générées par le système pour aider à rendre les nuanceurs plus efficaces. Les valeurs générées par le système sont des chaînes de texte qui sont également appelées sémantiques. Les étapes de nuanceur programmable sont construites à partir d’un cœur de nuanceur commun, qui utilise des valeurs générées par le système (par exemple, un ID d’instance, un ID d’instance ou un ID de vertex), afin que l’étape du nuanceur puisse réduire le traitement à seulement ces primitives, instances ou sommets qui n’ont pas déjà été traités.

L’étape IA peut assembler des sommets en plusieurs types primitifs différents (tels que des listes de lignes, des bandes de triangles ou des primitives avec adjacency). Les types primitifs tels qu’une liste de triangles avec undjacency et une liste de lignes avec adjacency prennent en charge l’étape du nuanceur geometry (GS).

Les informations dedjacency sont visibles par une application uniquement dans un nuanceur geometry. Si un nuanceur de géométrie a été appelé avec un triangle, y compris l’adjacency, par exemple, les données d’entrée contiennent 3 sommets pour chaque triangle et 3 sommets pour les données dedjacency par triangle.

Lorsque l’étape IA est demandée pour générer des données dedjacency, les données d’entrée doivent inclure des données dedjacency. Cela peut nécessiter la fourniture d’un vertex factice (formant un triangle dégénéré), ou peut-être en signalant dans l’un des attributs de vertex si le sommet existe ou non. Cela doit également être détecté et géré par un nuanceur géométrique, bien que le culage de la géométrie dégénérée se produise à l’étape du rastériseur.

Entrée

L’étape IA lit les données de la mémoire : données primitives (points, lignes et/ou triangles), à partir de mémoires tampons remplies par l’utilisateur.

Sortie

L’étape IA assemble les données en primitives et attache des valeurs générées par le système, ainsi que des sorties comme primitives qui seront utilisées par l’étape Du nuanceur de vertex (VS), puis d’autres phases de pipeline.

Dans cette section

Sujet Description

Topologies primitives

Direct3D prend en charge plusieurs topologies primitives, qui définissent la façon dont les sommets sont interprétés et rendus par le pipeline, tels que les listes de points, les listes de lignes et les bandes de triangles.

Utilisation des valeurs générées par le système

Les valeurs générées par le système sont générées par l’étape d’assembleur d’entrée (IA) (basée sur la sémantique d’entrée fournie par l’utilisateur) pour permettre certaines efficacités dans les opérations de nuanceur. En attachant des données, telles qu’un ID d’instance (visible à l’étape Vs), un ID de vertex (visible par VS) ou un ID primitif (visible à l’étape/ GS) de nuanceur de pixels (PS), une étape de nuanceur (PS) ultérieure peut rechercher ces valeurs système pour optimiser le traitement à cette étape.

 

Pipeline graphique