Risorse

Una risorsa è un'area della memoria accessibile tramite la pipeline Direct3D. Affinché la pipeline possa accedere alla memoria in modo efficiente, i dati inseriti al suo interno (come geometria di input, risorse shader e trame) devono essere archiviati in una risorsa. Esistono due tipi di risorse da cui derivano tutte le risorse Direct3D: buffer e trama. Per ogni fase della pipeline possono essere attive fino a 128 risorse.

Ogni applicazione in genere creerà molte risorse. Esempi di risorsa includono: buffer di vertice, buffer di indice, buffer costante, texture e risorse shader. Sono disponibili diverse opzioni che determinano la modalità di utilizzo delle risorse. È possibile creare risorse fortemente tipizzate o di tipo minore; è possibile controllare se le risorse hanno accesso in lettura e scrittura; è possibile rendere le risorse accessibili solo alla CPU, alla GPU o a entrambe. Naturalmente, ci sarà un compromesso tra velocità e funzionalità: maggiore sarà la funzionalità che si consente a una risorsa, meno prestazioni ci si dovrà aspettare.

Poiché un'applicazione usa spesso molte texture, Direct3D ha anche il concetto di una matrice di texture per semplificarne la gestione. Una matrice di texture contiene una o più texture (tutti gli stessi tipi e dimensioni) che possono essere indicizzate dall'interno di un'applicazione o da shader. Le matrici di texture consentono di usare una singola interfaccia con più indici per accedere a molte texture. È possibile creare tutte le matrici di texture per gestire i diversi tipi di texture necessari.

Dopo aver creato le risorse che verranno usate dall'applicazione, connettersi o associare ogni risorsa alle fasi della pipeline che le useranno. Questa operazione viene eseguita richiamando un'API di associazione, che accetta un puntatore alla risorsa. Poiché più fasi della pipeline potrebbero dover accedere alla stessa risorsa, Direct3D ha il concetto di visualizzazione delle risorse. Una visualizzazione identifica la parte di una risorsa a cui è possibile accedere. È possibile creare visualizzazioni m o una risorsa e associarle a n fasi della pipeline, presupponendo che si seguano le regole di associazione per la risorsa condivisa (in caso contrario, il runtime genererà errori in fase di compilazione).

Una visualizzazione risorse fornisce un modello generale per l'accesso a una risorsa, ad esempio texture o buffer. Poiché è possibile usare una visualizzazione per dire al runtime a quali dati accedere e come accedervi, le visualizzazioni di risorse consentono di creare risorse di tipo inferiore. Ciò significa che è possibile creare risorse per una determinata dimensione in fase di compilazione e quindi dichiarare il tipo di dati all'interno della risorsa quando quest'ultima viene associata alla pipeline. Le visualizzazioni espongono molte funzionalità per l'uso di risorse, ad esempio la possibilità di leggere le superfici depth/stencil nello shader, di generare mappe di cubi dinamiche in un singolo passaggio e di eseguire il rendering simultaneamente in più sezioni di un volume.

In questa sezione

Argomento Descrizione

Tipi di risorse

Diversi tipi di risorse hanno un layout distinto (o footprint di memoria). Tutte le risorse usate dalla pipeline Direct3D derivano da due tipi di risorse basilari: buffer e texture. Un buffer è una raccolta di dati non elaborati (elementi); una texture è una raccolta di texel (elementi texture).

Scelta di una risorsa

Una risorsa è una raccolta di dati usati dalla pipeline 3D. La creazione di risorse e la definizione del loro comportamento è il primo passaggio della programmazione dell'applicazione. Questa guida illustra gli argomenti di base relativi alla scelta delle risorse richieste dall'applicazione.

Copia e accesso ai dati delle risorse

I flag di utilizzo indicano come l'applicazione intende usare i dati delle risorse per inserire le risorse nell'area di memoria più efficiente possibile. I dati delle risorse sono copiati tra le risorse in modo che la CPU o la GPU possano accedervi senza influire sulle prestazioni.

Visualizzazioni delle texture

In Direct3D, le risorse di texture sono accessibili con una visualizzazione, che è un meccanismo per l'interpretazione hardware di una risorsa in memoria. Una visualizzazione consente a una determinata fase della pipeline di accedere solo alle sottorisorse necessarie, nella rappresentazione desiderata dall'applicazione.

 

Sistemi di coordinate

Guida alla grafica Direct3D

Regole a virgola mobile

Conversione del tipo di dati