Sottoresources (Grafica Direct3D 11)

In questo argomento vengono descritte le sottoresource della trama o le parti di una risorsa.

Direct3D può fare riferimento a un'intera risorsa oppure può fare riferimento ai subset di una risorsa. Il termine subresource fa riferimento a un subset di una risorsa.

Un buffer viene definito come una singola sottoresource. Le trame sono un po' più complicate perché esistono diversi tipi di trama (1D, 2D e così via) alcuni dei quali supportano livelli di mipmap e/o matrici di trame. A partire dal caso più semplice, una trama 1D viene definita come singola sottoresource, come illustrato nella figura seguente.

illustrazione di una trama 1d

Ciò significa che la matrice di texel che costituiscono una trama 1D è contenuta in una singola sottoresource.

Se si espande una trama 1D con tre livelli di mipmap, può essere visualizzato come la figura seguente.

illustrazione di una trama 1d con tre livelli mipmap

Si pensi a questo come una singola trama costituita da tre sottorisorse. Una sottoresource può essere indicizzata usando il livello di dettaglio (LOD) per una singola trama. Quando si usa una matrice di trame, l'accesso a una determinata sottoresource richiede sia loD che la trama specifica. In alternativa, l'API combina queste due informazioni in un singolo indice di sottoresource basato su zero, come illustrato nella figura seguente.

illustrazione di un indice subresource basato su zero

Selezione di sottorisorse

Alcune API accedono a un'intera risorsa(ad esempio il metodo ID3D11DeviceContext::CopyResource ), altri accedono a una parte di una risorsa (ad esempio il metodo ID3D11DeviceContext::UpdateSubresource o il metodo ID3D11DeviceContext::CopySubresourceRegion ). I metodi che accedono a una parte di una risorsa in genere usano una descrizione di visualizzazione (ad esempio la struttura D3D11_TEX2D_ARRAY_DSV ) per specificare le sottoresource da accedere.

Le illustrazioni nelle sezioni seguenti mostrano i termini usati da una descrizione di visualizzazione durante l'accesso a una matrice di trame.

Sezione matrice

Dato una matrice di trame, ogni trama con mipmaps, una sezione di matrice (rappresentata dal rettangolo bianco) include una trama e tutte le relative sottoresource, come illustrato nella figura seguente.

illustrazione di una sezione di matrice

Sezione mip

Una sezione mip (rappresentata dal rettangolo bianco) include un livello mipmap per ogni trama in una matrice, come illustrato nella figura seguente.

illustrazione di una sezione mip

Selezione di una singola sottoresource

È possibile usare questi due tipi di sezioni per scegliere una singola sottoresource, come illustrato nella figura seguente.

illustrazione della scelta di una sottoresource usando una sezione matrice e una sezione mip

Selezione di più sottorisorse

In alternativa, è possibile usare questi due tipi di sezioni con il numero di livelli di mipmap e/o il numero di trame, per scegliere più sottoresource, come illustrato nella figura seguente.

illustrazione della scelta di più sottoresource

Nota

Una visualizzazione di destinazione di rendering può usare solo una singola sezione subresource o mip e non può includere sottorisorse da più sezioni mip. Ovvero, ogni trama in una visualizzazione di destinazione di rendering deve essere la stessa dimensione. Una visualizzazione shader-resource può selezionare qualsiasi area rettangolare di sottoresource, come illustrato nella figura.

 

Risorse