Recursos en mosaico de volumen (Direct3D 12)

Las texturas de volumen (3D) se pueden usar como recursos en mosaico, teniendo en cuenta que la resolución de iconos es tridimensional.

Información general

Los recursos en mosaico desacoplan un objeto de recurso de Direct3D de su memoria de respaldo (los recursos en el pasado tenían una relación de 1:1 con su memoria de respaldo). Esto permite una variedad de escenarios interesantes, como el streaming en datos de textura y la reutilización o reducción del uso de memoria.

Los recursos en mosaico de textura 2D se admiten en Direct3D 11.2. La compatibilidad opcional con texturas en mosaico 3D está disponible para Direct3D 12 y Direct3D 11.3 (consulte D3D12_TILED_RESOURCES_TIER).

Las dimensiones de recursos típicas usadas en mosaicos son 4 x 4 mosaicos para texturas 2D y 4 x 4 x 4 mosaicos para texturas 3D.

Bits/píxel (1 muestra/píxel) Dimensiones de mosaico (píxeles, w x h x d)
8 64x32x32
16 32x32x32
32 32x32x16
64 32x16x16
128 16x16x16
BC 1,4 128x64x16
BC 2,3,5,6,7 64x64x16

Tenga en cuenta que no se admiten los siguientes formatos con recursos en mosaico: formatos de 96bpp, formatos de vídeo, R1_UNORM, R8G8_B8G8_UNORM, R8R8_G8B8_UNORM.

En los diagramas siguientes, el gris oscuro representa iconos NULL.

Asignación predeterminada de recursos en mosaico de textura 3D (mip más detallada)

asignación predeterminada de un recurso de 3 dimensiones en mosaico

Asignación predeterminada de recursos en mosaico de textura 3D (segundo mip más detallado)

muestra el segundo mip más detallado

Recurso en mosaico de textura 3D (mip más detallado)

El código siguiente configura un recurso en mosaico 3D en el mip más detallado.

D3D12_TILED_RESOURCE_COORDINATE trCoord{};
trCoord.X = 1;
trCoord.Y = 0;
trCoord.Z = 0;
trCoord.Subresource = 0;

D3D12_TILE_REGION_SIZE trSize{};
trSize.bUseBox = false;
trSize.NumTiles = 63;

mip más detallado para una textura tridimensional

Recurso en mosaico 3D de textura (segundo mip más detallado)

El código siguiente configura un recurso en mosaico 3D y el segundo mip más detallado.

D3D12_TILED_RESOURCE_COORDINATE trCoord;
trCoord.X = 1;
trCoord.Y = 0;
trCoord.Z = 0;
trCoord.Subresource = 1;

D3D12_TILE_REGION_SIZE trSize;
trSize.bUseBox = false;
trSize.NumTiles = 6;

segundo mip más detallado para una textura tridimensional

Recurso en mosaico de textura 3D (icono único)

El código siguiente configura un único recurso de icono.

D3D12_TILED_RESOURCE_COORDINATE trCoord;
trCoord.X = 1;
trCoord.Y = 1;
trCoord.Z = 1;
trCoord.Subresource = 0;

D3D12_TILE_REGION_SIZE trSize;
trSize.bUseBox = true;
trSize.NumTiles = 27;
trSize.Width = 3;
trSize.Height = 3;
trSize.Depth = 3;

un recurso tridimensional en mosaico único

Recurso en mosaico de textura 3D (cuadro uniforme)

El código siguiente configura un recurso en mosaico de cuadro uniforme (tenga en cuenta la instrucción . trSize.bUseBox = true;) :

D3D12_TILED_RESOURCE_COORDINATE trCoord;
trCoord.X = 0;
trCoord.Y = 1;
trCoord.Z = 0;
trCoord.Subresource = 0;

D3D12_TILE_REGION_SIZE trSize;
trSize.bUseBox = true;
trSize.NumTiles = 27;
trSize.Width = 3;
trSize.Height = 3;
trSize.Depth = 3;

un cuadro uniforme

API de recursos en mosaico

Las mismas llamadas API se usan para los recursos en mosaico 2D y 3D.

Enumeraciones

Estructuras

Métodos