Livelli di rendering della grafica

Un livello di rendering definisce un livello di funzionalità hardware grafica e prestazioni per un dispositivo che esegue un'applicazione WPF.

Hardware grafico

Le funzionalità dell'hardware grafico che hanno effetto sui livelli di rendering sono:

  • RAM video La quantità di memoria video sull'hardware grafico determina le dimensioni e il numero di buffer che possono essere usati per la composizione della grafica.

  • Pixel shader Un pixel shader è una funzione di elaborazione grafica che calcola gli effetti sui singoli pixel. A seconda della risoluzione della grafica visualizzata, potrebbe essere necessario elaborare diversi milioni di pixel per ogni fotogramma visualizzato.

  • Vertex shader Un vertex shader è una funzione di elaborazione grafica che esegue operazioni matematiche sui dati dei vertici dell'oggetto.

  • Supporto per più trame Il supporto per più trame è la possibilità di applicare due o più trame distinte durante un'operazione di fusione su un oggetto grafico 3D. Il grado di supporto per più trame è determinato dal numero di unità a più trame nell'hardware grafico.

Definizioni dei livelli di rendering

Le funzionalità dell'hardware grafico determinano la funzionalità di rendering di un'applicazione WPF. Il sistema WPF definisce tre livelli di rendering:

  • Livello di rendering 0 Nessuna accelerazione hardware grafico. Tutte le funzionalità grafiche usano l'accelerazione software. Il livello di versione DirectX è minore della versione 9.0.

  • Livello di rendering 1 Alcune funzionalità grafiche usano l'accelerazione hardware grafico. Il livello di versione DirectX è maggiore o uguale alla versione 9.0.

  • Livello di rendering 2 La maggior parte delle funzionalità grafiche usa l'accelerazione hardware grafico. Il livello di versione DirectX è maggiore o uguale alla versione 9.0.

La RenderCapability.Tier proprietà consente di recuperare il livello di rendering in fase di esecuzione dell'applicazione. Il livello di rendering consente di determinare se il dispositivo supporta determinate funzionalità grafiche con accelerazione hardware. L'applicazione può quindi usare percorsi di codice diversi in fase di esecuzione a seconda del livello di rendering supportato dal dispositivo.

Livello di rendering 0

Il valore 0 del livello di rendering indica che l'accelerazione hardware grafico non è disponibile per l'applicazione sul dispositivo. A questo livello, si deve presupporre che il rendering tutta la grafica verrà eseguito dal software senza accelerazione hardware. La funzionalità di questo livello corrisponde a una versione DirectX minore di 9.0.

Livello di rendering 1 e livello di rendering 2

Nota

A partire da .NET Framework 4, il livello di rendering 1 è stato ridefinito in modo da includere solo hardware grafico che supporta DirectX 9.0 o versione successiva. L'hardware grafico che supporta DirectX 7 o 8 è ora definito come livello di rendering 0.

Il valore del livello di rendering 1 o 2 indica che la maggior parte delle funzionalità grafiche di WPF userà l'accelerazione hardware se le risorse di sistema necessarie sono disponibili e non sono state esaurite. Corrisponde a una versione DirectX maggiore o uguale a 9.0.

La tabella seguente illustra le differenze dei requisiti di hardware grafico tra il livello di rendering 1 e livello di rendering 2:

Funzionalità Livello 1 Livello 2
Versione di DirectX Deve essere superiore o uguale alla 9.0. Deve essere superiore o uguale alla 9.0.
RAM video Deve essere maggiore o uguale a 60 MB. Deve essere maggiore o uguale a 120 MB.
Pixel shader Il livello della versione deve essere superiore o uguale alla 2.0. Il livello della versione deve essere superiore o uguale alla 2.0.
Vertex shader Nessun requisito. Il livello della versione deve essere superiore o uguale alla 2.0.
Unità a più trame Nessun requisito. Il numero di unità deve essere superiore o uguale a 4.

Le funzionalità e capacità seguenti sono con accelerazione hardware per il livello di rendering 1 e livello di rendering 2:

Funzionalità Note
Rendering 2D È supportata la maggior parte del rendering 2D.
Rasterizzazione 3D È supportata la maggior parte delle rasterizzazioni 3D.
Filtro anisotropico 3D WPF tenta di usare il filtro anisotropico durante il rendering del contenuto 3D. Il filtro anisotropico consente di migliorare la qualità delle trame di un'immagine su superfici lontane e molto inclinate rispetto alla fotocamera.
Mapping MIP 3D WPF tenta di usare il mapping MIP durante il rendering del contenuto 3D. Il mapping MIP migliora la qualità del rendering delle trame quando una trama occupa un campo di visualizzazione più piccolo in un oggetto Viewport3D.
Sfumature radiali Sebbene sia supportato, evitare l'uso di RadialGradientBrush su oggetti di grandi dimensioni.
Calcoli per l'illuminazione 3D WPF esegue l'illuminazione per vertice, il che significa che è necessario calcolare un'intensità di luce in ogni vertice per ogni materiale applicato a una mesh.
Rendering del testo Il rendering dei tipi di carattere subpixel usa pixel shader disponibili nell'hardware grafico.

Le funzionalità e capacità seguenti sono con accelerazione hardware solo per il livello di rendering 2:

Funzionalità Note
Anti-aliasing 3D L'anti-aliasing 3D è supportato solo nei sistemi operativi che supportano Windows Display Driver Model (WDDM), ad esempio Windows Vista e Windows 7.

Le funzionalità e capacità seguenti sono senza accelerazione hardware:

Funzionalità Note
Contenuti stampati Il rendering di tutto il contenuto stampato viene eseguito tramite la pipeline software WPF.
Contenuto rasterizzato che usa RenderTargetBitmap Qualsiasi contenuto di cui viene eseguito il rendering usando il Render metodo di RenderTargetBitmap.
Contenuto affiancato che usa TileBrush Qualsiasi contenuto affiancato in cui la TileMode proprietà di TileBrush è impostata su Tile.
Superfici che superano le dimensioni massime della trama dell'hardware grafico Per la maggior parte dell'hardware grafico, le superfici di grandi dimensioni sono pari a 2048x2048 o 4096x4096 pixel.
Qualsiasi operazione il cui requisito per la RAM video supera la memoria dell'hardware grafico È possibile monitorare l'utilizzo della RAM video dell'applicazione usando lo strumento Perforator incluso nella famiglia di prodotti per l'analisi delle prestazioni WPF in Windows SDK.
Finestre a livelli Le finestre a più livelli consentono alle applicazioni WPF di eseguire il rendering del contenuto sullo schermo in una finestra non rettangolare. Nei sistemi operativi che supportano Windows Display Driver Model (WDDM), ad esempio Windows Vista e Windows 7, le finestre a più livelli sono accelerate dall'hardware. In altri sistemi, ad esempio Windows XP, le finestre a più livelli vengono sottoposte a rendering dal software senza accelerazione hardware.

È possibile abilitare le finestre a più livelli in WPF impostando le proprietà seguenti Window :

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

Risorse aggiuntive

Le risorse seguenti consentono di analizzare le caratteristiche delle prestazioni dell'applicazione WPF.

Impostazioni del Registro di sistema per il rendering della grafica

WPF offre quattro impostazioni del Registro di sistema per il controllo del rendering WPF:

Impostazione Descrizione
Opzione di disabilitazione dell'accelerazione hardware Specifica se l'accelerazione hardware deve essere abilitata.
Valore massimo di multicampionamento Specifica il grado di multicampionamento per l'anti-aliasing del contenuto 3D.
Impostazione Data driver video necessaria Specifica se il sistema disabilita l'accelerazione hardware per i driver rilasciati prima di novembre 2004.
Opzione per l'uso di unità di rasterizzazione dei riferimenti Specifica se WPF deve usare l'rasterizzatore di riferimento.

Queste impostazioni possono essere accessibili da qualsiasi utilità di configurazione esterna in grado di fare riferimento alle impostazioni del Registro di sistema WPF. Queste impostazioni possono essere create o modificate anche accedendo ai valori direttamente tramite l'Editor del Registro di sistema di Windows. Per altre informazioni, vedere Impostazioni del Registro di sistema per il rendering della grafica.

Strumenti per la profilatura delle prestazioni WPF

WPF offre una suite di strumenti di profilatura delle prestazioni che consentono di analizzare il comportamento di runtime dell'applicazione e determinare i tipi di ottimizzazioni delle prestazioni che è possibile applicare. La tabella seguente elenca gli strumenti di profilatura delle prestazioni inclusi nello strumento Windows SDK, WPF Performance Suite:

Strumento Descrizione
Perforator Da usare per l'analisi del comportamento di rendering.
Visual Profiler Usare per la profilatura dell'uso di servizi WPF, ad esempio layout e gestione degli eventi, in base agli elementi nella struttura ad albero visuale.

WPF Performance Suite offre una visualizzazione grafica avanzata dei dati sulle prestazioni. Per altre informazioni sugli strumenti per le prestazioni WPF, vedere Famiglia di prodotti per l'analisi delle prestazioni WPF.

Strumento di diagnostica DirectX

Lo strumento di diagnostica DirectX, Dxdiag.exe, è progettato per facilitare la risoluzione dei problemi correlati a DirectX. La cartella di installazione predefinita per lo strumento di diagnostica DirectX è:

~\Windows\System32

Quando si esegue lo strumento di diagnostica DirectX, la finestra principale contiene un set di schede che consentono di visualizzare e diagnosticare le informazioni correlate a DirectX. Ad esempio, la scheda Sistema fornisce informazioni di sistema sul computer e specifica la versione di DirectX installata nel computer.

Screenshot: DirectX Diagnostic Tool
Finestra principale dello strumento di diagnostica DirectX

Vedi anche