Recursos en mosaico de volumen
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 Resource D3D de su memoria de respaldo (los recursos del 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 D3D11.2. D3D12 y D3D11.3 agregan compatibilidad con texturas en mosaico 3D.
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 debajo del gris oscuro se representan iconos NULL.
- Asignación predeterminada de recursos en mosaico de textura 3D (mip más detallada)
- Asignación predeterminada de recursos en mosaico de textura 3D (segundo mip más detallado)
- Recurso en mosaico de textura 3D (mip más detallado)
- Recurso en mosaico de textura 3D (segundo mip más detallado)
- Recurso en mosaico de textura 3D (icono único)
- Recurso en mosaico de textura 3D (cuadro uniforme)
Asignación predeterminada de recursos en mosaico de textura 3D (mip más detallada)
Asignación predeterminada de recursos en mosaico de textura 3D (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.
D3D11_TILED_RESOURCE_COORDINATE trCoord;
trCoord.X = 1;
trCoord.Y = 0;
trCoord.Z = 0;
trCoord.Subresource = 0;
D3D11_TILE_REGION_SIZE trSize;
trSize.bUseBox = false;
trSize.NumTiles = 63;
Recurso en mosaico de textura 3D (segundo mip más detallado)
El código siguiente configura un recurso en mosaico 3D y el segundo mip más detallado:
D3D11_TILED_RESOURCE_COORDINATE trCoord;
trCoord.X = 1;
trCoord.Y = 0;
trCoord.Z = 0;
trCoord.Subresource = 1;
D3D11_TILE_REGION_SIZE trSize;
trSize.bUseBox = false;
trSize.NumTiles = 6;
Recurso en mosaico de textura 3D (icono único)
El código siguiente configura un recurso de icono único:
D3D11_TILED_RESOURCE_COORDINATE trCoord;
trCoord.X = 1;
trCoord.Y = 1;
trCoord.Z = 1;
trCoord.Subresource = 0;
D3D11_TILE_REGION_SIZE trSize;
trSize.bUseBox = true;
trSize.NumTiles = 27;
trSize.Width = 3;
trSize.Height = 3;
trSize.Depth = 3;
Recurso en mosaico de textura 3D (cuadro uniforme)
El código siguiente configura un recurso en mosaico uniform Box (tenga en cuenta la instrucción ). trSize.bUseBox = true;) :
D3D11_TILED_RESOURCE_COORDINATE trCoord;
trCoord.X = 0;
trCoord.Y = 1;
trCoord.Z = 0;
trCoord.Subresource = 0;
D3D11_TILE_REGION_SIZE trSize;
trSize.bUseBox = true;
trSize.NumTiles = 27;
trSize.Width = 3;
trSize.Height = 3;
trSize.Depth = 3;
API de recursos en mosaico de D3D11.3
Las mismas llamadas API se usan para los recursos en mosaico 2D y 3D:
Enumeraciones
- D3D11_TILED_RESOURCES_TIER : determina el nivel de compatibilidad con recursos en mosaico.
- D3D11_FORMAT_SUPPORT2 : se usa para probar la compatibilidad con recursos en mosaico.
- D3D11_CHECK_MULTISAMPLE_QUALITY_LEVELS_FLAG : determina la compatibilidad de recursos en mosaico en un recurso de muestreo múltiple.
- D3D11_TILE_COPY_FLAGS : contiene marcas para copiar hacia y desde recursos en mosaico y búferes lineales.
Estructuras
- D3D11_TILED_RESOURCE_COORDINATE : contiene la coordenada x, y y z y la referencia de subrecurso. Tenga en cuenta que hay una clase auxiliar: CD3D11_TILED_RESOURCE_COORDINATE.
- D3D11_TILE_REGION_SIZE : especifica el tamaño y el número de iconos de la región en mosaico.
- D3D11_TILE_SHAPE : la forma de mosaico como ancho, alto y profundidad en elementos de textura.
- D3D11_FEATURE_DATA_D3D11_OPTIONS1: contiene el nivel de recurso de icono admitido.
Métodos
- ID3D11Device::CheckFeatureSupport : se usa para determinar qué características y en qué nivel son compatibles con el hardware actual.
- ID3D11DeviceContext2::CopyTiles : copia iconos del búfer en un recurso en mosaico o viceversa.
- ID3D11DeviceContext2::UpdateTileMappings : actualiza las asignaciones de ubicaciones de iconos en recursos en mosaico a ubicaciones de memoria de un grupo de iconos.
- ID3D11DeviceContext2::CopyTileMappings : copia las asignaciones de un recurso en mosaico de origen en un recurso en mosaico de destino.
- ID3D11DeviceContext2::GetResourceTiling : obtiene información sobre cómo se divide un recurso en mosaico.
Temas relacionados