Walk-Throughs de code D3D12
Cette section fournit du code pour les exemples de scénarios. La plupart des procédures pas à pas fournissent des détails sur le codage requis pour être ajouté à un exemple de base, afin d’éviter de répéter le code de base du composant pour chaque scénario.
Pour obtenir le composant le plus basique, 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.
Contenu de cette section
| Rubrique | Description |
|---|---|
| D2D à l’aide de D3D11on12 |
L’exemple D3D1211on12 montre comment restituer du contenu D2D sur du contenu D3D12 en partageant des ressources entre un appareil 11 et un appareil 12. |
| Simulation de gravité n-corps multi-moteur |
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 Compute, et planifie le travail de calcul sur le GPU qui effectue une simulation de gravité en n corps. Chaque thread opère sur deux mémoires tampons complètes de données de position et de vélocité. À 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. Lorsque l’itération est terminée, le nuanceur de calcul permute la mémoire tampon qui sert à lire les données de position/vélocité et qui est le UAV pour l’écriture des mises à jour de position/vélocité en modifiant l’état de la ressource sur chaque mémoire tampon. |
| Requêtes de prédicat |
L’exemple D3D12PredicationQueries illustre l’élimination d’occlusion à l’aide de tas et de prédicats de requête DirectX 12. La procédure pas à pas décrit le code supplémentaire nécessaire pour étendre l’exemple HelloConstBuffer afin de gérer les requêtes de prédicat. |
| 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 restituer le même maillage plusieurs fois, chaque fois que vous le rendez 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é aux auteurs de nuanceur et aux pipelines d’art. |
| Dessin indirect et élimination du 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 leur émission. |