Passer au contenu

DirectX optimise l’accès aux ressources matérielles du PC

DirectX est l’équivalent pour le multimédia de ce que sont les pilotes de périphériques pour Windows.

Les concepteurs de jeux ont tardé à adopter Windows comme plate-forme de développement. Les API (interfaces de programmation) natives fournies par Windows n’offraient pas, en effet, les performances suffisantes et elles empêchaient l’accès aux multiples ressources matérielles des cartes graphiques et surtout des cartes 3D. Lorsque Microsoft a créé l’API DirectX, la situation a changé. Aujourd’hui, les jeux en 3D réclament davantage de puissance matérielle et tirent Windows vers le haut. Les progrès de DirectX profitent également aux applications multimédias, voire à la CAO.

La grande famille DirectX

DirectX n’est pas une unique API, mais une famille d’API dont la version actuelle (DirectX 7. 0a) comprend neuf membres : DirectDraw optimise les accès 2D aux cartes graphiques, éventuellement dans une fenêtre ; DirectSound gère l’enregistrement et la restitution du son avec des effets 3D ; DirectInput prend en charge la souris, le clavier et le joystick, y compris le retour de force lorsque le matériel l’assure ; Direct3D permet de créer et de manipuler des scènes 3D ; DirectPlay est destiné au partage de données en réseau ; DirectShow joue des séquences vidéo et audio (MPEG, WAV, AVI, etc. ) ; DirectAnimation gère des objets graphiques qu’il est possible d’utiliser dans une page web ; DirectMusic joue des morceaux de musique de synthèse (par exemple, au format Midi) ; enfin, DirectSetup permet de commander l’installation de la partie distribuée de DirectX depuis une application.
Développées le plus souvent en Visual Basic, les API DirectX mettent en ?”uvre la technologie des composants COM de Microsoft (lire encadré). Cela garantit un accès homogène aux services, quel que soit le langage de programmation utilisé, ainsi qu’une compatibilité ascendante des services offerts par les versions successives de l’API. Mais le plus important est que l’interface ne garantit que le service offert. En fonction de la configuration réelle du PC, les fonctions de l’API seront réalisées soit par le HEL (Hardware Emulation Layer) lorsqu’aucun matériel n’offre la fonction, soit par le HAL (Hardware Abstraction Layer) lorsqu’un circuit de la carte graphique, par exemple, optimise la fonction (transfert de bloc, calcul 3D, etc. ). Logiquement, les performances offertes par le HAL sont supérieures à celles du HEL, ce qui est le but de DirectX : tirer parti des possibilités du matériel. Grâce à cette architecture d’API, même les programmes existants tirent profit des évolutions du matériel. Peu de concepteurs de programmes 3D ont ainsi besoin d’apprendre à utiliser les jeux d’instructions étendus des processeurs Intel (Pentium MMX et Pentium II) ou AMD (K6 3D ! Now). Il a suffi d’attendre DirectX 6. 0, première version optimisée pour les Pentium et non plus pour les vieux 486, pour que tous les programmes en profitent, ce qui évite simultanément les problèmes de compatibilité.
En revanche, les constructeurs de matériels multimédias doivent absolument fournir des pilotes compatibles DirectX avec leurs produits. Faute de quoi, les extensions matérielles resteront inutilisées.
Jusqu’à la version 5 de DirectX, les fonctions offertes par l’API étaient moins riches que celles accessibles directement par le matériel. Il y manquait certaines options, comme pour Direct3D, les textures compressées, ou le bump mapping (gestion du rendu optimisée). Depuis DirectX 6, première version de l’API commune à Windows 9x et Windows 2000, Microsoft a rattrapé ce retard. DirectX 6 fait appel à un algorithme de bump mapping sous licence TriTech, aux textures compressées sous licences S3 et, en organisant les données en vertex buffers (squelette de l’image type fil de fer, etc. ), est pratiquement de 30 % plus performant grâce au matériel. La version 7 va dans le même sens. Elle s’attache à améliorer les performances, en particulier pour la 3D, incorpore quelques nouveaux modules, comme DirectMusic, et offre aux constructeurs la possibilité d’étendre immédiatement le jeu de fonctions gérées par une carte, sans attendre la version suivante de DirectX.

🔴 Pour ne manquer aucune actualité de 01net, suivez-nous sur Google Actualités et WhatsApp.


CHRISTOPHE GROSJEAN