Qu’est-ce que Direct3D 12?
DirectX 12 introduit la prochaine version de Direct3D, l’API graphique 3D au cœur de DirectX. Direct3D 12 est plus rapide et plus efficace que n’importe quelle version précédente. Direct3D 12 permet des scènes plus riches, davantage d’objets, des effets plus complexes et une utilisation complète du matériel GPU moderne.
Comment Direct3D 12 peut-il être beaucoup plus rapide et plus efficace ?
Direct3D 12 est unique en ce qu’il fournit un niveau d’abstraction matérielle inférieur à celui des versions précédentes, ce qui vous permet d’améliorer considérablement la mise à l’échelle du processeur multicœur de votre titre (ou d’une autre application). D’une part, avec Direct3D 12, votre titre est responsable de sa propre gestion de la mémoire. En outre, en utilisant Direct3D 12, vos titres et applications bénéficient d’une surcharge GPU réduite via des fonctionnalités telles que des files d’attente et des listes de commandes, des tables de descripteur et des objets d’état de pipeline concis.
Direct3D 12 et Direct3D 11.3 introduisent un ensemble de nouvelles fonctionnalités pour le pipeline de rendu.
- Rastérisation conservatrice pour permettre une détection fiable des accès.
- Volume des ressources en mosaïque pour permettre aux ressources en trois dimensions diffusées d’être traitées comme si elles étaient toutes en mémoire vidéo.
- Affichages ordonnés par un rastériseur pour permettre un rendu de transparence fiable.
- Définition de la référence de gabarit dans un nuanceur pour activer l’ombre spéciale et d’autres effets.
- Amélioration du mappage des textures et des chargements de vue d’accès non ordonné (UAV) typés.
Quelle est la profondeur d’investissement dans Direct3D 12 ?
Direct3D 12 offre quatre avantages main aux développeurs graphiques (par rapport à Direct3D 11).
- Surcharge processeur considérablement réduite.
- Consommation électrique considérablement réduite.
- Jusqu’à (environ) 20 % d’amélioration de l’efficacité du GPU.
- Développement multiplateforme pour un appareil Windows 10 (PC, tablette, console, mobile).
Direct3D 12 est conçu pour les programmeurs graphiques avancés à utiliser. Il nécessite une expertise graphique significative et un haut niveau de réglage. Direct3D 12 est conçu pour tirer pleinement profit du multithreading, de la synchronisation minutieuse du processeur/GPU, ainsi que de la transition et de la réutilisation des ressources d’un usage à un autre. Il s’agit de techniques qui nécessitent une quantité considérable de compétences en programmation au niveau de la mémoire.
Un autre avantage de Direct3D 12 est son faible encombrement d’API. Il y a environ 200 fonctions ; et environ un tiers de ceux-ci font tout le gros du travail. Cela signifie que vous, en tant que développeur graphique, devez être en mesure de vous renseigner sur l’ensemble complet d’API ( et master ) sans avoir à mémoriser trop de noms d’API.
Direct3D 11 continue d’être une option viable aux côtés de Direct3D 12. La plupart des nouvelles fonctionnalités de rendu de Direct3D 12 sont disponibles dans Direct3D 11.3. Direct3D 11.3 est une API de moteur graphique de bas niveau ; et Direct3D 12 va encore plus loin.
Il existe au moins deux façons pour votre équipe de développement d’aborder un titre Direct3D 12.
Utiliser Direct3D 12 exclusivement
Pour un projet qui tire le meilleur parti de tous les avantages de Direct3D 12, vous devez développer un moteur Direct3D 12 hautement personnalisé à partir de zéro.
Si vous, en tant que développeur graphique, comprenez l’utilisation et la réutilisation des ressources dans vos titres, et que vous pouvez en tirer parti en réduisant le chargement et la copie, vous pouvez développer et personnaliser un moteur très efficace pour ces titres. Les améliorations de performances peuvent être très considérables, libérant du temps processeur pour augmenter le nombre d’appels de dessin et ajoutant ainsi plus de luster à vos graphiques.
L’investissement en programmation est important et vous devez envisager le débogage et l’instrumentation du projet dès le début. Le threading, la synchronisation et d’autres bogues de minutage peuvent être difficiles.
Utiliser Direct3D 12 de concert avec Direct3D 11
Une approche plus courte consisterait à résoudre les goulots d’étranglement connus dans votre titre Direct3D 11. Vous pouvez y remédier à l’aide des techniques d’interopérabilité Direct3D 12 et/ou D3D11On12 , qui permettent aux deux versions d’API de fonctionner ensemble. Cette approche réduit les modifications nécessaires à un moteur graphique Direct3D 11 existant. Toutefois, les gains de performances seront limités à la résolution du goulot d’étranglement que le code Direct3D 12 résout.
Vidéos Microsoft DirectX 12 (et éducation graphique)
Éducation améliorée pour les développeurs graphiques. Ces vidéos couvrent des sujets tels que les modes de présentation, le portage vers DirectX 12, la rastérisation conservatrice, les outils graphiques, Angle, Win2D et les événements tels que GDC, Build, etc. Le contenu Technique DirectX 12 est précédé de DirectX 12. Venez ici pour découvrir des conseils et des astuces directement de l’équipe de fonctionnalités Direct3D 12. Nous voulons vous aider à utiliser nos dernières versions et outils pour faire de votre jeu le meilleur qu’il peut être!
Conclusion
Direct3D 12 est tout au sujet des performances spectaculaires du moteur graphique. La facilité de développement, les constructions de haut niveau et la prise en charge du compilateur ont été réduits pour permettre cette opération. La prise en charge des pilotes et la facilité de débogage restent sur le même plan que Direct3D 11.
Direct3D 12 est un nouveau territoire. Territoire qui attend que l’expert curieux vienne explorer.