Pipeline de elementos gráficos

O pipeline programável do Direct3D 11 foi projetado para gerar gráficos para aplicativos de jogos em tempo real. Esta seção descreve o pipeline programável do Direct3D 11. O diagrama a seguir mostra o fluxo de dados da entrada para a saída por meio de cada uma das fases programáveis.

diagrama do fluxo de dados no pipeline programável do direct3d 11

O pipeline de gráficos do Microsoft Direct3D 11 dá suporte aos mesmos estágios que o pipeline de gráficos do Direct3D 10, com estágios adicionais para dar suporte a recursos avançados.

Você pode usar o Direct3D 11API para configurar todos os estágios. Estágios que apresentam núcleos comuns de sombreador (os blocos retangulares arredondados) são programáveis usando a linguagem de programação HLSL. Como você verá, isso torna o pipeline extremamente flexível e adaptável.

Nesta seção

Tópico Descrição
Estágio do assembler de entrada
A API Direct3D 10 e superior separa as áreas funcionais do pipeline em estágios; o primeiro estágio no pipeline é o estágio de IA (input-assembler).
Estágio do sombreador de vértice
O estágio vs (sombreador de vértice) processa vértices do assembler de entrada, executando operações por vértice, como transformações, esfolação, transformação e iluminação por vértice. Os sombreadores de vértice sempre operam em um vértice de entrada único e produzem um vértice de saída único. O estágio do sombreador de vértice sempre deve estar ativo para que o pipeline seja executado. Se nenhuma modificação de vértice ou transformação for necessária, um sombreador de vértice de passagem deve ser criado e definido para o pipeline.
Estágios de mosaico
O runtime do Direct3D 11 dá suporte a três novos estágios que implementam o mosaico, que converte superfícies de subdivisão com poucos detalhes em primitivos de detalhes mais altos na GPU. O bloco de mosaico organiza (ou decompõe) as superfícies de ordem superior em estruturas adequadas para renderização.
Estágio do sombreador geometry
O estágio GS (sombreador de geometria) executa o código de sombreador especificado pelo aplicativo com vértices como entrada e a capacidade de gerar vértices na saída.
Estágio de saída de fluxo
A finalidade do estágio de saída de fluxo é gerar continuamente (ou transmitir) dados de vértice do estágio geometry-shader (ou o estágio de sombreador de vértice se o estágio de sombreador de geometria estiver inativo) para um ou mais buffers na memória (consulte Introdução com o estágio de saída de fluxo).
Estágio do rasterizador
O estágio de rasterização converte as informações de vetor (compostas de formas ou primitivas) em uma imagem de rasterizador (composta de pixels) para fins de exibição de gráficos 3D em tempo real.
Estágio do sombreador de pixel
O PS (estágio de sombreador de pixel) permite técnicas avançadas de sombreamento, como iluminação por pixel e pós-processamento. Um sombreador de pixel é um programa que combina variáveis constantes, dados de textura, valores interpolados por vértice e outros dados para produzir saídas por pixel. O estágio do rasterizador invoca um sombreador de pixel uma vez para cada pixel coberto por um primitivo, no entanto, é possível especificar um sombreador NULL para evitar a execução de um sombreador.
Estágio de fusão de saída
O estágio de fusão de saída (OM) gera a cor final do pixel renderizado usando uma combinação de estado de pipeline, os dados de pixel gerados pelos sombreadores de pixel, o conteúdo dos destinos de renderização e o conteúdo dos buffers de profundidade/estêncil. O estágio de OM é a etapa final para determinar quais pixels são visíveis (com teste de estêncil de profundidade) e mesclar as cores finais do pixel.