Direct3D
Direct3Dest unebibliothèque logiciellede la sérieMicrosoftDirectX.Direct3D est utilisé uniquement dans les multiplessystèmes d'exploitationWindowsde Microsoft (Windows 95et au-delà), ainsi que dans laXbox.Direct3D sert à créer desgraphismes en trois dimensionspour les applications où la performance est importante, comme lesjeux vidéo.Direct3D permet également à des applications de fonctionner en plein écran, plutôt qu'intégrées dans une fenêtre, bien qu'elles puissent toujours tourner dans une fenêtre si elles sont programmées pour cette utilisation. Direct3D utilise l'accélération matériellesi elle est disponible à travers unecarte graphique.
Direct3D est une API3D.C'est-à-dire qu'elle contient un grand nombre d'instructions pour l'affichage 3D, et très peu pour l'affichage2D.Microsoft effectue des mises à jour continuelles de Direct3D pour permettre l'exploitation des dernières technologies disponibles sur les cartes graphiques 3D. Direct3D fournit une émulation logicielle complète pour les calculs concernant les sommets (vertexen anglais), mais aucune émulation logicielle pour les calculs concernant les pixels pour les fonctionnalités non disponibles au niveau matériel. Par exemple, si un logiciel programmé avec Direct3D nécessite despixel shaderset que lacarte graphiquede l'ordinateur de l'utilisateur ne fournit pas cette fonctionnalité, Direct3D ne l'émulerapas. En conséquence, le programme s'arrêtera probablement avec unmessage d'erreur.
Les concurrents de Direct3D sont les bibliothèques respectant le standardOpenGL.Il y a de nombreuses fonctionnalités et problèmes sur lesquels les partisans de l'une ou l'autre API sont en désaccord.
Historique des versions
modifierVersion 3
modifierDirect3D a été introduit avec la version 3.0 de DirectX. À l'origine il s'agissait principalement d'unmoteur de rendudu typescene graphplutôt haut niveau avec une accélération logicielle performante, accompagnée d'une base très bas niveau basée sur lesexecute buffers.Aucune des deux n'a vraiment trouvé son public auprès des développeurs qui soit préféraient écrire leur propre gestion de scène adaptée à leur jeu ou héritée de leur moteur logiciel de 3D, soit trouvaient lesexecute buffersplutôt abscons.
Version 5
modifierLa version 4.0 de DirectX n'a pas été publiée, laissant place directement à la version 5.
Direct3D 5.0 a apporté un "maquillage" desexecute buffersqui a été très décrié, sous forme de commandes de tracé de primitives (drawprimitive) qui semblaient plus rationnelles pour le programmeur lambda.
Version 6
modifierDirect3D 6.0 était une amélioration de Direct3D 5 avec des nouveaux concepts comme lemultitexturing(qui avait d'abord fait son apparition dans OpenGL et utilisé par des jeux commeQuake II) ou encore l'environnementbump mapping.Les formats de texture compressés inventés par S3 (S3TC(en)) ont été intégrés dans Direct3D et adoptés par tous les fondeurs deCPU3D.
Version 7
modifierDans la version 7.0 de Direct3D, un format de texture spécifique (DirectDraw Surface) a été introduit. La version est également la première version de Direct3D à supporter les fonctions matérielles detransform and lightingdes nouvelles cartes graphiquesGeForce 256(la notion deaccelerated transform and lightingexistait depuis longtemps dans lesstations de travailgraphiques qui utilisaient par exemple la version professionnelle de OpenGL). D'autres notions ont fait leur apparition comme lecubemapping(permettant de simuler les réflexions d'éléments sphériques).
Version 8
modifierSi Direct3D a longtemps été considéré comme difficile à utiliser, la version 8.0 de DirectX a résolu beaucoup de problèmes d'utilisation que redoutaient les programmeurs et elle est rapidement devenue une API de choix pour le développement de jeux sous Windows (OpenGL conservant son monopole sur les autres plateformes). Direct3D 8 contenait beaucoup de fonctionnalités très puissantes pour l'affichage 3D, comme lesvertex shaders,lespixel shaders.Cette version a également inclus dans la bibliothèque de programmation de base pour la console Xbox, qui incluait laGeForce 3,la première puce graphique à implémenter matériellement lespixelsetvertex shaders.
Version 9
modifierA la sortie de la version 9.0 de DirectX, Direct3D a été intégré dans uncomposant logicielappeléDirect Graphics.Direct Graphicsétait supposé être une combinaison deDirectDrawet de Direct3D, mais n'était en réalité que Direct3D avec quelques fonctionnalités de DirectDraw en plus. La plupart des utilisateurs se réfèrent toujours à Direct Graphics en l'appelant Direct3D. Ce nom a été abandonné quelque temps après son introduction par Microsoft.
La version 9.0 de Direct3D a ajouté une nouvelle version duHigh-Level Shading Language,avec le soutien duHigh dynamic range lightinggrâce à une précision desshadersaccrue et des formats de texture envirgule flottante.Il a introduit également la possibilité d'utiliser plusieurs surfaces de rendu simultanées (MRT), et l'indexation des sommets (index buffers).
Version 10
modifierLa version 10 représente une importante fracture avec les anciens modèles, en abandonnant la compatibilité avec les anciennes versions, reposant principalement sur la simplicité de programmation et apportant un lot important de nouvelles fonctionnalités comme lesgeometry shaderset un meilleurinstancing[1].Cette version de Direct3D n'est disponible et compatible qu'avecWindows Vista.
Version 11
modifierLa version 11 a été annoncée pour 2009. LaRelease CandidatedeWindows 7intègre un soutien de D3D 11[2].D3D 11 apporte un soutien de latessellation,du rendu parprocessus léger,et descompute shaderconcurrençant leCUDAdeNvidia,l'ATI Streamet l'OpenCL.
Version 12
modifierLa version 12 a été annoncée par Microsoft en 2014[3].
Outils en relation
modifierDirectX est fourni avec D3DX, une bibliothèque d'outils conçue pour effectuer les calculs mathématiques courants et plusieurs tâches plus compliquées, telles que la compilation ou l'assemblage de textures utilisés pour la programmation 3D graphique. Il inclut également plusieurs classes qui simplifient l'utilisation de modèles 3D et, par exemple, lessystèmes de particules.D3DX est fourni comme unebibliothèque de lien dynamique(DLL) ou comme une bibliothèque statique (c'est-à-dire incluse dans l'exécutable).
DXUT (également appelé en anglaissample framework) est une couche établie par-dessus l'API Direct3D. Cette couche est conçue pour aider le programmeur à passer moins de temps avec des tâches répétitives, telles que créer une fenêtre, créer un device, traiter les messages de Windows et manipuler les événements du device.
Notes et références
modifier- Pour une liste résumée des nouvelles versions voir cette page:Direct3D 10 du changement en perspectiveou voir aussi cette page deHardware.frou mieux encore chezPrésence-pc.com
- Julien Jay, «Windows 7: le test», surclubic.com,(consulté le).
- RyanSmith,«Microsoft Announces DirectX 12: Low Level Graphics Programming Comes To DirectX», surwww.anandtech.com(consulté le).