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. |