étape de Input-Assembler
L’API Direct3D 10 et ultérieure sépare les zones fonctionnelles du pipeline en phases ; la première étape du pipeline est l’étape d’assembleur d’entrée (IA).
L’objectif de l’étape d’assembleur d’entrée consiste à lire les données primitives (points, lignes et/ou 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. 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 adjudance). De nouveaux types primitifs (tels qu’une liste de lignes avec undjacency ou une liste de triangles avec adjacency) ont été ajoutés pour prendre en charge le nuanceur géométrique.
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 d’assembleur d’entrée 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.
Lors de l’assemblage de primitives, un objectif secondaire de l’IA est d’attacher 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 trois phases de nuanceur sont construites à partir d’un cœur de nuanceur commun, et le noyau de nuanceur utilise des valeurs générées par le système (par exemple, un ID de primitive, un ID d’instance ou un ID de vertex) afin qu’une phase de nuanceur puisse réduire le traitement uniquement à ces primitives, instances ou sommets qui n’ont pas déjà été traités.
Comme indiqué dans le diagramme de blocs de pipeline , une fois que l’étape IA lit les données de la mémoire (assemble les données en primitives et attache des valeurs générées par le système), les données sont générées à l’étape du nuanceur de vertex .
Dans cette section
Sujet | Description |
---|---|
prise en main de l’étape de Input-Assembler |
Il existe quelques étapes nécessaires pour initialiser l’étape d’assembleur d’entrée (IA). Par exemple, vous devez créer des ressources de mémoire tampon avec les données de vertex dont le pipeline a besoin, indiquer à l’étape IA où sont les mémoires tampons et le type de données qu’ils contiennent et spécifier le type de primitives à assembler à partir des données. |
topologies primitives |
Direct3D 10 et versions ultérieures prend en charge plusieurs types primitifs (ou topologies) représentés par le type énuméré D3D_PRIMITIVE_TOPOLOGY. Ces types définissent la façon dont les sommets sont interprétés et rendus par le pipeline. |
à l’aide de l’étape de Input-Assembler sans mémoire tampon |
La création et la liaison de mémoires tampons ne sont pas nécessaires si vos nuanceurs n’ont pas besoin de mémoires tampons. Cette section contient un exemple de nuanceurs de vertex et de pixels simples qui dessinent un triangle unique. |
utiliser des valeurs de System-Generated |
Les valeurs générées par le système sont générées par l’étape 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. |