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

Visual Profiler-Anzeigeausgabe

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

Bildschirmabbildung: DirectX-Diagnosetool

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

Referenz

RenderCapability

RenderOptions