Código D3D12 Walk-Throughs
Esta seção fornece código para cenários de exemplo. Muitas das instruções 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 do 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. As instruções passo a passo a seguir descrevem cenários mais avançados.
Nesta secção
Tópico | Descrição |
---|---|
D2D usando D3D11on12 |
O exemplo de D3D1211on12 demonstra como renderizar conteúdo D2D sobre conteúdo D3D12 compartilhando recursos entre um dispositivo baseado em 11 e um dispositivo baseado em 12. |
Simulação de gravidade multimotor n-body |
O exemplo de D3D12nBodyGravity demonstra como fazer o trabalho de computação de forma assíncrona. O exemplo gira 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 corpos. Cada thread opera em dois buffers cheios de dados de posição e velocidade. Com cada iteração, o sombreador de computação lê os dados de posição e velocidade atuais 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 qual é o UAV para gravar atualizações de posição/velocidade alterando o estado do recurso em cada buffer. |
Consultas de predicação |
O exemplo de D3D12PredicationQueries demonstra o abate de oclusão usando heaps de consulta e predicação do DirectX 12. O passo a passo descreve o código adicional necessário para estender o HelloConstBuffer exemplo para lidar com consultas de predicação. |
Indexação dinâmica usando HLSL 5.1 |
O exemplo de D3D12DynamicIndexing demonstra alguns dos novos recursos HLSL disponíveis no Shader Model 5.1 - particularmente indexação dinâmica e matrizes não limitadas - 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 ilimitadas, isso adiciona outro nível de indireção e flexibilidade para autores de sombreador e pipelines de arte. |
Desenho indireto e de abate de GPU |
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. |