Sub-recursos (Elementos gráficos Direct3D 11)

Este tópico descreve sub-recursos de textura ou partes de um recurso.

O Direct3D pode fazer referência a um recurso inteiro ou pode fazer referência aos subconjuntos de um recurso. O termo sub-recurso refere-se ao subconjunto de um recurso.

Um buffer é definido como um sub-recurso único. As texturas são um pouco mais complicadas porque há vários tipos de textura diferentes (1D, 2D etc.) alguns dos quais dão suporte a níveis de mipmap e/ou matrizes de textura. Começando com o caso mais simples, uma textura 1D é definida como um sub-recurso único, conforme mostrado na ilustração a seguir.

ilustração de uma textura 1D

Isso significa que a matriz de texels que compõe uma textura 1D está contida em um único sub-recurso.

Se você expandir uma textura 1D com três níveis de mipmap, ela poderá ser visualizada como a ilustração a seguir.

ilustração de uma textura 1d com três níveis de mipmap

Pense nisso como uma única textura composta por três sub-recursos. Um sub-recurso pode ser indexado usando o LOD (nível de detalhe) para uma única textura. Ao usar uma matriz de texturas, acessar um sub-recurso específico requer o LOD e a textura específica. Como alternativa, a API combina essas duas informações em um único índice de sub-fonte baseado em zero, conforme mostrado na ilustração a seguir.

ilustração de um índice de sub-recurso baseado em zero

Selecionando sub-recursos

Algumas APIs acessam um recurso inteiro (por exemplo, o método ID3D11DeviceContext::CopyResource ), outras acessam uma parte de um recurso (por exemplo, o método ID3D11DeviceContext::UpdateSubresource ou o método ID3D11DeviceContext::CopySubresourceRegion ). Os métodos que acessam uma parte de um recurso geralmente usam uma descrição de exibição (como a estrutura D3D11_TEX2D_ARRAY_DSV ) para especificar os sub-recursos a serem acessados.

As ilustrações nas seções a seguir mostram os termos usados por uma descrição de exibição ao acessar uma matriz de texturas.

Fatia de matriz

Considerando uma matriz de texturas, cada textura com mipmaps, uma fatia de matriz (representada pelo retângulo branco) inclui uma textura e todos os seus sub-recursos, conforme mostrado na ilustração a seguir.

ilustração de uma fatia de matriz

Tamanho de MIP

Uma fatia de mip (representada pelo retângulo branco) inclui um nível de mipmap para cada textura em uma matriz, conforme mostrado na ilustração a seguir.

ilustração de uma fatia de mip

Selecionando um sub-recurso único

Você pode usar esses dois tipos de fatias para escolher um sub-recurso único, conforme mostrado na ilustração a seguir.

ilustração da escolha de um sub-recurso usando uma fatia de matriz e uma fatia de mip

Selecionando vários sub-recursos

Ou você pode usar esses dois tipos de fatias com o número de níveis de mipmap e/ou número de texturas, para escolher vários sub-recursos, conforme mostrado na ilustração a seguir.

ilustração da escolha de vários sub-recursos

Observação

Uma exibição de destino de renderização só pode usar uma única fatia de sub-fonte ou mip e não pode incluir sub-recursos de mais de uma fatia de mip. Ou seja, cada textura em uma exibição de destino de renderização deve ter o mesmo tamanho. Uma exibição sombreador-recurso pode selecionar qualquer região retangular de sub-recursos, conforme mostrado na figura.

 

Recursos