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ę, 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 używają renderowania 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 nie są przyspieszane 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 Ustawienia rejestru renderowania grafiki.
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.
Okno główne narzędzia diagnostycznego DirectX
Zobacz też
.NET Desktop feedback