Fase del ensamblador de entrada

La API direct3D 10 y posterior separa las áreas funcionales de la canalización en fases; la primera fase de la canalización es la fase del ensamblador de entrada (IA).

El propósito de la fase del ensamblador de entrada es leer datos primitivos (puntos, líneas o triángulos) de búferes rellenados por el usuario y ensamblar los datos en primitivos que usarán las demás fases de canalización. La fase ia puede ensamblar vértices en varios tipos primitivos diferentes (como listas de líneas, tiras de triángulos o primitivos con adyacencia). Se han agregado nuevos tipos primitivos (como una lista de líneas con adyacencia o una lista de triángulos con adyacencia) para admitir el sombreador de geometría.

La información de adyacencia solo es visible para una aplicación en un sombreador de geometría. Si se invoca un sombreador de geometría con un triángulo, incluida la adyacencia, por ejemplo, los datos de entrada contendrán 3 vértices para cada triángulo y 3 vértices para los datos de adyacencia por triángulo.

Cuando se solicita la fase de ensamblador de entrada para generar datos de adyacencia, los datos de entrada deben incluir datos de adyacencia. Esto puede requerir proporcionar un vértice ficticio (formando un triángulo degenerado), o quizás marcando en uno de los atributos de vértice si el vértice existe o no. Esto también tendría que ser detectado y controlado por un sombreador de geometría, aunque la selección de geometría degenerada se producirá en la fase del rasterizador.

Al ensamblar primitivos, un propósito secundario de ia es adjuntar valores generados por el sistema para ayudar a que los sombreadores sean más eficaces. Los valores generados por el sistema son cadenas de texto que también se denominan semántica. Las tres fases del sombreador se construyen a partir de un núcleo de sombreador común y el núcleo del sombreador usa valores generados por el sistema (como un identificador primitivo, un identificador de instancia o un identificador de vértice) para que una fase del sombreador pueda reducir el procesamiento solo a esos primitivos, instancias o vértices que aún no se han procesado.

Como se muestra en el diagrama de bloques de canalización, una vez que la fase ia lee los datos de la memoria (ensambla los datos en primitivos y adjunta valores generados por el sistema), los datos se generan en la fase del sombreador de vértices.

En esta sección

Tema Descripción
Introducción con la fase de Input-Assembler
Hay algunos pasos necesarios para inicializar la fase del ensamblador de entrada (IA). Por ejemplo, debe crear recursos de búfer con los datos de vértice que necesita la canalización, indicar a la fase ia dónde se encuentran los búferes y qué tipo de datos contienen y especificar el tipo de primitivos que se van a ensamblar a partir de los datos.
Topologías primitivas
Direct3D 10 y versiones posteriores admiten varios tipos primitivos (o topologías) representados por el tipo enumerado D3D_PRIMITIVE_TOPOLOGY . Estos tipos definen cómo se interpretan y representan los vértices por la canalización.
Uso de la fase de Input-Assembler sin búferes
No es necesario crear y enlazar búferes si los sombreadores no requieren búferes. Esta sección contiene un ejemplo de sombreadores de vértices y píxeles simples que dibujan un único triángulo.
Uso de valores de System-Generated
La fase ia genera valores generados por el sistema (en función de la semántica de entrada proporcionada por el usuario) para permitir ciertas eficiencias en las operaciones del sombreador.

Canalización de gráficos

Fases de canalización (Direct3D 10)