Subrecursos (gráficos de Direct3D 11)

En este tema se describen los subrecursos de textura o partes de un recurso.

Direct3D puede hacer referencia a un recurso completo o puede hacer referencia a subconjuntos de un recurso. El término subrecurso hace referencia a un subconjunto de un recurso.

Un búfer se define como un único subrecurso. Las texturas son un poco más complicadas porque hay varios tipos de textura diferentes (1D, 2D, etc.) algunos de los cuales admiten niveles de mapa mip o matrices de texturas. A partir del caso más sencillo, una textura 1D se define como un único subrecurso, como se muestra en la ilustración siguiente.

ilustración de una textura 1d

Esto significa que la matriz de elementos de textura que componen una textura 1D se incluye en un único subrecurso.

Si expande una textura 1D con tres niveles de mapa mip, se puede visualizar como en la ilustración siguiente.

ilustración de una textura 1d con tres niveles de mapa mip

Piense en esto como una sola textura formada por tres subrecursos. Un subrecurso se puede indexar mediante el nivel de detalle (LOD) para una sola textura. Cuando se usa una matriz de texturas, el acceso a un subrecurso determinado requiere el LOD y la textura determinada. Como alternativa, la API combina estos dos fragmentos de información en un único índice de subrecurso basado en cero, como se muestra en la ilustración siguiente.

ilustración de un índice de subrecurso basado en cero

Selección de subrecursos

Algunas API acceden a un recurso completo (por ejemplo, el método ID3D11DeviceContext::CopyResource ), otros acceden a una parte de un recurso (por ejemplo, el método ID3D11DeviceContext::UpdateSubresource o el método ID3D11DeviceContext::CopySubresourceRegion ). Los métodos que acceden a una parte de un recurso suelen usar una descripción de vista (como la estructura D3D11_TEX2D_ARRAY_DSV ) para especificar los subrecursos a los que se va a acceder.

Las ilustraciones de las secciones siguientes muestran los términos usados por una descripción de vista al acceder a una matriz de texturas.

Segmento de matriz

Dada una matriz de texturas, cada textura con mapas mip, un segmento de matriz (representado por el rectángulo blanco) incluye una textura y todos sus subrecursos, como se muestra en la ilustración siguiente.

ilustración de un segmento de matriz

Segmento mip

Un segmento mip (representado por el rectángulo blanco) incluye un nivel de mapa mip para cada textura de una matriz, como se muestra en la ilustración siguiente.

ilustración de un segmento mip

Selección de un único subrecurso

Puede usar estos dos tipos de segmentos para elegir un único subrecurso, como se muestra en la ilustración siguiente.

ilustración de cómo elegir un subrecurso mediante un segmento de matriz y un segmento mip

Selección de varios subrecursos

O bien, puede usar estos dos tipos de segmentos con el número de niveles de mapa mip o el número de texturas, para elegir varios subrecursos, como se muestra en la ilustración siguiente.

Ilustración de cómo elegir varios subrecursos

Nota

Una vista de destino de representación solo puede usar un segmento de subrecurso o mip único y no puede incluir subrecursos de más de un segmento mip. Es decir, todas las texturas de una vista de destino de representación deben tener el mismo tamaño. Una vista de recursos de sombreador puede seleccionar cualquier región rectangular de subrecursos, como se muestra en la ilustración.

 

Recursos