Renderingebenen für Grafiken
Aktualisiert: November 2007
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 Videospeichers der Grafikhardware bestimmt die Größe und Anzahl der Puffer, die für die Zusammensetzung von Grafiken verwendet werden können.
Pixel-Shader: Ein Pixel-Shader 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.
Vertex-Shader: Ein Vertex-Shader 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.
Mithilfe der Features Pixel-Shader, Vertex-Shader und Mehrfachtextur werden bestimmte DirectX-Versionsebenen definiert, mit denen wiederum die unterschiedlichen Renderingebenen in WPF definiert werden.
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. Die DirectX-Versionsebene liegt in einer niedrigeren Version als 7.0 vor.
Renderingebene 1: Eingeschränkte Grafikhardwarebeschleunigung. Die DirectX-Versionsebene liegt in mindestens Version 7.0 und einer niedrigeren Version als 9.0 vor.
Renderingebene 2: Die meisten Grafikfeatures verwenden die Grafikhardwarebeschleunigung. Die DirectX-Versionsebene liegt in mindestens Version 9.0 vor.
Mit der Tier-Eigenschaft können Sie die Renderingebene zur Laufzeit der Anwendung abrufen, sodass Entwickler bestimmen können, ob das Gerät bestimmte hardwarebeschleunigte Grafikfeatures 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 Entwickler davon ausgehen, dass alle Grafiken von Software ohne Hardwarebeschleunigung gerendert werden. Die Funktionen dieser Ebene entsprechen einer DirectX-Version, die niedriger als 7.0 ist.
Renderingebene 1
Der Wert 1 für die Renderingebene bedeutet, dass die Videokarte über eine eingeschränkte Grafikhardwarebeschleunigung verfügt. Dies entspricht einer DirectX-Version von mindestens 7.0 und niedriger als 9.0.
Die folgenden Features und Funktionen sind für die Renderingebene 1 hardwarebeschleunigt:
Feature |
Hinweise |
---|---|
2D-Rendering |
Die meisten 2D-Renderingfunktionen werden unterstützt. |
3D-Rasterung |
Die meisten 3D-Rasterungsfunktionen werden unterstützt. Allerdings verwendet WPF Software, um Lichtintensitäten des Vertex zu berechnen, die anschließend als Vertexfarbe an die Hardware übergeben werden. Daher ist die Beleuchtung auf Ebene 1 viel langsamer. |
Anisotropische Filterung im 3D-Bereich |
Wenn die Renderingebene mindestens 1 beträgt, versucht WPF 3D-Inhalte mithilfe der anisotropischen Filterung zu rendern. Die anisotropische Filterung dient der verbesserten Bildqualität von Texturen auf Oberflächen, die bezogen auf die Kamera weit entfernt sind und in einem steilen Winkel dazu stehen. |
Mip-Zuordnung im 3D-Bereich |
Wenn die Renderingebene mindestens 1 beträgt, versucht WPF 3D-Inhalte 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. |
Die folgenden Features und Funktionen sind für die Renderingebene 1 nicht hardwarebeschleunigt:
Feature |
Hinweise |
---|---|
Bitmapeffekte |
Wird ein Bitmapeffekt auf ein visuelles Objekt angewendet, wird dieses Objekt immer ohne Hardwarebeschleunigung gerendert. |
Ausgegebene Inhalte |
Alle ausgegebenen Inhalte werden mithilfe der WPF-Softwarepipeline gerendert. |
Gerasterte Inhalte, die ein RenderTargetBitmap-Objekt 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 |
Die meisten Videokarten unterstützen keine Oberflächen, die größer als 2048x2048 oder 4096x4096 Pixel sind. |
Alle Vorgänge, deren Anforderungen an den Video-RAM den Speicher der Grafikhardware übersteigen |
Sie können mithilfe des im Windows SDK enthaltenen Tools für das Erstellen von WPF-Leistungsprofilen-Tools anzeigen, wie viel Video-RAM eine Anwendung verwendet. |
Überlappende Fenster |
Mithilfe von überlappenden Fenstern können WPF-Anwendungen Inhalte auf dem Bildschirm in einem nicht rechteckigen Fenster rendern. Unter Windows Vista werden ü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:
|
Radiale Farbverläufe |
Jede Verwendung von RadialGradientBrush. |
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. In Ebene 1 werden die Berechnungen von Software ausgeführt. In Ebene 2 werden die Berechnungen in Hardware ausgeführt. |
Rendern von Text |
Beim Subpixel-Rendering von Schriftarten werden verfügbare Pixel-Shader der Grafikhardware verwendet. |
3D-Antialiasing |
Jede Verwendung von 3D-Antialiasing. |
Die folgenden Features der Grafikhardware definieren Renderingebene 1:
Feature |
Hinweise |
---|---|
DirectX-Version |
Muss mindestens 7.0 und niedriger als 9.0 sein. |
Video-RAM |
Muss mindestens 30 MB betragen. |
Mehrfachtextureinheiten |
Die Anzahl der Einheiten muss mindestens 2 betragen. |
In der folgenden Tabelle sind gängige Grafikkarten, die Renderingebene 1 unterstützen, aufgelistet:
Manufacturer |
Modell |
---|---|
ATI |
Radeon-Modelle: 256, 7000, 7500, 8500, 9000, 9100, 9200 und 9250 |
Intel |
Intel Extreme Graphics-Modelle: 845G, 845GE, 845GL und 845GV Intel Extreme Graphics II-Modelle: 852GME, 855GM, 855GME, 865G und 865GV |
NVidia |
GeForce 256 GeForce2-Modelle: GTS, MX, MX100, MX200, MX400, Pro, Ti und Ultra GeForce3-Modelle: Ti200 und Ti500 GeForce4-Modelle: MX420, MX440, MX460, MX4000, Ti4200, Ti4400, Ti4600 und Ti4800 |
Renderingebene 2
Der Wert 2 für die Renderingebene bedeutet, dass die meisten Grafikfeatures von WPF Hardwarebeschleunigung verwenden sollten, sofern die erforderlichen Systemressourcen nicht überlastet sind. Dies entspricht der DirectX-Version 9.0 oder höher.
Die folgenden Features und Funktionen sind für die Renderingebene 2 hardwarebeschleunigt:
Feature |
Hinweise |
---|---|
Features der Ebene 1 |
Enthält alle Features von Ebene 1. |
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. In Ebene 1 werden die Berechnungen von Software ausgeführt. In Ebene 2 werden die Berechnungen in Hardware ausgeführt. |
Rendern von Text |
Beim Subpixel-Rendering von Schriftarten werden verfügbare Pixel-Shader der Grafikhardware verwendet. |
3D-Antialiasing |
3D-Antialiasing wird nur unter Windows Vista unterstützt. |
Die folgenden Features und Funktionen sind für die Renderingebene 2 nicht hardwarebeschleunigt:
Feature |
Hinweise |
---|---|
Bitmapeffekte |
Wird ein Bitmapeffekt auf ein visuelles Objekt angewendet, wird dieses Objekt immer ohne Hardwarebeschleunigung gerendert. |
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 im Windows SDK enthaltenen Tools für das Erstellen von WPF-Leistungsprofilen-Tools anzeigen, wie viel Video-RAM eine Anwendung verwendet. |
Überlappende Fenster |
Mithilfe von überlappenden Fenstern können WPF-Anwendungen Inhalte auf dem Bildschirm in einem nicht rechteckigen Fenster rendern. Unter Windows Vista werden ü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:
|
Die folgenden Features der Grafikhardware definieren Renderingebene 2:
Feature |
Hinweise |
---|---|
DirectX-Version |
Muss mindestens 9.0 sein. |
Video-RAM |
Muss mindestens 120 MB betragen. |
Pixel-Shader |
Die Versionsebene muss mindestens 2.0 sein. |
Vertex-Shader |
Die Versionsebene muss mindestens 2.0 sein. |
Mehrfachtextureinheiten |
Die Anzahl der Einheiten muss mindestens 4 betragen. |
In der folgenden Tabelle sind gängige Grafikkarten, die Renderingebene 2 unterstützen, aufgelistet:
Manufacturer |
Modell |
---|---|
ATI |
Radeon-Modelle: 9550, 9600, 9800 und die X-Reihe |
Intel |
Intel GMA900-Modelle: 915G Intel GMA950-Modelle: 945G |
NVidia |
Geforce FX-Reihe, 6xxx-Reihe und 7xxx-Reihe |
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 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 der Referenz-Rasterisierungsfunktion |
Gibt an, ob WPF die Referenz-Rasterisierungsfunktion verwenden soll. |
Auf diese Einstellungen kann jedes externe Konfigurationsdienstprogramm zugreifen, 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 fünf Leistungsprofilerstellungstools aufgelistet, die im Windows SDK-Tool WPFPerf enthalten sind:
Tool |
Beschreibung |
---|---|
Ereignisablaufverfolgung |
Zum Analysieren von Ereignissen und Generieren von Ereignisprotokolldateien. |
Perforator |
Zum Analysieren des Renderingverhaltens. |
Ablaufverfolgungs-Viewer |
Aufzeichnen, Anzeigen und Durchsuchen von ETW (Event Tracing for Windows)-Protokolldateien in einem WPF-Benutzeroberflächenformat. |
Visual Profiler |
Für die Erstellung von Profilen für die Verwendung von WPF-Diensten, z. B. Layout und Ereignisbehandlung, durch Elemente in der visuellen Struktur. |
Workingset-Viewer |
Zum Analysieren der Workingseteigenschaften der Anwendung. |
Die Visual Profiler-Toolsuite bietet eine umfangreiche grafische Ansicht der Leistungsdaten. In dieser Bildschirmaufnahme enthält der Abschnitt CPU-Verwendung von Visual Profiler eine genaue Aufschlüsselung der Nutzung von WPF-Diensten, z. B. Rendering und Layout, durch ein Objekt.
Angezeigte Visual Profiler-Ausgabe
Weitere Informationen über Tools zum Erstellen von WPF-Leistungsprofilen finden Sie unter Tools für das Erstellen von WPF-Leistungsprofilen.
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
Konzepte
Optimieren der WPF-Anwendungsleistung
Tools für das Erstellen von WPF-Leistungsprofilen
Registrierungseinstellungen für das Rendern von Grafiken
Tipps und Tricks zu Animationen