Renderingebenen für Grafiken

Eine Renderingebene definiert eine Ebene der Grafikleistung eines Geräts, auf dem eine WPF-Anwendung ausgeführt wird.

Grafikhardware

Die Funktionen der Grafikhardware, die sich am stärksten auf die Renderingebenen auswirken, sind:

  • Video-RAM: Die Videospeichermenge der Grafikhardware bestimmt die Größe und Anzahl der Puffer, die für die Zusammensetzung von Grafiken verwendet werden kann.

  • Pixel-Shader: Ein Pixel-Shader ist eine Grafikprozessorfunktion, die Auswirkungen auf eine Pro-Pixel-Basis berechnet. Abhängig von der Auflösung der angezeigten Grafiken kann es mehrere Millionen Pixel geben, die für jeden Frame des Displays verarbeitet werden müssen.

  • Vertex-Shader: Ein Vertex-Shader ist eine Grafikprozessorfunktion, die mathematische Operationen für die Vertexdaten des Objekts ausführt.

  • Multitexturunterstützung: Bei Multitexturunterstützung handelt es sich um die Möglichkeit, zwei oder mehr unterschiedliche Texturen während eines Mischvorgangs für ein 3D-Grafikobjekt anzuwenden. Der Grad der Multitexturunterstützung wird durch die Anzahl der Multitextureinheiten in der Grafikhardware bestimmt.

Definitionen von Renderingebenen

Die Funktionen der Grafikhardware bestimmen die Renderingfunktionalität einer WPF-Anwendung. Das WPF-System definiert drei Rendering-Ebenen:

  • Renderingebene 0: Keine Beschleunigung der Grafikhardware. Alle Grafikfunktionen verwenden Softwarebeschleunigung. Die DirectX-Versionsebene ist kleiner als die Version 9.0.

  • Renderingebene 1: Einige Grafikfunktionen verwenden die Beschleunigung der Grafikhardware. Die DirectX-Versionsebene ist größer als oder gleich der Version 9.0.

  • Renderingebene 2: Die meisten Grafikfunktionen verwenden die Beschleunigung der Grafikhardware. Die DirectX-Versionsebene ist größer als oder gleich der Version 9.0.

Mit der Eigenschaft RenderCapability.Tier können Sie die Renderingebene der Anwendungslaufzeit abrufen. Sie verwenden die Renderingebene für die Bestimmung, ob das Gerät bestimmte hardwarebeschleunigte Grafikfunktionen unterstützt. Ihre Anwendung kann dann unterschiedliche Codepfade zur Laufzeit verwenden, je nach der vom Gerät unterstützten Renderingebene.

Renderingebene 0

Der Wert 0 der Renderingebene bedeutet, dass keine Beschleunigung der Grafikhardware vorhanden ist, die für die Anwendung auf dem Gerät verfügbar ist. Auf dieser Ebene sollten Sie davon ausgehen, dass alle Grafiken von Software ohne Hardwarebeschleunigung gerendert werden. Die Funktion dieser Ebene entspricht der DirectX-Version, die kleiner als 9.0 ist.

Renderingebene 1 und Renderingebene 2

Hinweis

Ab .NET Framework 4 wurde die Renderingebene 1 neu definiert, um nur Grafikhardware einzuschließen, die DirectX 9.0 oder höher unterstützt. Grafikhardware, die DirectX 7 oder 8 unterstützt, wird jetzt als Renderingebene 0 definiert.

Renderingebene 1 oder 2 bedeutet, dass die meisten der Grafikfunktionen von WPF Hardwarebeschleunigung verwenden, wenn die erforderlichen Systemressourcen verfügbar sind und nicht ausgeschöpft wurden. Dies entspricht einer DirectX-Version, die größer als oder gleich 9.0 ist.

Die folgende Tabelle zeigt die Unterschiede in den Anforderungen der Grafikhardware für die Renderingebene 1 und 2:

Feature Ebene 1 Ebene 2
DirectX-Version Muss größer als oder gleich 9.0 sein. Muss größer als oder gleich 9.0 sein.
Video-RAM Muss größer als oder gleich 60 MB sein. Muss größer als oder gleich 120 MB sein.
Pixel-Shader Die Versionsebene muss größer als oder gleich 2.0 sein. Die Versionsebene muss größer als oder gleich 2.0 sein.
Vertex-Shader Keine Anforderung. Die Versionsebene muss größer als oder gleich 2.0 sein.
Multitextur-Einheiten Keine Anforderung. Die Anzahl der Einheiten muss größer als oder gleich 4 sein.

Die folgenden Features und Funktionen sind für die Renderingebene 1 und 2 hardwarebeschleunigt:

Funktion Notizen
2D-Rendering Das meiste 2D-Rendering wird unterstützt.
3D-Rasterung Die meisten 3D-Rasterungen werden unterstützt.
Anisotrope 3D-Filterung WPF versucht beim Rendering von 3D-Inhalten anisotrope Filterung zu verwenden. Anisotrope Filterung bezieht sich auf die verbesserte Bildqualität von Texturen auf Oberflächen, die in Bezug auf die Kamera weit entfernt und stark angewinkelt sind.
3D-MIP-Zuordnung WPF versucht beim Rendering von 3D-Inhalten MIP-Zuordnung zu verwenden. Die MIP-Zuordnung verbessert die Qualität des Rendering von Texturen, wenn eine Textur ein kleineres Sichtfeld in Viewport3D belegt.
Radiale Farbverläufe Vermeiden Sie die Verwendung von RadialGradientBrush für große Objekte, auch wenn es unterstützt wird.
3D-Beleuchtungsberechnungen WPF führt die Pro-Vertex-Beleuchtung aus, was bedeutet, dass eine Lichtstärke bei jedem Vertex für jedes auf ein Mesh angewendetes Material berechnet werden muss.
Rendering von Text Das Rendering der Subpixel-Schriftart verwendet verfügbare Pixel-Shader in der Grafikhardware.

Die folgenden Features und Funktionen sind nur für die Renderingebene 2 hardwarebeschleunigt:

Funktion Notizen
3D-Antialiasing 3D-Antialiasing wird nur auf Betriebssystemen unterstützt, die Windows Display Driver Model (WDDM) unterstützen, wie z. B. Windows Vista und Windows 7.

Die folgenden Features und Funktionen sind nicht hardwarebeschleunigt:

Funktion Notizen
Gedruckter Inhalt Jeder gedruckte Inhalt wird mithilfe der WPF-Softwarepipeline gerendert.
Gerasterte Inhalte, die RenderTargetBitmap verwenden Alle Inhalte, die mithilfe der Render-Methode von RenderTargetBitmap gerendert werden
Gekachelte Inhalte, die TileBrush verwenden Gekachelte Inhalte, in denen die TileMode-Eigenschaft von TileBrush auf Tile festgelegt ist
Flächen, die die maximale Texturgröße der Grafikhardware überschreiten Bei der meisten Grafikhardware sind große Flächen 2048 x 2048 oder 4096 x 4096 Pixel groß.
Jeder Vorgang, dessen Video-RAM-Anforderung den Arbeitsspeicher der Grafikhardware überschreitet Sie können den Video-RAM-Verbrauch der Anwendung mithilfe des Perforatortools überwachen, das Bestandteil der WPF Performance Suite im Windows SDK ist.
Überlappende Fenster Überlappende Fenster ermöglichen WPF-Anwendungen das Rendering von Inhalten auf dem Bildschirm in einem nicht rechteckigen Fenster. Auf Betriebssystemen, die Windows Display Driver Model (WDDM) unterstützen, wie z. B. Windows Vista und Windows  7, sind überlappende Fenster hardwarebeschleunigt. Auf anderen Systemen, wie z. B. Windows XP, werden überlappende Fenster von Software ohne Hardwarebeschleunigung gerendert.

Sie können überlappende Fenster in WPF durch Festlegen der folgenden Eigenschaften von Window aktivieren:

- WindowStyle = None
- AllowsTransparency = true
- Background = Transparent

Weitere Ressourcen

Die folgenden Ressourcen können Ihnen bei der Analyse der Leistungsmerkmale Ihrer WPF-Anwendung helfen.

Registrierungseinstellungen für das Rendern von Grafiken

WPF bietet vier Registrierungseinstellungen zum Steuern des WPF-Renderings:

Einstellung Beschreibung
Option zum Deaktivieren der Hardwarebeschleunigung Gibt an, ob die Hardwarebeschleunigung aktiviert werden soll
Maximaler Wert für Multisampling Gibt den Multisamplinggrad für das Antialiasing von 3D-Inhalten an
Einstellung für das erforderliche Videotreiberdatum Gibt an, ob das System die Hardwarebeschleunigung für Treiber deaktiviert, die vor November 2004 veröffentlicht wurden
Option zum Verwenden des Referenzrasters Gibt an, ob WPF das Referenzraster verwenden soll

Diese Einstellungen stehen für alle externen Konfigurationshilfsprogramme zur Verfügung, die auf die WPF-Registrierungseinstellungen verweisen können. Diese Einstellungen können auch erstellt oder geändert werden, indem Sie direkt über den Windows-Registrierungs-Editor auf die Werte zugreifen. Weitere Informationen finden Sie unter Registrierungseinstellungen für das Rendern von Grafiken.

WPF-Leistungsprofilerstellungstools

WPF stellt eine Suite von Leistungsprofilerstellungstools bereit, mit deren Hilfe Sie das Laufzeitverhalten der Anwendung analysieren und die Typen der anwendbaren Leistungsoptimierungen bestimmen können. Die folgende Tabelle enthält die Leistungsprofilerstellungstools, die im Windows SDK-Tool der WPF Performance Suite enthalten sind:

Tool Beschreibung
Perforator Wird für die Analyse von Renderingverhalten verwendet.
Visual Profiler Wird zum Erstellen eines Profils der Verwendung von WPF-Diensten durch Elemente in der visuellen Struktur verwendet, z. B. Layout- und Ereignisbehandlung.

WPF Performance Suite bietet eine umfassende grafische Ansicht von Leistungsdaten. Weitere Informationen zu WPF-Leistungstools finden Sie unter WPF Performance Suite.

DirectX-Diagnosetool

Das DirectX-Diagnosetool „Dxdiag.exe“ dient zum Beheben von DirectX-bezogenen Problemen. Der Standardinstallationsordner für das DirectX-Diagnosetool ist:

~\Windows\System32

Beim Ausführen des DirectX-Diagnosetools enthält das Hauptfenster eine Reihe von Registerkarten, mit denen Sie DirectX-bezogene Informationen anzeigen und diagnostizieren können. Die Registerkarte System enthält z. B. Systeminformationen über Ihren Computer und gibt die Version von DirectX an, die auf Ihrem Computer installiert ist.

Screenshot: DirectX Diagnostic Tool
Hauptfenster des DirectX-Diagnosetools

Siehe auch