Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Windows-Anwendungsentwickler haben Microsoft DirectX lange verwendet, um qualitativ hochwertige, hardwarebeschleunigte 3D-Grafiken bereitzustellen. Als die Technologie 1995 debütierte, konnten Entwickler hochwertige 3D-Grafiken für Spiele und technische Anwendungen für Spieler und Profis bereitstellen, die bereit sind, zusätzliche Kosten für ein 3D-Grafikbrett zu zahlen. Selbst die kostengünstigsten PCs enthalten nun fähige 3D-Grafikhardware.
Um diese Grafikfunktionen nutzen zu können, hat Windows Vista die Windows Display Driver Model (WDDM)-Infrastruktur für DirectX eingeführt, die mehrere Anwendungen und Dienste aktiviert hat, um die Ressourcen der Grafikverarbeitungseinheit (GPU) gemeinsam nutzen zu können. Der Desktop Window Manager (DWM) verwendet diese Technologie, um den Aufgabenwechsel in 3D zu animieren, dynamische Miniaturansichten von Anwendungsfenstern bereitzustellen und Windows Aero-Glaseffekte für Desktopanwendungen bereitzustellen.
Windows 7 bietet noch mehr Grafikfunktionen in die Hände von Anwendungsentwicklern. Durch eine neue Gruppe von DirectXAPIs können Microsoft Win32-Entwickler die neuesten Innovationen in GPUs nutzen, um ihren Anwendungen schnelle, skalierbare, qualitativ hochwertige, 2D- und 3D-Grafiken, Text und Bilder hinzuzufügen. Auf den neuesten LCD- Displays können DirectXAPIs Desktop- und Fensterinhalte mit einer Farbtiefe von mehr als 8 Bit pro Farbkomponente anzeigen.
Mit DirectX können Win32-Entwickler auch die Parallelität der GPU für die allgemeine Berechnung wie z. B. die Bildverarbeitung verwenden und auf DirectX 10-Hardware, DirectX 9-Hardware, der CPU oder auf einem Windows-Remotecomputer rendern. Diese Technologien wurden entwickelt, um mit windows Graphics Device Interface (GDI) und Windows GDI+ zu arbeiten, um sicherzustellen, dass Entwickler ihre vorhandenen Investitionen in Win32-Code problemlos beibehalten können. (Siehe Neuigkeiten im DirectX SDKmärz 2009.)
Diese erweiterten Grafikfunktionen werden von den folgenden COM--basierten APIs bereitgestellt:
- Direct2D- zum Zeichnen von 2D-Grafiken.
- DirectWrite- zum Anordnen und Rendern von Text.
- Windows-Imageerstellungskomponente zum Verarbeiten und Anzeigen von Bildern.
- Direct3D 10- zum Zeichnen von 3D-Grafiken.
- Direct3D 11- zum Zeichnen von 3D-Grafiken und bietet Zugriff auf GPU-Technologien der nächsten Generation, z. B. Tessellation, eingeschränkte Unterstützung für Texturstreaming und allgemeines Computing.
- DirectX Graphics Infrastructure (DXGI) zum Verwalten lokaler und Remoteanzeigegeräte und GPU-Ressourcen und zur Interoperabilität zwischen DirectX und GDI.
Direct2D
Basierend auf Microsoft Direct3D 10 bietet Direct2D- Win32-Entwicklern sofortigen Modus, auflösungsunabhängige 2D-APIs, die die Leistungsfähigkeit der Grafikhardware der nächsten Generation nutzen, aber dennoch gut mit den heutigen GDI/GDI+-Anwendungen und Direct3D 10-Anwendungen zusammenarbeiten. Direct2D bietet hochwertiges 2D-Rendering mit hervorragender Leistung gegenüber GDI und GDI+. Es bietet Win32-Entwicklern eine bessere Kontrolle über Ressourcen und deren Verwaltung. (Siehe Direct2D-.)
DirectWrite
Viele der heutigen Anwendungen müssen qualitativ hochwertiges Textrendering, auflösungsunabhängige Gliederungsschriftarten und vollständige Unicode-Text- und Layoutunterstützung unterstützen. DirectWritebietet eine neue DirectX-Komponente die folgenden Features und vieles mehr:
- Ein geräteunabhängiges Textlayoutsystem, das die Lesbarkeit von Text in Dokumenten und in der Benutzeroberfläche verbessert.
- Hochwertiges, untergeordnetes Pixel, ClearType- Textrendering, das GDI, Direct2D-oder anwendungsspezifische Renderingtechnologie verwenden kann.
- Hardwarebeschleunigten Text bei Verwendung mit Direct2D-.
- Unterstützung für mehrformatigen Text.
- Unterstützung für die erweiterten Typografiefeatures von OpenType Schriftarten.
- Unterstützung für das Layout und das Rendern von Text in allen unterstützten Sprachen.
- GDI-kompatibles Layout und Rendering.
Das DirectWrite- Schriftartsystem ermöglicht die Verwendung von Schriftarten an beliebiger Stelle, bei der Benutzer keinen separaten Installationsschritt ausführen müssen, um nur eine Schriftart zu verwenden, und eine verbesserte Strukturhierarchie der Schriftartgruppierung, um bei der manuellen oder programmgesteuerten Schrifterkennung zu helfen. Die APIs unterstützen das Messen, Zeichnen und Treffertests von Mehrformat-Text. DirectWrite behandelt Text in allen unterstützten Sprachen für globale und lokalisierte Anwendungen, die auf der wichtigsten Sprachinfrastruktur in Windows 7 basieren. DirectWrite bietet auch Glyphenrendering-APIs auf niedriger Ebene für Entwickler, die ihre eigene Layout- und Unicode-zu-Glyphenverarbeitung durchführen möchten. (Siehe DirectWrite-.)
Komponente für die Windows-Imageerstellung
In Windows Vista wurde mit der Windows-Imageerstellungskomponente ein erweiterbares Framework für die Arbeit mit Bildern und Bildmetadaten eingeführt. Zu den von der Windows-Imageerstellungskomponente unterstützten Bildformaten gehören JPEG-, PNG-und TIFF-, und die unterstützten Metadatenformate umfassen XMP- und EXIF-. Mit Windows 7 erweitert Die Windows-Imageerstellungskomponente ihre Standardskonformität, indem sie Unterstützung für progressive Bilddecodierung, erweiterte PNG--Features, GIF--Metadaten und Metadaten bietet, die APPn Segmente umfassen. (Siehe Neuerungen für WIC in Windows 7.)
Direct3D 11
Microsoft Direct3D 11 erweitert die Funktionalität der Direct3D 10-Pipeline und bietet Windows 7-Spiele und High-End-3D-Anwendungen mit effizientem, robustem, skalierbarem Zugriff auf die kommende Generation von GPUs und Multi-Core-CPUs. Zusätzlich zu den in Direct3D 10 gefundenen Funktionen führt Direct3D 11 mehrere neue Features ein.
Geometrie und hochgeordnete Oberflächen können jetzt tesselliert werden, um skalierbare, dynamische Inhalte in Patch- und Unterteilungsoberflächendarstellungen zu unterstützen.
Um die parallele Verarbeitungsleistung aus mehreren CPU-Kernen zu nutzen, erhöht Multithreading die Anzahl potenzieller Renderingaufrufe pro Frame, indem die Anwendung, Laufzeit und Treiberaufrufe über mehrere Kerne verteilt werden. Darüber hinaus wurde die Ressourcenerstellung und -verwaltung für die Verwendung mit Multithreads optimiert und ermöglicht eine effizientere dynamische Texturverwaltung für streaming.
Für Direct3D 11 wurden neue allgemeine Computeshader erstellt. Im Gegensatz zu vorhandenen Shadern sind dies Erweiterungen für die programmierbare Pipeline, die es Ihrer Anwendung ermöglichen, mehr Arbeit für die GPU zu erledigen, unabhängig von der CPU. DrawAutowurde in Direct3D 10 eingeführt, um mit einem Compute-Shader zu interagieren.
Die high-level-Schattierungssprache (HLSL-) wurde verbessert, z. B. eine eingeschränkte Form der dynamischen Verknüpfung in Shadern, um die Komplexität der Spezialisierung zu verbessern, und objektorientierte Programmierkonstrukte wie Klassen und Schnittstellen. (Siehe Neuigkeiten im DirectX SDKmärz 2009.)
Verbesserungen bei Direct3D 10
Direct3D 10 enthält eine neu gestaltete Grafikpipeline mit programmierbaren Shaderstufen und unveränderlichen Zustandsobjekten für die Initialisierung der Phasen mit fester Funktion. Die Zustandsobjekte vereinfachen die Pipeline und verbessern die Leistung, indem die Anzahl der erforderlichen Zustandsänderungen minimiert wird. Die Programmierbarkeit von Shaderstufen bietet jetzt High-Level-Schattierungssprachenerweiterungen, um unbegrenzte Shaderanweisungen, generalisierte Shaderressourcen und ganzzahlige und bitweise Berechnungen zu unterstützen.
Die Pipeline führt auch die Geometrie-Shaderphase ein, die vollständig von der CPU auf die GPU auslastet. In dieser neuen Phase können Sie Geometrie erstellen, die Daten in den Arbeitsspeicher streamen und die Geometrie ohne CPU-Interaktion rendern.
Mehrere weitere Verbesserungen wurden speziell für eine schnellere Leistung entwickelt. Prädiziertes Rendering führt Okklusions-Culling durch, um die Anzahl der gerenderten Geometrien zu verringern. Instancing-APIs können die Geometrie erheblich reduzieren, die durch Zeichnen mehrerer Instanzen ähnlicher Objekte auf die GPU übertragen werden muss. Texturarrays ermöglichen der GPU das Austauschen von Texturen ohne CPU-Eingriff.
Es wurden mehrere Ergänzungen an Direct3D 10 und Direct3D 11 vorgenommen, um die Bandbreite der Konfigurationen zu erweitern, die mit diesen APIs ausgerichtet werden können. Die Windows Advanced Rasterization Platform (WARP) implementiert schnelles, multikerniges skalierbares CPU-Rendering für Direct3D 10 und ermöglicht das Rendern von Grafiken mit vollem Funktionsumfang auf Systemen ohne Grafikhardware. Das Hinzufügen neuer "Featureebenen", die speziell Direct3D 10 Level 9-genannt werden, ermöglichen es den Direct3D 10- und Direct3D 11APIs, Microsoft Direct3D 9-Klassenhardware zu steuern und die Anzahl der Konfigurationen zu erweitern, die eine Direct3D 10- oder Direct3D 11-Anwendung auf nahezu jedes Computersystem auf dem Markt ausrichten kann. (Siehe Direct3D 10 Graphics.)
DirectX/GDI-Interoperabilität
In Windows Vista unterscheidet sich das Verhalten einer Anwendung, die sowohl DirectX als auch GDI zum Rendern auf einer gemeinsam genutzten Oberfläche verwendet, je nachdem, ob DWM ein- oder ausgeschaltet ist. Wenn DWM aktiviert ist, verhalten sich Anwendungen, die Sowohl DirectX als auch GDI verwenden, unter Windows Vista anders als unter Windows XP. Dies führte dazu, dass viele ISVs DWM deaktivieren, wenn sie ihre Anwendungen unter Windows Vista ausführen, um ein konsistentes Verhalten sicherzustellen. Mit den Verbesserungen von DirectX in Windows 7 kann eine Anwendung directX und GDI jetzt frei kombinieren, ohne DWM zu deaktivieren. Windows 7 bietet auch eine verbesserte Leistung für Szenarien, die eine Interoperabilität zwischen DirectX und GDI erfordern, indem die effizienteren Direct3D 10-APIs verwendet werden. (Siehe Übersicht über die Direct2D- und GDI-Interoperabilität.)