DirectX

Microsoft DirectX

Lettrage du logo Microsoft DirectX
Donnee de base

développeur Microsoft Corporation
Version actuelle  12.0 ULTIMATE (pour Windows 10 2004 )
(06.2020)
système opérateur les fenêtres
Catégorie Interface de programmation
Licence MS - CLUF
Pour les utilisateurs finaux :
www.microsoft.com/de-de/download/details.aspx?id=35
Pour les développeurs :
msdn.microsoft.com/directx/

DirectX [ dɪrɛkt ɛks ( AE ) ou 'daɪrɛkt ɛks ( BE )] est une collection d' interfaces de programmation basées sur COM (English Application Programming Interface , en bref API) pour les applications multimédias intensives (en particulier les jeux ) sur la plate - forme Windows et vient également sur la console de jeu Xbox utilisée.

La collection de composants logiciels DirectX couvre presque toute la gamme du multimédia. En premier lieu , il devient plus complexe lors de l' affichage 2D - et 3D - graphiques utilisés, mais fournit également un soutien pour l' audio , différents périphériques d'entrée (par exemple, la souris , joystick ) et de la communication réseau.

Historique du développement

Préhistoire et MS-DOS

Après que le PC IBM ( compatible ) avec le système d'exploitation MS-DOS se soit imposé comme un « ordinateur pour tout le monde » depuis la fin des années 1980 , l'avancée triomphale de l' interface utilisateur graphique Microsoft Windows a commencé quelques années plus tard . Dans les années 1990, les applications populaires ont été de plus en plus portées sur Microsoft Windows et de nombreuses nouvelles applications ont été développées exclusivement pour Windows à l'aide de WinAPI . La seule exception était les jeux informatiques, qui sont d'abord apparus principalement sur des ordinateurs personnels dotés de meilleures capacités multimédias , mais ont également trouvé leur chemin de plus en plus vers le PC.

À cette époque, Windows ne proposait pas d' interfaces de programmation optimisées pour des opérations graphiques et audio rapides , pourtant pour la plupart indispensables pour les jeux. C'est pourquoi les jeux ont pour la plupart été développés uniquement pour MS-DOS. MS-DOS n'offrait pas non plus d'interfaces spécialement conçues pour les jeux, mais il permettait un contrôle complet sur le processeur et un accès sans entrave à tout le matériel connecté. Par- dessus tout, un programme sous MS-DOS peut être sûr qu'il ne serait pas entravée par d' autres programmes en cours d' exécution en même temps sur le même ordinateur, car un seul programme peut fonctionner sous la seule tâche MS-DOS système. Contrairement à cela, les programmes sous des systèmes multitâches tels que Windows doivent prendre en compte d'autres programmes qui s'exécutent simultanément sur le même ordinateur. À cette époque, Microsoft accordait peu d'attention à l'industrie du divertissement et aux médias de divertissement tels que les jeux informatiques.

Le triomphe du graphisme 3D

Après le succès retentissant du jeu informatique Doom d' id Software , qui avait précédemment montré avec Wolfenstein 3D le potentiel technique des "PC compatibles IBM", qui sont principalement utilisés pour le travail de bureau, Microsoft a commencé à s'intéresser au segment du divertissement. . Le système Windows 95 - qui possédait tout comme son prédécesseur en apparence mais aucune programmation pour les jeux - Microsoft a voulu par la suite ajouter une interface au marché en pleine croissance des joueurs PC de MS-DOS et attirer vers Windows 95. Cette première version d'interface appelée Microsoft " SDK de jeu". Il ne s'agissait que d'une poignée de fonctions avec lesquelles les graphiques pouvaient être amer directement dans la mémoire graphique . Cette première version d'interface a été ignorée par l'industrie du jeu, qui avait développé pour MS-DOS pendant des années et y avait acquis de l'expérience.

En parallèle, Microsoft a développé WinG , une bibliothèque avec la même approche, mais préférée pour le mode 256 couleurs. Cette bibliothèque était utilisée, par exemple, dans "Lemmings for Windows" et était également disponible sous l'interface utilisateur Windows for Workgroups 3.11 .

Microsoft a fait une autre tentative avec DirectX (version 1.0). Microsoft a réussi à persuader id Software de développer un portage de son jeu à succès "Doom" avec cette API pour Windows 95. Ce port de jeu a été présenté par Microsoft à un salon, d'amener les développeurs du monde entier à coopérer avec DirectX directement pour le de facto - norme pour développer Windows 95 au lieu de MS-DOS.

Mais même cette tentative a initialement échoué car Microsoft a largement sous-estimé l'effort requis pour une bibliothèque de programmes utilisable avec des fonctions graphiques et sonores optimisées pour les jeux. Même des années plus tard, des jeux sont arrivés sur le marché qui étaient en fait des jeux DOS en mode entièrement protégé et tout au plus ont apporté avec eux quelques programmes auxiliaires supplémentaires (par exemple des éditeurs ) pour Windows ou n'utilisaient que la fonctionnalité de lecture automatique de Windows .

DirectX 2.0 à 9.29

Puisque la version 2.0 de DirectX apportait également des fonctionnalités 3D sous la forme du composant Direct3D , la version 3.0 a atteint une certaine maturité et a été progressivement prise au sérieux par les développeurs. Avec lui apparaissent les premiers jeux qui ne tournent que sous Windows avec DirectX et non plus sous MS-DOS, par exemple Diablo .

Lors du développement de DirectX 4.0, il s'est avéré que de nombreux programmeurs attendaient des fonctionnalités qui n'étaient destinées qu'à la version 5. Il a donc été décidé de ne pas publier les quelques changements de DirectX 4, mais de les incorporer directement dans la version suivante. DirectX 6.0 a pris en charge le multitexturing et le bump mapping pour la première fois . A partir de la version 7, Transform and Lighting et Cubic Environment Mapping ( CubeMaps ) font partie de la gamme de fonctions. Le package T&L a été considérablement étendu dans la version suivante et étendu pour inclure des fonctions telles que la tessellation triangulaire . Il y avait aussi des vertex et pixel shaders librement programmables .

DirectX 8 couvrait de nombreux domaines de la programmation multimédia et de jeux, tels que les graphiques 2D et 3D, le son et la musique, la vidéo / la capture , l'entrée (et via le retour de force également la "sortie" sur les périphériques d'entrée réels) et le réseau (voir ci-dessous).

DirectX 9.0 est sorti en décembre 2002. Une innovation majeure était le « High Level Shading Language » ( HLSL ), qui permettait aux développeurs de créer plus facilement des graphismes et des effets 3D. HLSL offrait aux développeurs un environnement de développement flexible et facile à utiliser et était compatible avec toutes les cartes graphiques compatibles DirectX afin de simplifier l'adaptation aux caractéristiques matérielles. Une autre innovation était une bibliothèque qui offrait des maillages de patch et des maillages de polygones traditionnels, ainsi que des animations en temps réel améliorées. Toutes les API Direct3D incluaient des capacités de programmation avancées pour les graphiques de bas niveau avec des modèles Vertex et Pixel Shader 2.0 programmables. Dans DirectX 9.0, Microsoft a implémenté de nouveaux assistants pour la création d'objets média DirectX (DMO), pour les effets audio et pour les outils DirectMusic pour le traitement MIDI.

La version DirectX 9.0c a été publiée en août 2004 en tant que version mise à jour. Selon Microsoft, la prise en charge de DirectX 9 est garantie pour les prochaines années dans tous les cas, même si Windows Vista et DirectX 10 / 10.1 sont utilisés en pratique. En juin 2010, Microsoft a publié la version mise à jour 9.29, qui, selon dxdiag , correspond toujours à DirectX 9.0c.

DirectX10

La version DirectX 10.0 est apparue début 2007. Contrairement à ses prédécesseurs, il ne fonctionne que sous les systèmes d'exploitation Windows Vista et Windows 7. De plus, une carte graphique compatible avec DirectX 10.0 doit être installée sur l'ordinateur.

Dans les systèmes Windows 98, Me, 2000, XP ou Server 2003, seul DirectX 9.0c est encore disponible.

En avril 2007, des rapports sont apparus selon lesquels les nouvelles fonctions Direct3D 10 pourraient également être utilisées sur d'autres versions de Windows via leurs propres bibliothèques. La société à l'origine de ce projet a maintenant interrompu le projet et publié le code source.

Seul Direct3D 10 est nouveau dans la version 10, qui utilise les nouveaux modèles de pilote d'affichage Windows et Shader Model 4 , combinés à des règles plus strictes pour les fabricants de cartes graphiques qui souhaitent profiter de la compatibilité Direct3D 10.

À partir de Direct3D 10, à quelques exceptions près, les bits de capuchon ne sont plus utilisés, que les programmes peuvent utiliser pour déterminer les fonctions que le matériel met à disposition. Par conséquent, Direct3D 10 et chaque version ultérieure doivent toujours introduire de nouvelles fonctions sous la forme d'exigences minimales. Microsoft s'adapte ainsi aux développeurs de jeux, car ils devaient auparavant interroger le matériel pour un grand nombre de combinaisons de fonctions possibles. Les fabricants de matériel, quant à eux, sont désormais contraints d'implémenter certaines fonctions afin d'être compatibles avec la version respective de Direct3D. Cela limite la capacité des fabricants de matériel à se démarquer de leurs concurrents grâce à des composants optionnels.

Direct3D 10 diffère de ses prédécesseurs moins par des propriétés directement visibles que par l'expansion, la modularisation et la flexibilisation des fonctions 3D.

DirectX 10.1

DirectX 10.1 a été fourni avec Windows Vista SP1 et contient les modifications suivantes par rapport à DirectX 10 qui affectent l'API Direct3D :

  • Modèle d'ombrage 4.1
  • quadruple antialiasing avec motifs de sous-pixels modifiables
  • Prise en charge du calcul continu avec des nombres à virgule flottante 32 bits
  • tableaux de cubemap adressables dynamiquement
  • Rendu dans des tampons de trame compressés par blocs

Si une carte graphique ne maîtrise pas l'une de ces fonctions, elle ne peut pas proposer une interface Direct3D 10.1 et l'application doit revenir en Direct3D 10.

De plus, XAudio2 est introduit en remplacement de DirectSound.

DirectX 11

Microsoft avait déjà officiellement dévoilé de nouveaux détails sur DirectX 11 lors du salon Gamefest ( 22-23 juillet 2008) à Seattle.

Fondamentalement, toutes les cartes graphiques compatibles avec DirectX 10.x devraient également atteindre une compatibilité totale avec DirectX 11 (ce qui exclut les nouvelles fonctions DirectX 11 sur du matériel plus ancien).

Les principales nouveautés sont :

  • Shader Model 5, avec lequel sont introduits les "Compute Shaders", avec lesquels Microsoft souhaite standardiser la programmation GPGPU .
  • Côté carte graphique, les triangles fournis par le CPU sont subdivisés en d'autres triangles ( tessellation ), grâce auxquels le niveau de détail des scènes 3D peut être augmenté sans alourdir le reste du système. Cette technologie est prise en charge par toutes les cartes graphiques AMD de la série HD-5XXX et toutes les cartes graphiques Nvidia de la série GeForce GTX 4XX.
  • Prise en charge améliorée des threads du pipeline de rendu, en particulier pour une programmation GPGPU plus efficace.

DirectX 11 a été publié dans le cadre de Windows 7 au quatrième trimestre de 2009. Pour Windows Vista, Microsoft a commencé à fournir DirectX 11 le 28 octobre 2009, initialement via Windows Update .

Le responsable du développement technique de la zone graphique d'AMD a annoncé dans un discours à Reykjavík que la première carte graphique DirectX 11 devrait arriver sur le marché dès le premier trimestre 2009. Cependant, ce n'était le cas qu'avec l'apparition de la série ATI Radeon HD 5000 , qui est arrivée sur le marché au début du quatrième trimestre 2009. De plus, les premiers exemples DirectX 11 ont été présentés dans le SDK DirectX à partir de novembre 2008.

DirectX12

Microsoft a présenté DirectX 12 à la Game Developers Conference à San Francisco le 20 mars 2014. Semblable au manteau d'AMD , DirectX 12 offre une programmation liée au matériel, de sorte que la charge du processeur (« overhead ») devrait être réduite. DirectX 12 devrait fonctionner, entre autres, sur toutes les cartes graphiques compatibles DirectX 11, ainsi que sur les appareils mobiles et la Xbox One . Les premiers jeux supportant DirectX 12 étaient attendus pour fin 2015. DirectX 12 est requis pour le lancer de rayons sur les cartes graphiques Nvidia RTX compatibles .

DirectX 12 Ultime

Le 19 mars 2020, Microsoft a annoncé une nouvelle étape de développement DirectX avec DirectX 12 Ultimate dans le blog des développeurs DirectX . Sous DirectX 12 Ultimate, Microsoft combine essentiellement plusieurs technologies, en partie déjà existantes, et rend le support obligatoire pour les fabricants qui souhaitent annoncer leurs produits avec la nouvelle norme. Plus précisément, il s'agit du DirectX Raytracing 1.1, du Variable Rate Shading, des Mesh Shaders et du Sampler Feedback. Afin de pouvoir utiliser toutes les nouvelles fonctionnalités, une carte graphique NVIDIA de la série GeForce 20 ou une carte graphique AMD basée sur l'architecture RDNA 2 est requise. La Xbox Series X est la seule console de jeux vidéo qui prend en charge DirectX 12 Ultimate, la PlayStation 5 de Sony , qui utilise également du matériel AMD basé sur l'architecture RDNA-2, manque de support logiciel car le fabricant japonais utilise d'autres graphiques. Utilisera des API.

Historique des versions

Légende: Ancienne version; N'est plus pris en charge Ancienne version; toujours pris en charge Version actuelle Version préliminaire actuelle Version future
Version DirectX Numéro de version système opérateur publication
Ancienne version; N'est plus pris en charge: DirectX 1.0 4.02.0095 30 septembre 1995
Ancienne version; N'est plus pris en charge: DirectX 2.0 n'a été publié qu'avec quelques programmes tiers 1996
Ancienne version; N'est plus pris en charge: DirectX 2.0a 4.03.00.1096 Windows 95 OSR2 et NT 4.0 5 juin 1996
Ancienne version; N'est plus pris en charge: DirectX 3.0 4.04.00.0068 15 septembre 1996
4.04.00.0069 packages plus récents de DirectX 3.0 inclus Direct3D 4.04.00.0069 1996
Ancienne version; N'est plus pris en charge: DirectX 3.0a 4.04.00.0070 Windows NT 4.0 SP3 (et supérieur)
dernière version prise en charge de DirectX pour Windows NT 4.0 SP0
décembre 1996
Ancienne version; N'est plus pris en charge: DirectX 3.0b 4.04.00.0070 légère amélioration par rapport à 3.0a car un seul problème cosmétique a été
corrigé dans la version japonaise
décembre 1996
Ancienne version; N'est plus pris en charge: DirectX 5.0 4.05.00.0155 (RC55) disponible en version bêta pour Windows NT 4.0 16 juillet 1997
Ancienne version; N'est plus pris en charge: DirectX 5.2 4.05.01.1600 (RC00) Version DirectX 5.2 pour Windows 95 5 mai 1998
4 janvier 1998 (RC0) Exclusivité Windows 98 25 juin 1998
Ancienne version; N'est plus pris en charge: DirectX 6.0 4.06.00.0318 (RC3) Windows CE comme implémentation Dreamcast 7 août 1998
Ancienne version; N'est plus pris en charge: DirectX 6.1 4.06.02.0436 (RC0) 3 février 1999
Ancienne version; N'est plus pris en charge: DirectX 6.1a 4.06.03.0518 (RC0) exclusivement pour Windows 98 SE 5 mai 1999
Ancienne version; N'est plus pris en charge: DirectX 7.0 4.07.00.0700 (RC1) 22 septembre 1999
4.07.00.0700 Windows 2000 17 février 2000
Ancienne version; N'est plus pris en charge: DirectX 7.0a 4.07.00.0716 (RC0) 8 mars 2000
4.07.00.0716 (RC1) 2000
Ancienne version; N'est plus pris en charge: DirectX 7.1 4.07.01.3000 (RC1) exclusivement pour Windows Me 14 septembre 2000
Ancienne version; N'est plus pris en charge: DirectX 8.0 4.08.00.0400 (RC10) 12 novembre 2000
Ancienne version; N'est plus pris en charge: DirectX 8.0a 4.08.00.0400 (RC14) dernière version pour Windows 95 5 février 2001
Ancienne version; N'est plus pris en charge: DirectX 8.1 4.08.01.0810 exclusivement pour Windows XP , Windows Server 2003 et Xbox 25 octobre 2001
4.08.01.0881 (RC7) Version pour les anciens systèmes d'exploitation (Windows 98, Windows Me et Windows 2000) 8 novembre 2001
Ancienne version; N'est plus pris en charge: DirectX 8.1a 4.08.01.0901 (RC?) Mise à jour Direct3D (D3d8.dll) 2002
Ancienne version; N'est plus pris en charge: DirectX 8.1b 4.08.01.0901 (RC7) Correction DirectShow pour Windows 2000 (Quartz.dll) 25 juin 2002
Ancienne version; N'est plus pris en charge: DirectX 8.2 4.08.02.0134 (RC0) identique à DirectX 8.1b, mais avec DirectPlay 8.2 2002
Ancienne version; N'est plus pris en charge: DirectX 9.0 4.09.00.0900 (RC4) 19 décembre 2002
Ancienne version; N'est plus pris en charge: DirectX 9.0a 4.09.00.0901 (RC6) 26 mars 2003
Ancienne version; N'est plus pris en charge: DirectX 9.0b 4.09.00.0902 (RC2) 13 août 2003
Ancienne version; N'est plus pris en charge: DirectX 9.0c 4.09.00.0903 uniquement pour le Service Pack 2 pour Windows XP
4.09.00.0904 (RC0) 4 août 2004
4.09.00.0904 Windows XP SP2, Windows Server 2003 SP1, Windows Server 2003 R2 et Xbox 360 6 août 2004
Ancienne version; toujours pris en charge :DirectX
régulièrement
communiqués
4.09.00.0904 (RC0) La dernière version pour Windows 98 et ME date de décembre 2006.
La dernière version pour Windows 2000 date de février 2010.
La première version compatible 64 bits date de février 2005.

tous les deux mois d'octobre 2004 à août 2007 ; puis
trimestriellement ; version actuelle : juin 2010
Ancienne version; toujours pris en charge : DirectX 9.29 4.09.000.0904 à partir de Windows XP 7 juin 2010
Ancienne version; toujours pris en charge : DirectX10 6.00.6000.16386 Windows Vista, Windows 7 20 novembre 2006
Ancienne version; toujours pris en charge : DirectX 10.1 6.00.6001.18000 Service Pack 1 pour Windows Vista , Windows Server 2008
avec Direct3D 10.1
4 février 2008
Ancienne version; toujours pris en charge : DirectX 11 6.01.7600.0000 Windows Vista SP2, Windows 7 22 octobre 2009
Ancienne version; toujours pris en charge : DirectX 11.1 6.02.9200 Windows 8 , Windows 7 26 octobre 2012
Ancienne version; toujours pris en charge : DirectX 11.2 6.03.9600 Windows 8.1 , Windows 8, Windows 7 SP1 18 octobre 2013
Version actuelle: DirectX12 10.00.17134.0001 Windows 7, Windows 10 29 juillet 2015

Remarques:

  1. DirectX 4 n'a jamais été publié. Raymond Chen explique sur son blog, The Old New Thing et son livre du même nom, qu'après la sortie de DirectX 3, Microsoft a commencé à développer 4 et 5 en parallèle. La version 4 devrait être une adaptation mineure, 5 avec des changements majeurs. Un manque d'intérêt des développeurs pour les nouveautés de la version 4 a conduit à la sortie immédiate de la version 5.
  2. Le numéro de version affiché par l' outil DxDiag de Microsoft (version 4.09.0000.0900 et supérieure) utilise le format "x.xx.xxxx.xxxx" pour les numéros de version. Cependant, dans le registre testamentaire, le format "X.XX. xx .xxxx "est utilisé. Il est donc possible que « 4.09.00.0904 » s'affiche dans DxDiag sous la forme « 4.09.000.0904 » pour la version listée ci-dessus.

Structure de DirectX

DirectX se compose des éléments suivants :

Graphiques DirectX

DirectX Graphics est la partie la plus utilisée de DirectX. Il permet un accès rapide et direct à la carte graphique , en contournant l' interface de périphérique graphique (GDI) et l'interface de périphérique d'affichage (DDI), et prend en charge (avec « Direct2D ») les graphiques 2D et (avec « Direct3D ») 3D .

DirectX Graphics fournit à la fois une API de bas niveau (Direct3D) et une API de haut niveau (Direct3DX). L' API de bas niveau Direct3D convient aux applications avec un taux d'interaction ou une fréquence de présentation élevé de scènes graphiques complexes, telles que les jeux 3D. Jusqu'à la version 7, l'API de bas niveau faisait la distinction entre les graphiques 2D (DirectDraw) et les graphiques 3D (Direct3D). En révisant la zone graphique (en version 8), les deux parties ont été combinées sous une API uniforme dans Direct3D. Le développement explicite et indépendant de DirectDraw a donc été interrompu.

L' API de haut niveau Direct3DX, quant à elle, permet de mettre en œuvre des applications 3D avec un effort raisonnable. Direct3DX est basé sur Direct3D, c'est-à-dire qu'il utilise ses fonctionnalités de base.

De plus, le groupe de fonctions émule des fonctions qui ne sont pas prises en charge par le matériel. Pour cela, la Hardware Emulation Layer (HEL) utilise les possibilités des processeurs MMX pour manipuler les images et utilise les fonctions du GDI. Entre autres choses, le changement de page (retournement) (voir double buffering ), le blitting , le clipping , le Z-buffer 3D , les superpositions et le contrôle direct du flux de données par le matériel du port vidéo (gestionnaire de port vidéo) sont pris en charge.

DirectSetup

DirectSetup permet aux programmeurs de demander à leur routine d'installation de vérifier automatiquement si la version DirectX requise est déjà installée, et de l'installer si ce n'est pas le cas.

XAudio2

XAudio2 est basé sur l'API Xbox 360 Sound et a remplacé DirectSound. Les programmes DSP programmables permettent des effets de type EAX sur tous les périphériques de sortie audio (ugs. Parfois appelée "carte son", même s'il n'y a pour la plupart que des composants sur la carte mère) ; cependant, ceux-ci sont exécutés sur le processeur principal . Cela a surtout suscité des critiques de la part du constructeur Creative , car de tels programmes DSP pourraient être exécutés "en hardware" sur leurs puces ou cartes afin d'offrir aux joueurs un avantage de vitesse (en soulageant le CPU).

XEntrée

XInput est le nouveau standard pour les périphériques d'entrée sous Windows XP et les systèmes d'exploitation ultérieurs, ainsi que pour la Xbox 360. XInput ignore tous les anciens périphériques DirectInput, ce qui signifie que les anciens joysticks et joypads ne peuvent fonctionner que par simulation via des programmes wrapper dans les différents jeux et candidatures. Jusqu'à présent, il n'y a pas de solution connue à ce problème de la part de Microsoft, c'est pourquoi on peut supposer que la société n'a aucun intérêt à prendre en charge davantage de tels appareils. Si vous souhaitez exécuter des jeux XInput avec un contrôleur DirectInput, il est conseillé d'utiliser un émulateur approprié. On peut se demander si Microsoft prendra en charge les périphériques DirectInput purs avec XInput à l'avenir.

Dépassé

Les composants suivants faisaient partie de DirectX dans le passé, mais ne sont plus pris en charge.

Entrée directe

Des dispositifs d'entrée de supports d'entrée directs tels que clavier , souris , joysticks , etc. , et permet des effets de retour de force (par exemple la vibration d'une manette de jeu ou de la résistance lors du déplacement d' un levier de commande) et permet l' accès à analogique et numérique des périphériques d'entrée qui utilisent un absolu de coordonnées du système . Un périphérique d'entrée peut avoir jusqu'à six axes de mouvement et 32 ​​boutons. L'accès via DirectInput contourne le système de messagerie Windows ( c'est-à-dire les événements, les messages et les files d'attente) et s'effectue directement sur le matériel ; un avantage de vitesse sur l'API Win32. DirectInput permet aux applications d'utiliser les capacités de retour de force possibles des périphériques d'entrée afin de générer des effets de retour de force.

DirectMusique

Pour jouer de la musique (musique MIDI , mais pas de musique compressée telle que MP3 ). DirectMusic fournit à un logiciel - un service de synthétiseurs . Un synthétiseur DLS2 est utilisé. Voir DirectShow pour lire de la musique compressée telle que MP3 et vidéo ( AVI , MPEG ).

Lecture directe

DirectPlay est utilisé pour la communication entre les jeux multijoueurs qui s'exécutent sur plusieurs ordinateurs (pour les jeux en réseau ou les jeux en ligne ). Il s'agit essentiellement d'un protocole au niveau de l'application, et il est donc indépendant des protocoles spécifiques utilisés au niveau du transport et de la transmission (voir aussi modèle OSI ). DirectPlay ne met en œuvre aucun mécanisme de rencontre des joueurs (matchmaking) ou de comptabilisation de la participation au jeu.

Le noyau est la session de jeu (session DirectPlay), qui est générée et modérée par un ordinateur appelé "hôte". Les joueurs sont des objets logiques dont il peut y en avoir plusieurs par ordinateur, une distinction est donc faite entre les joueurs locaux et distants. Le concept de groupes de joueurs est supporté, chaque joueur peut appartenir à plusieurs groupes en même temps. Les joueurs peuvent envoyer des messages à d'autres joueurs ( chat ).

Remarque : pour de nombreux développeurs de jeux, la charge CPU très élevée (« overhead ») de DirectPlay a été déterminante pour ne pas l'utiliser et préférer implémenter leur propre accès réseau plus efficace basé sur Winsock . Cependant, d'autres se sont prononcés en raison du lien fort de Windows, car par exemple, des jeux de tir à la première personne exécutables spécifiques aux systèmes Windows comme leur propre Linux - Server sont en cours de développement.

DirectShow (anciennement "Direct Media")

DirectShow ou anciennement ActiveMovie ou DirectX Media est utilisé pour traiter les fichiers vidéo et audio , avec lesquels différents types de fichiers vidéo ( AVI , MPEG ) et fichiers son (par exemple MP3 ) peuvent être lus ou créés. Le streaming est également pris en charge et peut être étendu selon les besoins à l'aide de filtres DirectShow.

DirectShow a depuis été supprimé du SDK DirectX et a été inclus dans le SDK de la plate-forme Windows. À proprement parler, DirectShow ne fait plus partie de DirectX, mais fait désormais partie de la plate-forme Windows.

Son direct

DirectSound est utilisé pour lire et enregistrer des effets sonores, par ex. B. Le support Surround (c'est-à-dire le positionnement des sons dans l'espace 3D) est utilisé. Les données de plusieurs tampons d'entrée (Secondary Sound Buffers) sont affectées à des effets et mélangées ensemble sur un tampon de sortie (Primary Sound Buffer). Les tampons d'entrée peuvent être implémentés dans un logiciel ou un matériel, fournissant des données de manière statique (par exemple à partir d'un fichier) ou dynamique (par exemple en streaming à partir d'une entrée microphone). Le nombre de tampons d'entrée pouvant être mélangés n'est limité que par la puissance de calcul disponible . Il s'adapte automatiquement au spectre de performances de la carte son installée . Des effets de base, tels que le volume , le contrôle de fréquence , le panoramique ou la balance, des effets supplémentaires tels que la réverbération ( effet Hall ), le chorus , la distorsion , l' égalisation et les effets 3D, tels que le rolloff , le panoramique d'amplitude , l' assourdissement , le décalage d'arrivée et l'effet de décalage Doppler sont disponibles . Depuis que DirectSound a été remplacé par XAudio2, les échantillons pour DirectSound ne sont plus inclus dans les versions du SDK DirectX après novembre 2007.

Objets média DirectX

DirectX Media Objects offre la possibilité de modifier les flux audio et vidéo et peut également être utilisé avec DirectSound et DirectShow.

Accélération vidéo DirectX

DirectX Video Acceleration est une interface de programmation (API) développée par Microsoft pour Windows et Xbox 360 , avec laquelle il est possible d'accélérer le décodage vidéo via le matériel en permettant , entre autres, l'accès au GPU . La version DXVA 1.0 a été introduite avec Windows 2000 et est également disponible pour les plates -formes Windows 98 et ultérieures ; la version DXVA 2.0 a été introduite avec Microsoft Windows Vista et intégrée à Media Foundation .

Fonctionnalité

DirectX permet un accès direct au matériel du système sans rendre les programmes dépendants du matériel. Ainsi, les développeurs de jeux ont une couche d'abstraction matérielle ( HAL de l'anglais. Couche d'abstraction matérielle ) pour la programmation du jeu fournie par les interfaces lentes (par exemple, Win GDI doit être contourné). Les fonctions qui ne peuvent pas être fournies par le matériel et donc non fournies par la HAL sont émulées dans la couche d'émulation matérielle ( HEL de la couche d'émulation matérielle ) .

DirectX en dehors de Windows

En plus de l' API Microsoft DirectX incluse dans les versions actuelles de Windows , il existe également des variantes pour d'autres systèmes d'exploitation . Ces simulations sont utilisées pour utiliser des programmes d'application Windows sans système d'exploitation Windows. Pour des raisons légales, toutes les fonctions de l'API d'origine ne sont généralement pas disponibles, ce qui peut limiter la compatibilité avec les programmes d'application. Étant donné que très peu de programmes d'application ont besoin de toutes les fonctions de l'API DirectX, beaucoup peuvent encore être utilisés sans restrictions. Les fonctions graphiques sont principalement fournies en utilisant OpenGL . Exemples d'implémentations DirectX :

  • Cedega : Une implémentation commerciale de Win32 et DirectX dans le but de faire tourner les jeux Windows sous Linux.
  • Wine : Un projet open source dans le but de créer une API complète Win32 et Win64 et donc aussi DirectX pour les systèmes d' exploitation Linux et Unix . L'implémentation DirectX de Wine n'est qu'une couche d'abstraction légère pour le serveur X et OpenGL.
  • CrossOver : Une extension commerciale de Wine .
  • Darwine : Un portage Wine pour macOS .
  • ReactOS : Utilise une partie des librairies Wine, dont DirectX, pour économiser un double travail de développement.

Alternatives à DirectX

En plus de DirectX, des API gratuites sont également disponibles qui, contrairement à DirectX, ne se limitent pas à la plate-forme Windows. Cependant, ces API ne sont pas aussi complètes, mais peuvent remplacer de grandes parties de DirectX et permettre le développement de logiciels multiplateformes . Certaines de ces alternatives, telles que OpenGL et OpenAL, offrent une accélération matérielle ainsi que DirectX.

API importantes :

  • OpenAL pour le son (3D), remplace DirectSound et DirectMusic
  • OpenCL en remplacement de DirectX 11 Compute Shader
  • OpenGL pour les graphiques (3D), remplace Direct3D ou DirectX Graphics
  • OpenML pour le traitement multimédia , i. H. en particulier la vidéo, remplace DirectShow ou DirectX Media
  • SFML , SDL , ClanLib ou Allegro pour des tâches telles que B. prise en charge des périphériques d'entrée, des graphiques 2D/3D, de la gestion des threads multiplateformes et de la mise en réseau. Ces bibliothèques sont basées sur DirectX ou OpenGL.
  • Vulkan du groupe Khronos en tant que successeur d'OpenGL, dérivé de l'interface AMD Mantle abandonnée

Information additionnelle

Les applications DirectX sont créées à l'aide du SDK DirectX .

Un programme de test informatif est le programme de diagnostic DirectX . Il est inclus dans Windows et peut être démarré via Démarrer → Exécuter → dxdiag ou, à partir de Windows Vista, il peut être saisi dans la fenêtre de recherche de la barre de démarrage.

liens web

Preuve individuelle

  1. ^ A b Raymond Chen : Qu'est-il arrivé à DirectX 4 ? 22 janvier 2004, consulté le 26 janvier 2011 .
  2. Alky Project Blog ( Memento du 20 avril 2007 dans Internet Archive )
  3. Développement sur DirectX-10-Wrapper pour Windows XP arrêté , Golem-News du 8 janvier 2008
  4. Microsoft apporte DirectX 11 et rénove les services de jeux (Golem.de du 23 juillet 2008)
  5. Tessellated Froblins - Vidéos des démos techniques AMD pour le 4850 (Golem.de du 27 juin 2008)
  6. DirectX-11 pour Windows Vista disponible (Golem.de du 28 octobre 2009)
  7. TG Daily sur la première carte graphique DirectX 11 ( souvenir de l' original du 9 août 2008 dans Internet Archive ) Info : Le lien d' archive a été inséré automatiquement et n'a pas encore été vérifié. Veuillez vérifier le lien d'origine et d'archive conformément aux instructions , puis supprimez cet avis. @1@ 2Modèle : Webachiv / IABot / www.tgdaily.com
  8. heise en ligne : Microsoft cible les appareils mobiles avec DirectX 12 , consulté le 6 mars 2014.
  9. Golem.de : Microsoft : DirectX-12 avec le support d'AMD à Qualcomm , consulté le 6 mars 2014.
  10. Shawn Hargreaves : annonce de DirectX 12 Ultimate. Dans : Blog des développeurs DirectX. 19 mars 2020, consulté le 20 août 2021 .
  11. Microsoft présente "DirectX 12 Ultimate" avec quatre "nouvelles" fonctionnalités graphiques obligatoires. Dans : 3dcenter.org. 20 mars 2020, consulté le 20 août 2021 .
  12. DirectX 9.0c de décembre 2006
  13. DirectX 9.0c de février 2010
  14. DirectX 9.0c du 9 février 2005 ( Memento du 16 octobre 2009 dans Internet Archive )
  15. Référence officielle DirectX 9.29 sur www.microsoft.com
  16. Panagiotis Kolokythas : Windows 7 reçoit le support DirectX 12 , PC-WELT, 27 août 2019
  17. Frederik Niemeyer : DirectX 12 : Microsoft oblige les joueurs à passer à Windows , CHIP, 14 novembre 2014
  18. ^ Raymond Chen : La Vieille Nouvelle Chose . 1ère édition. Pearson Education, 2006, ISBN 0-321-44030-7 , p. 330 .
  19. Windows 7 - Direct2D pour l'affichage 2D - Article sur GameStar , du 30 octobre 2008
  20. Microsoft : XInput et DirectInput.Récupéré le 11 août 2014
  21. DirectX ( Memento de l' original du 15 février 2012 dans Internet Archive ) Info : Le lien d' archive a été inséré automatiquement et n'a pas encore été vérifié. Veuillez vérifier le lien d'origine et d'archive conformément aux instructions , puis supprimez cet avis. (Anglais), Wine Project, consulté le 16 février 2012  @1@ 2Modèle : Webachiv / IABot / wiki.winehq.org
  22. DirectX (anglais), projet ReactOS, consulté le 16 février 2012
  23. https://www.heise.de/newsticker/meldung/Neue-3D-Schnittstelle-AMD-Mantle-als-DirectX-Konbewerb-1967989.html