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.
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.
Hauptfenster des DirectX-Diagnosetools
Siehe auch
.NET Desktop feedback