Freigeben über


Grafik-Rendering-Stufen

Eine Renderingebene definiert eine Ebene der Grafikhardwarefunktion und -leistung für ein Gerät, auf dem eine WPF-Anwendung ausgeführt wird.

Grafikhardware

Die Eigenschaften der Grafikhardware, die sich am stärksten auf die Rendering-Stufen auswirken, sind:

  • Video-RAM Die Menge des Videospeichers auf der Grafikhardware bestimmt die Größe und Anzahl der Puffer, die zum Kompositing von Grafiken verwendet werden können.

  • Pixelshader Ein Pixelshader ist eine Grafikverarbeitungsfunktion, die Effekte pro Pixel berechnet. Je nach Auflösung der angezeigten Grafiken kann es mehrere Millionen Pixel geben, die für jeden Anzeigeframe verarbeitet werden müssen.

  • Vertex-Shader Ein Vertex-Shader ist eine Grafikverarbeitungsfunktion, die mathematische Vorgänge für die Vertexdaten des Objekts ausführt.

  • Multitexture-Unterstützung Die Multitexture-Unterstützung bezieht sich auf die Möglichkeit, zwei oder mehr unterschiedliche Texturen während eines Vermischungsvorgangs auf ein 3D-Grafikobjekt anzuwenden. Der Grad der Multitexturunterstützung wird durch die Anzahl der Multitextureeinheiten auf der Grafikhardware bestimmt.

Definitionen der Rendering-Stufen

Die Features der Grafikhardware bestimmen die Renderingfunktion einer WPF-Anwendung. Das WPF-System definiert drei Renderingebenen:

  • Rendering Stufe 0 Keine Grafikhardwarebeschleunigung. Alle Grafikfeatures verwenden das Softwarerendering. Die DirectX-Versionsebene ist kleiner als Version 9.0.

  • Rendering Stufe 1 Einige Grafikfeatures verwenden Grafik-Hardwarebeschleunigung. Die DirectX-Versionsebene ist größer oder gleich Version 9.0.

  • Rendering-Stufe 2 Die meisten Grafikfeatures verwenden Grafikhardwarebeschleunigung. Die DirectX-Versionsebene ist größer oder gleich Version 9.0.

Mit der Eigenschaft RenderCapability.Tier können Sie die Rendering-Stufe zur Laufzeit der Anwendung abrufen. Mithilfe der Renderingebene können Sie ermitteln, ob das Gerät bestimmte hardwarebeschleunigte Grafikfeatures unterstützt. Ihre Anwendung kann dann zur Laufzeit unterschiedliche Codepfade verwenden, je nachdem, welche Renderingebene vom Gerät unterstützt wird.

Rendern der Ebene 0

Ein Renderebenenwert von 0 bedeutet, dass für die Anwendung auf dem Gerät keine Grafikhardwarebeschleunigung verfügbar ist. Auf dieser Ebene sollten Sie davon ausgehen, dass alle Grafiken von Software ohne Hardwarebeschleunigung gerendert werden. Die Funktionalität dieser Ebene entspricht einer DirectX-Version, die kleiner als 9.0 ist.

Renderingstufe 1 und Renderingstufe 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, ist jetzt als Renderingebene 0 definiert.

Ein Renderniveau-Wert von 1 oder 2 bedeutet, dass die meisten Grafikfunktionen von WPF Hardwarebeschleunigung verwenden, wenn die notwendigen Systemressourcen verfügbar sind und nicht erschöpft wurden. Dies entspricht einer DirectX-Version, die größer oder gleich 9.0 ist.

In der folgenden Tabelle sind die Unterschiede in den Grafikhardwareanforderungen für die Renderingebene 1 und die Renderingebene 2 aufgeführt:

Merkmal Ebene 1 Ebene 2
DirectX-Version Muss größer oder gleich 9,0 sein. Muss größer oder gleich 9,0 sein.
Video-RAM Muss größer oder gleich 60 MB sein. Muss größer oder gleich 120 MB sein.
Pixel-Shader Die Versionsebene muss größer oder gleich 2.0 sein. Die Versionsebene muss größer oder gleich 2.0 sein.
Vertex-Shader Keine Anforderung. Die Versionsebene muss größer oder gleich 2.0 sein.
Multitexture-Einheiten Keine Anforderung. Die Anzahl der Einheiten muss größer oder gleich 4 sein.

Die folgenden Features und Funktionen werden für das Rendering der Schicht 1 und Schicht 2 hardwarebeschleunigt.

Merkmal Hinweise
2D-Rendering Das meiste 2D-Rendering wird unterstützt.
3D-Rasterung Die meisten 3D-Rasterungen werden unterstützt.
3D-anisotrope Filterung WPF versucht, beim Rendern von 3D-Inhalten anisotropische Filterung zu verwenden. Anisotrope Filterung bezieht sich auf die Verbesserung der Bildqualität von Texturen auf Oberflächen, die weit entfernt und steil in Bezug auf die Kamera gewinkelt sind.
3D-MIP-Zuordnung WPF versucht, die MIP-Zuordnung beim Rendern von 3D-Inhalten zu verwenden. MIP-Mapping verbessert die Qualität des Texturrenderings, wenn eine Textur ein kleineres Sichtfeld in einem Viewport3D einnimmt.
Radiale Farbverläufe Obwohl unterstützt, vermeiden Sie die Verwendung von RadialGradientBrush bei großen Objekten.
3D-Beleuchtungsberechnungen WPF führt eine Beleuchtung pro Scheitelpunkt aus, was bedeutet, dass bei jedem Scheitelpunkt für jedes Material, das auf ein Gitter angewendet wird, eine Lichtintensität berechnet werden muss.
Text-Rendering Das Rendern von Subpixelschriftarten verwendet verfügbare Pixelshader auf der Grafikhardware.

Die folgenden Features und Funktionen werden nur für das Rendern der Ebene 2 hardwarebeschleunigt:

Merkmal Hinweise
3D-Antialiasing 3D-Antialiasing wird nur unter Betriebssystemen unterstützt, die das Windows Display Driver Model (WDDM) unterstützen, z. B. Windows Vista und Windows 7.

Die folgenden Features und Funktionen werden nicht hardwarebeschleunigt:

Merkmal Hinweise
Gedruckter Inhalt Alle gedruckten Inhalte werden mithilfe der WPF-Softwarepipeline gerendert.
Rasterisierte Inhalte, die RenderTargetBitmap verwenden Alle Inhalte, die mithilfe der Render Methode von RenderTargetBitmap ausgeführt werden.
Kachelinhalt, der TileBrush verwendet Alle nebeneinander angeordneten Inhalte, in denen die TileMode-Eigenschaft des TileBrush-Objekts auf Tile festgelegt ist.
Oberflächen, die die maximale Texturgröße der Grafikhardware überschreiten Bei den meisten Grafikhardware sind große Oberflächen 2048 x 2048 oder 4096 x 4096 Pixel groß.
Jeder Vorgang, dessen Video-RAM-Anforderung den Arbeitsspeicher der Grafikhardware überschreitet Sie können die Verwendung von Video-RAM-Anwendungen mithilfe des Perforierungstools überwachen, das in der WPF Performance Suite im Windows SDK enthalten ist.
Mehrschichtfenster Ebenenfenster ermöglichen WPF-Anwendungen das Rendern von Inhalten auf dem Bildschirm in einem nicht rechteckigen Fenster. Auf Betriebssystemen, die das Windows Display Driver Model (WDDM) unterstützen, z. B. Windows Vista und Windows 7, werden mehrschichtige Fenster hardwarebeschleunigt. Auf anderen Systemen, z. B. Windows XP, werden layerierte Fenster durch Software ohne Hardwarebeschleunigung gerendert.

Sie können mehrschichtige Fenster in WPF aktivieren, indem Sie die folgenden Window Eigenschaften festlegen:

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

Weitere Ressourcen

Die folgenden Ressourcen können Ihnen helfen, die Leistungsmerkmale Ihrer WPF-Anwendung zu analysieren.

Registrierungseinstellungen für das Rendern von Grafiken

WPF bietet vier Registrierungseinstellungen zum Steuern des WPF-Renderings:

Konfiguration BESCHREIBUNG
Hardwarebeschleunigungsoption deaktivieren Gibt an, ob die Hardwarebeschleunigung aktiviert werden soll.
Maximaler Multisamplewert Gibt den Grad des Multisamplings zum Antialiasieren von 3D-Inhalten an.
Erforderliche Einstellung des Videotreiber-Datums Gibt an, ob das System die Hardwarebeschleunigung für Treiber deaktiviert, die vor November 2004 veröffentlicht wurden.
Referenzrasterizeroption verwenden Gibt an, ob WPF den Referenzrasterizer verwenden soll.

Auf diese Einstellungen kann von jedem externen Konfigurationstool zugegriffen werden, das in der Lage ist, auf die WPF-Registrierungseinstellungen zu verweisen. 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-Leistungsprofilierungswerkzeuge

WPF bietet eine Reihe von Leistungsprofiltools, mit denen Sie das Laufzeitverhalten Ihrer Anwendung analysieren und die Arten von Leistungsoptimierungen bestimmen können, die Sie anwenden können. In der folgenden Tabelle sind die Tools zur Leistungsprofilerstellung aufgeführt, die im Windows SDK-Tool WPF Performance Suite enthalten sind:

Werkzeug BESCHREIBUNG
Perforiergerät Wird zum Analysieren des Renderingverhaltens verwendet.
Visueller Profiler Verwenden Sie dies, um die Verwendung von WPF-Diensten, wie Layout- und Ereignisbehandlung, von Elementen im visuellen Baum zu profilieren.

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

DirectX-Diagnosetool

Das DirectX-Diagnosetool, Dxdiag.exe, wurde entwickelt, um Ihnen bei der Behandlung von DirectX-bezogenen Problemen zu helfen. Der Standardinstallationsordner für das DirectX-Diagnosetool lautet:

~\Windows\System32

Wenn Sie das DirectX-Diagnosetool ausführen, 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 zu Ihrem Computer und gibt die Version von DirectX an, die auf Ihrem Computer installiert ist.

Screenshot: DirectX-Diagnosetool
Hauptfenster des DirectX-Diagnosetools

Siehe auch