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.
Visió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 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 mosaico son 4 x 4 mosaicos para texturas 2D y 4 x 4 x 4 iconos 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 96bpp, formatos de vídeo, R1_UNORM, R8G8_B8G8_UNORM, R8R8_G8B8_UNORM.
En los diagramas siguientes gris oscuro representa iconos NULL.
- asignación predeterminada de recursos en mosaico de textura 3D (mip más detallada)
- asignación predeterminada de recursos en mosaico 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 de mosaico 3D de textura (icono único)
- recurso en mosaico 3D de textura (caja uniforme)
Asignación predeterminada de recursos en mosaico de textura 3D (mip más detallada)
mip más detallado
Asignación predeterminada de recursos en mosaico de textura 3D (segundo mip más detallado)
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 mosaico 3D de textura (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;
de icono
Recurso en mosaico 3D de textura (cuadro uniforme)
El código siguiente configura un recurso en mosaico de 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 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 mosaicos con mosaico y búferes lineales.
Estructuras
- D3D11_TILED_RESOURCE_COORDINATE : contiene la referencia conjunta x, y y z y subresource. 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 los iconos del búfer en el 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 a un recurso en mosaico de destino.
- ID3D11DeviceContext2::GetResourceTiling : obtiene información sobre cómo se divide un recurso en mosaico.
Temas relacionados