Guia detalhado do código D3D12

Esta seção fornece código para cenários de exemplo. Muitos dos passo a passo fornecem detalhes sobre qual codificação é necessária para ser adicionada a um exemplo básico, para evitar repetir o código de componente básico para cada cenário.

Para obter o componente mais básico, consulte a seção Criando um componente Básico do Direct3D 12 . Os passo a passo a seguir descrevem cenários mais avançados.

Nesta seção

Tópico Descrição
O D2D usando o D3D11on12
O exemplo D3D1211on12 demonstra como renderizar conteúdo D2D por conteúdo D3D12 compartilhando recursos entre um dispositivo baseado em 11 e um dispositivo baseado em 12.
Simulação de gravidade de n-corpos de vários mecanismos
O exemplo D3D12nBodyGravity demonstra como fazer com que a computação funcione de forma assíncrona. O exemplo cria vários threads cada um com uma fila de comandos de computação e agenda o trabalho de computação na GPU que executa uma simulação de gravidade de n corpo. Cada thread opera em dois buffers cheios de dados de posição e velocidade. A cada iteração, o sombreador de computação lê os dados atuais de posição e velocidade de um buffer e grava a próxima iteração no outro buffer. Quando a iteração é concluída, o sombreador de computação troca qual buffer é o SRV para ler dados de posição/velocidade e que é o UAV para gravar atualizações de posição/velocidade alterando o estado do recurso em cada buffer.
Consultas de predicação
O exemplo D3D12PredicationQueries demonstra o abate de oclusão usando heaps de consulta do DirectX 12 e a precação. O passo a passo descreve o código adicional necessário para estender o exemplo HelloConstBuffer para lidar com consultas de pré-indicação.
Indexação dinâmica usando HLSL 5.1
O exemplo D3D12DynamicIndexing demonstra alguns dos novos recursos HLSL disponíveis no Modelo de Sombreador 5.1 - particularmente indexação dinâmica e matrizes não associadas - para renderizar a mesma malha várias vezes, cada vez renderizando-a com um material selecionado dinamicamente. Com a indexação dinâmica, os sombreadores agora podem indexar em uma matriz sem saber o valor do índice em tempo de compilação. Quando combinado com matrizes não associadas, isso adiciona outro nível de indireção e flexibilidade para autores de sombreador e pipelines de arte.
Seleção indireta de GPU e desenho
O exemplo D3D12ExecuteIndirect demonstra como usar comandos indiretos para desenhar conteúdo. Ele também demonstra como esses comandos podem ser manipulados na GPU em um sombreador de computação antes de serem emitidos.

Guia de programação do Direct3D 12

Tutoriais de vídeo de aprendizado avançado do DirectX

Código de exemplo na referência do D3D12

Exemplos de trabalhos