Poziomy zmiany grafiki

Warstwa renderowania definiuje poziom możliwości i wydajności sprzętu grafiki dla urządzenia, na których działa aplikacja WPF.

Sprzęt graficzny

Funkcje sprzętu graficznego, które mają największy wpływ na poziomy warstw renderowania, to:

  • Wideo RAM Ilość pamięci wideo na sprzęcie graficznym określa rozmiar i liczbę buforów, które mogą być używane do komponowania grafiki.

  • Cieniowanie pikseli Cieniowanie pikseli to funkcja przetwarzania grafiki, która oblicza efekty na podstawie poszczególnych pikseli. W zależności od rozdzielczości wyświetlanej grafiki może istnieć kilka milionów pikseli, które należy przetworzyć dla każdej ramki wyświetlania.

  • Cieniowania wierzchołków cieniowania wierzchołków to funkcja przetwarzania grafiki, która wykonuje operacje matematyczne na danych wierzchołka obiektu.

  • Obsługa wielotekstowa obsługi wielotekstowej odnosi się do możliwości stosowania co najmniej dwóch odrębnych tekstur podczas operacji mieszania na obiekcie graficznym 3D. Stopień obsługi wielotekstowej zależy od liczby jednostek wielotekstowych na sprzęcie graficznym.

Renderowanie definicji warstwy

Funkcje sprzętu graficznego określają możliwości renderowania aplikacji WPF. System WPF definiuje trzy warstwy renderowania:

  • Renderowanie warstwy 0 Bez przyspieszania sprzętowego grafiki. Wszystkie funkcje graficzne korzystają z przyspieszania oprogramowania. Poziom wersji DirectX jest mniejszy niż wersja 9.0.

  • Renderowanie warstwy 1 Niektóre funkcje graficzne używają przyspieszania sprzętowego grafiki. Poziom wersji DirectX jest większy lub równy wersji 9.0.

  • Renderowanie warstwy 2 Większość funkcji graficznych używa przyspieszania sprzętowego grafiki. Poziom wersji DirectX jest większy lub równy wersji 9.0.

Właściwość RenderCapability.Tier umożliwia pobieranie warstwy renderowania w czasie wykonywania aplikacji. Warstwa renderowania służy do określania, czy urządzenie obsługuje niektóre funkcje grafiki przyspieszane sprzętowo. Aplikacja może następnie wykonywać różne ścieżki kodu w czasie wykonywania w zależności od warstwy renderowania obsługiwanej przez urządzenie.

Renderowanie warstwy 0

Wartość warstwy renderowania 0 oznacza, że na urządzeniu nie jest dostępne przyspieszanie sprzętowe grafiki. Na tym poziomie warstwy należy założyć, że wszystkie grafiki będą renderowane przez oprogramowanie bez przyspieszania sprzętowego. Funkcjonalność tej warstwy odpowiada wersji DirectX mniejszej niż 9.0.

Renderowanie warstwy 1 i renderowania warstwy 2

Uwaga

Począwszy od programu .NET Framework 4, renderowanie warstwy 1 zostało ponownie zdefiniowane tak, aby obejmowało tylko sprzęt graficzny obsługujący program DirectX 9.0 lub nowszy. Sprzęt graficzny obsługujący program DirectX 7 lub 8 jest teraz zdefiniowany jako warstwa renderowania 0.

Wartość warstwy renderowania 1 lub 2 oznacza, że większość funkcji graficznych WPF będzie używać przyspieszania sprzętowego, jeśli niezbędne zasoby systemowe są dostępne i nie zostały wyczerpane. Odpowiada to wersji DirectX, która jest większa lub równa 9.0.

W poniższej tabeli przedstawiono różnice w wymaganiach sprzętowych grafiki dotyczących renderowania warstwy 1 i renderowania warstwy 2:

Funkcja Warstwa 1 Warstwa 2
Wersja DirectX Musi być większa lub równa 9,0. Musi być większa lub równa 9,0.
Pamięć RAM wideo Musi być większa lub równa 60 MB. Musi być większy lub równy 120 MB.
Cieniowanie pikseli Poziom wersji musi być większy lub równy 2.0. Poziom wersji musi być większy lub równy 2.0.
Cieniowania wierzchołków Nie wymaganie. Poziom wersji musi być większy lub równy 2.0.
Jednostki wielotekstowe Nie wymaganie. Liczba jednostek musi być większa lub równa 4.

Następujące funkcje i możliwości są przyspieszane sprzętem na potrzeby renderowania warstwy 1 i renderowania warstwy 2:

Funkcja Uwagi
Renderowanie 2D Większość renderowania 2D jest obsługiwana.
Rasteryzacja 3-W Większość rasteryzacji 3D jest obsługiwana.
Filtrowanie anisotropowe 3D WPF próbuje użyć filtrowania anisotropowego podczas renderowania zawartości 3D. Filtrowanie anizotropowe odnosi się do zwiększenia jakości obrazu tekstur na powierzchniach, które są daleko i stromo kątowane w odniesieniu do aparatu.
Mapowanie 3D MIP WPF próbuje użyć mapowania MIP podczas renderowania zawartości 3D. Mapowanie miP poprawia jakość renderowania tekstur, gdy tekstura zajmuje mniejsze pole widoku w Viewport3Dobiekcie .
Gradienty promieniowe Chociaż jest to obsługiwane, należy unikać używania dużych RadialGradientBrush obiektów.
Obliczenia oświetlenia 3D WPF wykonuje oświetlenie na wierzchołku, co oznacza, że intensywność światła musi być obliczana na każdym wierzchołku dla każdego materiału stosowanego do siatki.
Renderowanie tekstu Renderowanie czcionek subpixel używa dostępnych cieniowania pikseli na sprzęcie graficznym.

Następujące funkcje i możliwości są przyspieszane sprzętem tylko w przypadku renderowania warstwy 2:

Funkcja Uwagi
Anty aliasowanie 3D Anty aliasowanie 3D jest obsługiwane tylko w systemach operacyjnych obsługujących model sterowników wyświetlania systemu Windows (WDDM), takich jak Windows Vista i Windows 7.

Następujące funkcje i możliwości nieprzyspieszane sprzętem:

Funkcja Uwagi
Wydrukowana zawartość Cała drukowana zawartość jest renderowana przy użyciu potoku oprogramowania WPF.
Zawartość rasteryzowana, która używa RenderTargetBitmap Dowolna zawartość renderowana przy użyciu Render metody RenderTargetBitmap.
Zawartość z kafelkami, która używa TileBrush Dowolna zawartość kafelkaTileBrush, w której TileMode właściwość obiektu jest ustawiona na Tilewartość .
Powierzchnie przekraczające maksymalny rozmiar tekstury sprzętu graficznego W przypadku większości sprzętu graficznego duże powierzchnie mają rozmiar 2048x2048 lub 4096x4096 pikseli.
Każda operacja, której wymaganie dotyczące pamięci RAM wideo przekracza pamięć sprzętu graficznego Użycie pamięci RAM wideo aplikacji można monitorować za pomocą narzędzia Perforator, które znajduje się w pakiecie WPF Performance Suite w zestawie SDK systemu Windows.
Okna warstwowe Okna warstwowe umożliwiają aplikacjom WPF renderowanie zawartości na ekranie w oknie nie prostokątnym. W systemach operacyjnych obsługujących system Windows Display Driver Model (WDDM), takich jak Windows Vista i Windows 7, okna warstwowe są przyspieszane sprzętowo. W innych systemach, takich jak Windows XP, okna warstwowe są renderowane przez oprogramowanie bez przyspieszania sprzętowego.

Okna warstwowe można włączyć w WPF, ustawiając następujące Window właściwości:

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

Inne zasoby

Poniższe zasoby mogą pomóc w analizie charakterystyk wydajności aplikacji WPF.

Ustawienie rejestru renderowania grafiki

WPF udostępnia cztery ustawienia rejestru do kontrolowania renderowania WPF:

Ustawienie opis
Wyłącz opcję przyspieszania sprzętowego Określa, czy należy włączyć przyspieszanie sprzętowe.
Maksymalna wartość wieloprzykładowa Określa stopień wieloamplingu dla antyaliasingowej zawartości 3D.
Wymagane ustawienie daty sterownika wideo Określa, czy system wyłącza przyspieszanie sprzętowe sterowników wydanych przed listopadem 2004 r.
Użyj opcji rasterizatora odwołań Określa, czy WPF powinien używać rasterizatora odwołania.

Te ustawienia można uzyskać za pomocą dowolnego zewnętrznego narzędzia konfiguracji, które wie, jak odwoływać się do ustawień rejestru WPF. Te ustawienia można również utworzyć lub zmodyfikować, korzystając bezpośrednio z wartości za pomocą Edytora rejestru systemu Windows. Aby uzyskać więcej informacji, zobacz Graphics Rendering Registry Ustawienia.

Narzędzia profilowania wydajności WPF

WPF udostępnia zestaw narzędzi profilowania wydajności, które umożliwiają analizowanie zachowania aplikacji w czasie wykonywania i określanie typów optymalizacji wydajności, które można zastosować. W poniższej tabeli wymieniono narzędzia profilowania wydajności, które są zawarte w narzędziu zestawu Windows SDK, WPF Performance Suite:

Narzędzie opis
Perforator Służy do analizowania zachowania renderowania.
Visual Profiler Służy do profilowania korzystania z usług WPF, takich jak układ i obsługa zdarzeń, według elementów w drzewie wizualizacji.

Pakiet WPF Performance Suite udostępnia bogaty, graficzny widok danych wydajności. Aby uzyskać więcej informacji na temat narzędzi do wydajności WPF, zobacz WPF Performance Suite.

Narzędzie diagnostyczne DirectX

Narzędzie diagnostyczne DirectX, Dxdiag.exe, zostało zaprojektowane w celu ułatwienia rozwiązywania problemów związanych z directX. Domyślny folder instalacyjny narzędzia diagnostycznego DirectX to:

~\Windows\System32

Po uruchomieniu narzędzia diagnostycznego DirectX okno główne zawiera zestaw kart, które umożliwiają wyświetlanie i diagnozowanie informacji związanych z directX. Na przykład karta System zawiera informacje systemowe o komputerze i określa wersję programu DirectX zainstalowaną na komputerze.

Screenshot: DirectX Diagnostic Tool
Okno główne narzędzia diagnostycznego DirectX

Zobacz też