Pipeline de renderização

O hardware gráfico que dá suporte ao Direct3D versão 10 pode ser projetado com núcleos de sombreador programáveis compartilhados. A GPU (unidade de processamento gráfico) pode programar núcleos de sombreador que podem ser agendados entre os blocos funcionais que compõem o pipeline de renderização. Esse balanceamento de carga significa que os desenvolvedores de hardware não são obrigados a usar todos os tipos de sombreador, mas apenas os que são necessários para executar a renderização. Esse balanceamento de carga pode liberar recursos para tipos de sombreador ativos. A figura a seguir mostra os blocos funcionais do pipeline de renderização. As seções que seguem a figura descrevem os blocos com mais detalhes.

Diagrama ilustrando os blocos funcionais do pipeline de renderização do Direct3D.

  • Assembler de entrada

    O estágio do assembler de entrada usa operações de função fixas para ler vértices fora da memória. O assembler de entrada, em seguida, forma primitivos de geometria e cria itens de trabalho de pipeline. Identificadores de vértice gerados automaticamente, identificadores de instância (disponíveis para o sombreador de vértice) e identificadores primitivos (disponíveis para o sombreador de geometria ou sombreador de pixel) habilitam o processamento específico do identificador. A linha pontilhada na figura mostra o fluxo de processamento específico do identificador.

  • Sombreador de vértice

    O estágio do sombreador de vértice usa um vértice como entrada e gera um vértice.

  • Sombreador de geometria

    O estágio do sombreador de geometria usa um primitivo como entrada e gera zero, um ou vários primitivos. Os primitivos de saída podem conter mais dados do que o possível sem o sombreador de geometria. A quantidade total de dados de saída por operação é (tamanho do vértice x contagem de vértice).

  • Saída de fluxo

    O estágio de saída do fluxo concatena (transmite para fora) primitivos que atingem a saída do sombreador de geometria para buffers de saída. A saída do fluxo está associada ao sombreador de geometria e ambos são programados juntos.

  • Rasterizador

    Os clipes de estágio do rasterizador (incluindo limites de clipe personalizado), executam a divisão de perspectiva em primitivos, implementa a seleção de visor e tesoura, executa a seleção de destino de renderização e executa a configuração primitiva.

  • Sombreador de pixel

    O estágio do sombreador de pixel usa um pixel como entrada e gera um pixel na mesma posição ou nenhum pixel. O sombreador de pixel não pode ler os destinos de renderização atuais.

  • Fusão de saída

    O estágio de fusão de saída executa operações de combinação, profundidade e estêncil de destino de renderização de função fixa.