D3D12 Code Walk-Throughs
Cette section fournit du code pour les exemples de scénarios. La plupart des procédures pas à pas fournissent des informations détaillées sur ce que le codage doit être ajouté à un exemple de base, afin d’éviter de répéter le code de composant de base pour chaque scénario.
Pour le composant le plus simple, reportez-vous à la section Création d’un composant Direct3D 12 de base. Les procédures pas à pas suivantes décrivent des scénarios plus avancés.
Dans cette section
Sujet | Description |
---|---|
D2D à l’aide de D3D11on12 |
L’exemple D3D1211on12 montre comment afficher du contenu D2D sur du contenu D3D12 en partageant des ressources entre un appareil basé sur 11 et un appareil basé sur 12. |
simulation de gravité multi-moteur n-corps |
L’exemple D3D12nBodyGravity montre comment effectuer un travail de calcul de manière asynchrone. L’exemple fait tourner un certain nombre de threads chacun avec une file d’attente de commandes de calcul et planifie le travail de calcul sur le GPU qui effectue une simulation de gravité n-corps. Chaque thread fonctionne sur deux mémoires tampons pleines de données de position et de vitesse. Avec chaque itération, le nuanceur de calcul lit les données de position et de vélocité actuelles d’une mémoire tampon et écrit l’itération suivante dans l’autre mémoire tampon. Une fois l’itération terminée, le nuanceur de calcul permute la mémoire tampon qui est le SRV pour lire les données de position/vitesse et qui est l’UAV pour écrire des mises à jour de position/vitesse en modifiant l’état de la ressource sur chaque mémoire tampon. |
requêtes de prédication |
L’exemple D3D12PredicationQueries illustre l’occlusion culling à l’aide des tas de requêtes DirectX 12 et de la prédication. La procédure pas à pas décrit le code supplémentaire nécessaire pour étendre l’exemple HelloConstBuffer pour gérer les requêtes de prédication. |
indexation dynamique à l’aide de HLSL 5.1 |
L’exemple D3D12DynamicIndexing illustre certaines des nouvelles fonctionnalités HLSL disponibles dans le modèle de nuanceur 5.1 ( en particulier l’indexation dynamique et les tableaux non liés) pour afficher le même maillage plusieurs fois, chaque fois qu’ils le rendent avec un matériau sélectionné dynamiquement. Avec l’indexation dynamique, les nuanceurs peuvent désormais indexer dans un tableau sans connaître la valeur de l’index au moment de la compilation. En cas de combinaison avec des tableaux non liés, cela ajoute un autre niveau d’indirection et de flexibilité pour les auteurs de nuanceurs et les pipelines d’art. |
dessin indirect et gpu |
L’exemple D3D12ExecuteIndirect montre comment utiliser des commandes indirectes pour dessiner du contenu. Il montre également comment ces commandes peuvent être manipulées sur le GPU dans un nuanceur de calcul avant qu’elles ne soient émises. |
Rubriques connexes
-
exemple de code dans la de référence D3D12