Renderingebenen für Grafiken
Eine Renderingebene definiert den Umfang der Funktionen und Leistung der Grafikhardware für ein Gerät, auf dem eine WPF-Anwendung ausgeführt wird.
Dieses Thema enthält folgende Abschnitte.
- Grafikhardware
- Definitionen von Renderingebenen
- Weitere Ressourcen
- Verwandte Abschnitte
Grafikhardware
Folgende Features der Grafikhardware wirken sich besonders stark auf die Renderingebenen aus:
Video-RAM: Der Umfang des Video-Arbeitsspeichers der Grafikhardware bestimmt die Größe und Anzahl der Puffer, die für die Zusammensetzung von Grafiken verwendet werden können.
Pixelshader: Ein Pixelshader ist eine Grafikverarbeitungsfunktion, die Effekte auf der Basis einzelner Pixel berechnet. Je nach Auflösung der angezeigten Grafiken müssen möglicherweise für jeden angezeigten Frame mehrere Millionen Pixel verarbeitet werden.
Vertexshader: Ein Vertexshader ist eine Grafikverarbeitungsfunktion, die mathematische Operationen für die Vertexdaten des Objekts ausführt.
Unterstützung von Mehrfachtexturen: Hierbei handelt es sich um die Fähigkeit, während eines Blendingvorgangs mehrere unterschiedliche Texturen auf ein 3D-Grafikobjekt anzuwenden. Der Grad der Unterstützung von Mehrfachtexturen hängt von der Anzahl der Mehrfachtextureinheiten in der Grafikhardware ab.
Definitionen von Renderingebenen
Die Features der Grafikhardware bestimmen die Renderingfähigkeit einer WPF-Anwendung. Das WPF-System definiert drei Renderingebenen:
Renderingebene 0 (null) Keine Grafikhardwarebeschleunigung. Alle Grafikfeatures verwenden die Softwarebeschleunigung. Die DirectX-Versionsebene liegt in einer niedrigeren Version als 9.0 vor.
Renderingebene 1 Einige Grafikfeatures verwenden die Grafikhardwarebeschleunigung. Die DirectX-Versionsebene beträgt mindestens Version 9.0.
Renderingebene 2 Die meisten Grafikfeatures verwenden die Grafikhardwarebeschleunigung. Die DirectX-Versionsebene beträgt mindestens Version 9.0.
Die RenderCapability.Tier-Eigenschaft ermöglicht es Ihnen, die Renderingebene zur Anwendungslaufzeit abzurufen. Anhand der Renderingebene bestimmen Sie, ob das Gerät bestimmte hardwarebeschleunigte Grafikfunktionen unterstützt. Je nach der vom Gerät unterstützten Renderingebene kann die Anwendung zur Laufzeit dann verschiedenen Codepfaden folgen.
Renderingebene 0 (null)
Der Wert 0 (null) für die Renderingebene bedeutet, dass auf diesem Gerät für die Anwendung keine Grafikhardwarebeschleunigung verfügbar ist. Auf dieser Ebene sollten Sie davon ausgehen, dass alle Grafiken von Software ohne Hardwarebeschleunigung gerendert werden. Die Funktionen dieser Ebene entsprechen einer DirectX-Version, die niedriger 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, ist nun als Renderingebene 0 definiert. |
Ein Renderingebenenwert von 1 oder 2 gibt an, dass die meisten Grafikfunktionen von WPF die Hardwarebeschleunigung verwenden, wenn die erforderlichen Systemressourcen verfügbar und nicht überlastet sind. Dies entspricht einer DirectX-Version von 9.0 oder höher.
In der folgenden Tabelle sind die Unterschiede bezüglich der Grafikhardwareanforderungen für Renderingebene 1 und Renderingebene 2 aufgeführt:
Feature |
Ebene 1 |
Ebene 2 |
---|---|---|
DirectX-Version |
Muss mindestens 9.0 sein. |
Muss mindestens 9.0 sein. |
Video-RAM |
Muss größer oder gleich 60 MB sein. |
Muss mindestens 120 MB betragen. |
Pixel-Shader |
Die Versionsebene muss mindestens 2.0 sein. |
Die Versionsebene muss mindestens 2.0 sein. |
Vertex-Shader |
Keine Anforderung. |
Die Versionsebene muss mindestens 2.0 sein. |
Mehrfachtextureinheiten |
Keine Anforderung. |
Die Anzahl der Einheiten muss mindestens 4 betragen. |
Die folgenden Funktionen sind für Renderingebene 1 und Renderingebene 2 hardwarebeschleunigt:
Feature |
Hinweise |
---|---|
2D-Rendering |
Die meisten 2D-Renderingfunktionen werden unterstützt. |
3D-Rasterung |
Die meisten 3D-Rasterungsfunktionen werden unterstützt. |
Anisotropische 3D-Filterung |
WPF versucht, 3D-Inhalt mithilfe der anisotropischen Filterung zu rendern. Die anisotropische Filterung dient der verbesserten Bildqualität von Texturen auf Oberflächen, die weit von der Kamera entfernt sind und in einem steilen Winkel zur Kamera stehen. |
MIP-Zuordnung im 3D-Bereich |
WPF versucht, 3D-Inhalt mithilfe der MIP-Zuordnung zu rendern. Die MIP-Zuordnung verbessert die Qualität des Rendering von Texturen, wenn eine Textur in Viewport3D ein kleineres Sichtfeld belegt. |
Radiale Farbverläufe |
Vermeiden Sie die Verwendung von RadialGradientBrush für große Objekte, obwohl dies unterstützt wird. |
3D-Beleuchtungsberechnungen |
WPF führt eine vertexspezifische Beleuchtung durch, d. h. eine Lichtintensität muss bei jedem Vertex für jedes Material, das auf ein Gitter angewendet wird, berechnet werden. |
Rendern von Text |
Beim Subpixel-Rendering von Schriftarten werden verfügbare Pixel-Shader der Grafikhardware verwendet. |
Die folgenden Funktionen sind nur für Renderingebene 2 hardwarebeschleunigt:
Feature |
Hinweise |
---|---|
3D-Antialiasing |
3D-Antialiasing wird nur auf Betriebssystemen unterstützt, die das Windows-Anzeigetreibermodell (Windows Display Driver Model, WDDM) unterstützen, z. B. Windows Vista und Windows 7. |
Die folgenden Funktionen sind nicht hardwarebeschleunigt:
Feature |
Hinweise |
---|---|
Ausgegebene Inhalte |
Alle ausgegebenen Inhalte werden 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, bei denen die TileMode-Eigenschaft von TileBrush auf Tile festgelegt ist. |
Oberflächen, die die maximale Texturgröße der Grafikhardware überschreiten |
Gängige Grafikhardware unterstützt meist Oberflächen mit einer Größe von 2048x2048 oder 4096x4096 Pixeln. |
Alle Vorgänge, deren Anforderungen an den Video-RAM den Speicher der Grafikhardware übersteigen |
Sie können mithilfe des in der WPF Performance Suite im Windows SDK enthaltenen Perforator-Tools anzeigen, wie viel Grafikspeicher eine Anwendung verwendet. |
Überlappende Fenster |
Mithilfe von überlappenden Fenstern können WPF-Anwendungen Inhalte auf dem Bildschirm in einem nicht rechteckigen Fenster rendern. Bei Betriebssystemen, die das Windows-Anzeigetreibermodell (WDDM) unterstützen (z. B. Windows Vista und Windows 7), sind überlappende Fenster hardwarebeschleunigt. Unter anderen Betriebssystemen, z. B. Windows XP, werden überlappende Fenster durch Software ohne Hardwarebeschleunigung gerendert. Sie können überlappende Fenster in WPF aktivieren, indem Sie die folgenden Window-Eigenschaften festlegen:
|
Weitere Ressourcen
Die folgenden Ressourcen können Ihnen helfen, die Leistungsmerkmale der WPF-Anwendung zu analysieren.
Registrierungseinstellungen für das Rendern von Grafiken
WPF stellt vier Registrierungseinstellungen zum Steuern des WPF-Rendering bereit:
Einstellung |
Beschreibung |
---|---|
Option zum Deaktivieren der Hardwarebeschleunigung |
Gibt an, ob die Hardwarebeschleunigung aktiviert werden soll. |
Maximaler Wert für Multisampling |
Gibt den Grad des Multisampling für das Antialiasing von 3-D-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 der Referenz-Rasterisierungsfunktion |
Gibt an, ob WPF die Referenz-Rasterisierungsfunktion verwenden soll. |
Auf diese Einstellungen kann mit jedem externen Konfigurationsdienstprogramm zugegriffen werden, das auf die WPF-Registrierungseinstellungen verweisen kann. Diese Einstellungen lassen sich auch erstellen oder ändern, indem mithilfe des Windows-Registrierungs-Editors direkt auf die Werte zugegriffen wird. Weitere Informationen finden Sie unter Registrierungseinstellungen für das Rendern von Grafiken.
WPF-Leistungsprofilerstellungstools
WPF stellt eine Suite von Tools zum Erstellen von Leistungsprofilen bereit, mit denen Sie das Laufzeitverhalten einer Anwendung analysieren und die Typen der anwendbaren Leistungsoptimierungen bestimmen können. In der folgenden Tabelle werden die Leistungsprofilerstellungstools aufgeführt, die im Windows SDK-Tool WPF Performance Suite enthalten sind:
Tool |
Beschreibung |
---|---|
Perforator |
Zum Analysieren des Renderingverhaltens. |
Visual Profiler |
Zur Profilerstellung der Verwendung von WPF-Diensten, z. B. Layout und Ereignisbehandlung, durch Elemente in der visuellen Struktur. |
Die WPF Performance Suite bietet eine leistungsfähige grafische Ansicht der Leistungsdaten. Weitere Informationen zu Tools zum Erstellen von WPF-Leistungsprofilen finden Sie unter WPF Performance Suite.
DirectX-Diagnosetool
Das DirectX-Diagnosetool Dxdiag.exe dient zum Beheben von Problemen im Zusammenhang mit DirectX. 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 Informationen im Zusammenhang mit DirectX anzeigen und einer Diagnose unterziehen können. Die Registerkarte System z. B. bietet Systeminformationen über den Computer und gibt die auf dem Computer installierte DirectX-Version an.
Hauptfenster des DirectX-Diagnosetools
Siehe auch
Referenz
Konzepte
Optimieren der WPF-Anwendungsleistung
Registrierungseinstellungen für das Rendern von Grafiken
Tipps und Tricks zu Animationen
Änderungsprotokoll
Datum |
Versionsgeschichte |
Grund |
---|---|---|
Oktober 2010 |
Die Informationen für .NET Framework 4 und Renderingebene 2 wurden aktualisiert. |
Kundenfeedback. |
September 2010 |
Informationen zu WPF-Leistungsprofilerstellungstools wurden hinzugefügt. |
Informationsergänzung. |