Graphiques haute fidélité avec DirectX
Les développeurs d’applications Windows utilisent depuis longtemps Microsoft DirectX pour fournir des graphiques 3D de haute qualité, accélérés par le matériel. Lorsque la technologie a fait ses débuts en 1995, les développeurs pouvaient fournir des graphiques 3D de haute qualité pour les jeux et les applications d’ingénierie pour les joueurs et les professionnels prêts à payer un supplément pour une carte graphique 3D. Désormais, même les PC les plus économiques incluent du matériel graphique 3D compatible.
Pour tirer parti de ces fonctionnalités graphiques, Windows Vista a introduit l’infrastructure WDDM (Windows Display Driver Model) pour DirectX qui a permis à plusieurs applications et services de partager les ressources de l’unité de traitement graphique (GPU). Le Gestionnaire de fenêtres de bureau (DWM) utilise cette technologie pour animer le basculement de tâche en 3D, fournir des images miniatures dynamiques des fenêtres d’application et fournir des effets de verre Aero Windows pour les applications de bureau.
Windows 7 met encore plus de fonctionnalités graphiques entre les mains des développeurs d’applications. Grâce à un nouvel ensemble de DirectXAPIs, les développeurs Microsoft Win32 peuvent tirer parti des dernières innovations en matière de GPU pour ajouter des graphiques, du texte et des images 2D et 3D rapides, évolutifs et de haute qualité à leurs applications. Sur les derniers écrans LCD , DirectXAPIs peut afficher du contenu de bureau et de fenêtre à l’aide d’une profondeur de couleur supérieure à 8 bits par composant de couleur.
Avec DirectX, les développeurs Win32 peuvent également utiliser le parallélisme du GPU pour le calcul à usage général, comme le traitement d’images, et peuvent effectuer le rendu sur le matériel DirectX 10, le matériel DirectX 9, le processeur ou sur un ordinateur Windows distant. Ces technologies ont été conçues pour interagir avec Windows Graphics Device Interface (GDI) et Windows GDI+, garantissant ainsi que les développeurs peuvent facilement préserver leurs investissements existants dans le code Win32. (Consultez Nouveautés du Kit de développement logiciel (SDK) DirectX de mars 2009.)
Ces fonctionnalités graphiques améliorées sont fournies par les API COM suivantes :
- Direct2D pour dessiner des graphiques 2D.
- DirectWrite pour l’organisation et le rendu du texte.
- Composant d’acquisition d’images Windows pour le traitement et l’affichage des images.
- Direct3D 10 pour dessiner des graphiques 3D.
- Direct3D 11 pour dessiner des graphiques 3D et fournir un accès aux technologies GPU de nouvelle génération, telles que la pavage, la prise en charge limitée du streaming de textures et l’informatique à usage général.
- Infrastructure graphique DirectX (DXGI) pour gérer les périphériques d’affichage locaux et distants et les ressources GPU, et fournir une interopérabilité entre DirectX et GDI.
Direct2D
Basé sur Microsoft Direct3D 10, Direct2D offre aux développeurs Win32 des API 2D en mode immédiat, indépendantes de la résolution, qui utilisent la puissance du matériel graphique de nouvelle génération, tout en interopération avec les applications GDI/GDI+ d’aujourd’hui et les applications Direct3D 10. Direct2D fournit un rendu 2D de haute qualité avec des performances supérieures à GDI et GDI+. Il offre aux développeurs Win32 un contrôle plus précis sur les ressources et leur gestion. (Voir Direct2D.)
DirectWrite
De nombreuses applications d’aujourd’hui doivent prendre en charge le rendu de texte de haute qualité, les polices de contour indépendantes de la résolution et la prise en charge de la disposition et du texte Unicode intégral. DirectWrite, un nouveau composant DirectX, fournit ces fonctionnalités et bien plus encore :
- Un système de disposition de texte indépendant de l’appareil qui améliore la lisibilité du texte dans les documents et dans l’interface utilisateur.
- Rendu de texte ClearType de haute qualité, sous-pixels, qui peut utiliser GDI, Direct2D ou une technologie de rendu spécifique à l’application.
- Texte accéléré par le matériel, lorsqu’il est utilisé avec Direct2D.
- Prise en charge du texte multiformat.
- Prise en charge des fonctionnalités de typographie avancées des polices OpenType .
- Prise en charge de la disposition et du rendu du texte dans toutes les langues prises en charge.
- Disposition et rendu compatibles GDI.
Le système de polices DirectWrite permet l’utilisation des polices « n’importe où », où les utilisateurs n’ont pas besoin d’effectuer une étape d’installation distincte uniquement pour utiliser une police, et une hiérarchie structurelle améliorée de regroupement de polices pour faciliter la découverte manuelle ou programmatique des polices. Les API prennent en charge la mesure, le dessin et le test de positionnement de texte multiformat. DirectWrite gère le texte dans toutes les langues prises en charge pour les applications globales et localisées, en s’appuyant sur l’infrastructure linguistique clé de Windows 7. DirectWrite fournit également des API de rendu de glyphes de bas niveau pour les développeurs qui souhaitent effectuer leur propre disposition et traitement Unicode-vers-glyphe. (Voir DirectWrite.)
Composant Windows Imaging
Dans Windows Vista, le composant d’acquisition d’images Windows a introduit une infrastructure extensible permettant d’utiliser des images et des métadonnées d’image. Les formats d’image pris en charge par le composant d’acquisition d’images Windows incluent JPEG, PNG et TIFF, et les formats de métadonnées pris en charge incluent XMP et EXIF. Avec Windows 7, le composant d’acquisition d’images Windows étend sa conformité aux normes en prenant en charge le décodage progressif des images, les fonctionnalités PNG étendues, les métadonnées GIF et les métadonnées qui s’étendent sur les segments APPn . (Voir Nouveautés de WIC dans Windows 7.)
Direct3D 11
Microsoft Direct3D 11 étend les fonctionnalités du pipeline Direct3D 10 et fournit aux jeux Windows 7 et aux applications 3D haut de gamme un accès efficace, robuste et évolutif à la prochaine génération de GPU et de processeurs multicœurs. En plus des fonctionnalités de Direct3D 10, Direct3D 11 introduit plusieurs nouvelles fonctionnalités.
Les surfaces géométriques et d’ordre élevé peuvent désormais être tessellées pour prendre en charge le contenu évolutif et dynamique dans les représentations de surface de patch et de subdivision.
Pour utiliser correctement la puissance de traitement parallèle disponible à partir de plusieurs cœurs de processeur, le multithread augmente le nombre d’appels de rendu potentiels par image en distribuant les appels d’application, d’exécution et de pilote sur plusieurs cœurs. En outre, la création et la gestion des ressources ont été optimisées pour une utilisation multithread, ce qui permet une gestion dynamique des textures plus efficace pour la diffusion en continu.
De nouveaux nuanceurs de calcul à usage général ont été créés pour Direct3D 11. Contrairement aux nuanceurs existants, il s’agit d’extensions du pipeline programmable qui permettent à votre application d’effectuer un travail complet sur le GPU, indépendamment du processeur. DrawAuto, qui a été introduit dans Direct3D 10, a été étendu pour interagir avec un nuanceur de calcul.
Plusieurs améliorations ont été apportées au langage d’ombrage de haut niveau (HLSL), telles qu’une forme limitée de liaison dynamique dans les nuanceurs pour améliorer la complexité de la spécialisation, et des constructions de programmation orientée objet comme les classes et les interfaces. (Consultez Nouveautés du Kit de développement logiciel (SDK) DirectX de mars 2009.)
Améliorations apportées à Direct3D 10
Direct3D 10 comprend un pipeline graphique repensé avec des étapes de nuanceur programmables et des objets d’état immuables pour l’initialisation des étapes de fonction fixe. Les objets d’état simplifient le pipeline et améliorent les performances en réduisant le nombre de modifications d’état requises. La programmabilité des étapes du nuanceur offre désormais des extensions de langage d’ombrage de haut niveau pour prendre en charge des instructions de nuanceur illimitées, des ressources de nuanceur généralisées et des calculs au niveau des entiers et des bits.
Le pipeline introduit également l’étape du nuanceur de géométrie, qui décharge entièrement le travail de l’UC vers le GPU. Cette nouvelle étape vous permet de créer une géométrie, de diffuser en continu les données en mémoire et de restituer la géométrie sans interaction avec le processeur.
Plusieurs autres améliorations sont conçues spécifiquement pour des performances plus rapides. Le rendu prédicé effectue l’élimination de l’occlusion pour réduire la quantité de géométrie rendue. Les API d’instanciation peuvent réduire considérablement la quantité de géométrie qui doit être transférée vers le GPU en dessinant plusieurs instances d’objets similaires. Les tableaux de textures permettent au GPU d’effectuer l’échange de textures sans intervention du processeur.
Plusieurs ajouts ont été apportés à Direct3D 10 et Direct3D 11 pour étendre la gamme des configurations qui peuvent être ciblées avec ces API. La plateforme de rastérisation avancée Windows (WARP) implémente un rendu rapide et évolutif du processeur multicœur pour Direct3D 10, ce qui permet un rendu graphique complet sur des systèmes sans matériel graphique. L’ajout de nouveaux « niveaux de fonctionnalités », spécifiquement appelés Direct3D 10 Level 9, permet aux api Direct3D 10 et Direct3D 11APIs de piloter le matériel Microsoft Direct3D 9 de classe, ce qui augmente le nombre de configurations qu’une application Direct3D 10 ou Direct3D 11 peut cibler sur presque tous les systèmes informatiques du marché. (Voir Graphiques Direct3D 10.)
Interopérabilité DirectX/GDI
Dans Windows Vista, le comportement d’une application qui utilise à la fois DirectX et GDI pour effectuer le rendu sur une surface partagée est différent selon que DWM est activé ou désactivé. En outre, lorsque DWM est activé, les applications qui utilisent DirectX et GDI se comportent différemment sur Windows Vista et sur Windows XP. De nombreux éditeurs de logiciels indépendants ont donc désactivé DWM lors de l’exécution de leurs applications sur Windows Vista pour garantir un comportement cohérent. Grâce aux améliorations apportées à DirectX dans Windows 7, une application peut désormais combiner librement DirectX et GDI sans désactiver DWM. Windows 7 offre également des performances améliorées pour les scénarios qui nécessitent une interopérabilité entre DirectX et GDI en utilisant les API Direct3D 10 plus efficaces. (Consultez Vue d’ensemble de l’interopérabilité direct2D et GDI.)