Compartilhar via


Estágio do assembler de entrada

A API do Direct3D 10 e superior separa as áreas funcionais do pipeline em estágios; o primeiro estágio no pipeline é o estágio IA (input-assembler).

A finalidade do estágio de assembler de entrada é ler dados primitivos (pontos, linhas e/ou triângulos) de buffers preenchidos pelo usuário e montar os dados em primitivos que serão usados pelos outros estágios do pipeline. O estágio de IA pode reunir vértices em vários tipos primitivos diferentes (por exemplo, listas de linha, faixas de triângulos ou primitivas com adjacência). Novos tipos primitivos (como uma lista de linhas com adjacência ou uma lista de triângulos com adjacência) foram adicionados para dar suporte ao sombreador de geometria.

Informações de adjacência são visíveis para um app apenas em um sombreador de geometria. Se um sombreador de geometria for invocado com um triângulo incluindo adjacência, por exemplo, os dados de entrada conterão 3 vértices para cada triângulo e 3 vértices para dados de adjacência por triângulo.

Quando o estágio input-assembler é solicitado a gerar dados de adjacência, os dados de entrada devem incluir dados de adjacência. Isso pode exigir o fornecimento de um vértice fictício (formando um triângulo degenerado), ou talvez sinalização em um dos atributos de vértice, seja o vértice existente ou não. Isso também precisaria ser detectado e manipulado por um sombreador de geometria, embora a seleção da geometria degenerada aconteça no estágio de rasterizador.

Ao montar primitivos, uma finalidade secundária da IA é anexar valores gerados pelo sistema para ajudar a tornar os sombreadores mais eficientes. Valores gerados pelo sistema são cadeias de caracteres de texto que também são chamadas de semântica. Todos os três estágios de sombreador são construídos a partir de um núcleo de sombreador comum, e o núcleo do sombreador usa valores gerados pelo sistema (como uma ID primitiva, uma ID de instância ou uma ID de vértice) para que um estágio de sombreador possa reduzir o processamento apenas para os primitivos, instâncias ou vértices que ainda não foram processados.

Conforme mostrado no diagrama de bloco de pipeline, depois que o estágio IA lê dados da memória (monta os dados em primitivos e anexa valores gerados pelo sistema), os dados são gerados para o estágio do sombreador de vértice.

Nesta seção

Tópico Descrição
Introdução com o Estágio Input-Assembler
Há algumas etapas necessárias para inicializar o estágio de IA (input-assembler). Por exemplo, você precisa criar recursos de buffer com os dados de vértice de que o pipeline precisa, informar ao estágio ia onde estão os buffers e que tipo de dados eles contêm e especificar o tipo de primitivos a serem montados a partir dos dados.
Topologias primitivas
O Direct3D 10 e superior dá suporte a vários tipos primitivos (ou topologias) representados pelo tipo enumerado D3D_PRIMITIVE_TOPOLOGY . Esses tipos definem como os vértices são interpretados e renderizados pelo pipeline.
Usando o estágio Input-Assembler sem buffers
A criação e a associação de buffers não serão necessárias se os sombreadores não exigirem buffers. Esta seção contém um exemplo de sombreadores de vértice e pixel simples que desenham um único triângulo.
Usando valores de System-Generated
Os valores gerados pelo sistema são gerados pelo estágio IA (com base na semântica de entrada fornecida pelo usuário) para permitir determinadas eficiências em operações de sombreador.

Pipeline gráfico

Estágios de pipeline (Direct3D 10)