Compartir a través de


fase de Input-Assembler

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, franjas 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, como 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 del ensamblador de entrada para generar datos adyacentes, 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 detectarse y controlarse mediante un sombreador de geometría, aunque la selección de geometría degenerada se producirá en la fase de rasterizador.

Al ensamblar primitivos, un propósito secundario de la 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 bloque de canalización, una vez que la fase de IA lee 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 a 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 de 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 la canalización interpreta y representa los vértices.
Usar 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.
usar valores de System-Generated
La fase ia genera valores generados por el sistema (en función de la entrada proporcionada por el usuario semántica) para permitir ciertas eficiencias en las operaciones del sombreador.

de canalización de gráficos de

fases de canalización (Direct3D 10)