Partager via


Walk-Throughs de code D3D12

Cette section fournit du code pour des exemples de scénarios. La plupart des procédures fournissent des détails sur le codage à ajouter à un exemple de base, afin d’éviter de répéter le code du composant de base pour chaque scénario.

Pour connaître le composant le plus simple, reportez-vous à la section Création d’un composant Direct3D 12 de base . Les procédures 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 basé sur 11 et un appareil basé sur 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 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 remplies de données de position et de vitesse. À chaque itération, le nuanceur de calcul lit les données de position et de vitesse 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 échange la mémoire tampon qui est la mémoire tampon pour la lecture des données de position/vitesse et qui est l’UAV pour écrire des mises à jour de position/vitesse en modifiant l’état des ressources sur chaque mémoire tampon.
Requêtes de prédicat
L’exemple D3D12PredicationQueries illustre l’élimination de l’occlusion à l’aide de 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 afin de 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 restituer le même maillage plusieurs fois, le rendant à chaque fois avec un matériau sélectionné dynamiquement. Avec l’indexation dynamique, les nuanceurs peuvent désormais s’indexer dans un tableau sans connaître la valeur de l’index au moment de la compilation. Lorsqu’il est combiné avec des tableaux sans limite, cela ajoute un autre niveau d’indirection et de flexibilité pour les auteurs de nuanceurs et les 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 d’être émises.

Guide de programmation de Direct3D 12

Tutoriels vidéo sur l’apprentissage avancé DirectX

Exemple de code dans la référence D3D12

Exemples fonctionnels