Partager via


Étape Assembleur d’entrée (IA)

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

Objectif et utilisations

L’objectif de la phase Assembleur d’entrée (IA) est de lire les données primitives (points, lignes et triangles) à partir de mémoires tampons remplies par l’utilisateur et d’assembler les données en primitives qui seront utilisées par les autres étapes de pipeline, et d’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 phases de nuanceur programmables sont construites à partir d’un cœur de nuanceur commun, qui utilise des valeurs générées par le système (comme un ID primitif, un ID de instance ou un ID de vertex), de sorte que la phase de nuanceur peut réduire le traitement uniquement aux primitives, instances ou sommets qui n’ont pas encore été traités.

La phase 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 adjacence). Les types primitifs tels qu’une liste de triangles avec adjacence et une liste de lignes avec adjacence prennent en charge l’étape Geometry Shader (GS).

Les informations d’adjacence sont visibles pour une application uniquement dans un nuanceur de géométrie. Si un nuanceur de géométrie était appelé avec un triangle incluant l’adjacence, pour instance, les données d’entrée contiennent 3 sommets pour chaque triangle et 3 sommets pour les données d’adjacence par triangle.

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

Entrée

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

Sortie

La phase IA assemble les données en primitives et attache des valeurs générées par le système, et les génère en tant que primitives qui seront utilisées par la phase de nuanceur de vertex (VS), puis d’autres étapes de pipeline.

Dans cette section

Rubrique Description

Topologies de primitive

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, comme les listes de points, les listes de lignes et les bandes de triangles.

Utilisation de 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 la phase Assembleur d’entrée (IA) (en fonction de 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 de instance (visible à l’étape Du nuanceur de vertex( VS), un ID de vertex (visible pour VS) ou un ID primitif (visible pour laphase De nuanceur de pixels (PS) de l’étape Geometry Shader (GS),une étape de nuanceur suivante peut rechercher ces valeurs système pour optimiser le traitement dans cette étape./

 

Pipeline graphique