Partilhar via


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.

Guia de Programação do Direct3D 12

Tutoriais em vídeo de aprendizagem avançada do DirectX

código de exemplo no de referência D3D12

Amostras de trabalho