Prostředky s dlaždicemi svazku
Textury svazků (3D) lze použít jako dlaždice prostředků, a to znamená, že rozlišení dlaždic je trojrozměrné.
Přehled
Dlaždice prostředků odděluje objekt prostředku D3D od jeho záložní paměti (prostředky v minulosti měly vztah 1:1 s jejich záložní pamětí). To umožňuje řadu zajímavých scénářů, jako je streamování dat textury a opakované použití nebo snížení využití paměti.
2D dlaždice prostředky jsou podporovány v D3D11.2. D3D12 a D3D11.3 přidávají podporu pro 3D dlaždicové textury.
Typické rozměry prostředků používané při provazování jsou dlaždice 4 x 4 pro 2D textury a 4 x 4 dlaždice pro 3D textury.
Bity/pixel (1 vzorek/pixel) | Rozměry dlaždic (pixely, 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 |
Všimněte si, že u dlaždicových prostředků nejsou podporovány následující formáty: formáty 96bpp, formáty videa, R1_UNORM, R8G8_B8G8_UNORM, R8R8_G8B8_UNORM.
V diagramech pod tmavě šedou barvou představuje dlaždice NULL.
- výchozí mapování 3D dlaždicového prostředku textury (nejpodrobnější mapování mip)
- výchozí mapování 3D dlaždicového prostředku textury (druhé nejpodrobnější mip)
- 3D dlaždicový zdroj (nejpodrobnější mip)
- 3D dlaždicový zdroj (druhý nejpodrobnější mip)
- 3D dlaždicový prostředek (jedna dlaždice)
- 3D dlaždicový zdroj (uniform box)
Výchozí mapování 3D dlaždicového prostředku textury (nejpodrobnější mip)
mip
Výchozí mapování 3D dlaždicového prostředku textury (druhé nejpodrobnější mip)
mip
3D dlaždicový prostředek textury (nejpodrobnější mip)
Následující kód nastaví 3D dlaždicový prostředek na nejpodrobnější mip.
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;
Texturový 3D dlaždicový prostředek (druhý nejpodrobnější mip)
Následující kód nastaví 3D dlaždicový prostředek a druhý nejpodrobnější mip:
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;
3D dlaždicový prostředek textury (jedna dlaždice)
Následující kód nastaví prostředek jedné dlaždice:
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;
Texturový 3D dlaždicový zdroj (Uniform Box)
Následující kód nastaví prostředek s dlaždicí Uniform Box (všimněte si příkazu 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;
Rozhraní API prostředků d3D11.3 s dlaždicemi
Stejná volání rozhraní API se používají pro 2D i 3D dlaždicové prostředky:
Výčty
- D3D11_TILED_RESOURCES_TIER : určuje úroveň podpory dlaždicových prostředků.
- D3D11_FORMAT_SUPPORT2: slouží k otestování podpory dlaždicových prostředků.
- D3D11_CHECK_MULTISAMPLE_QUALITY_LEVELS_FLAG : určuje podporu prostředků s dlaždicemi v prostředku s více vzorkováním.
- D3D11_TILE_COPY_FLAGS : uchovává příznaky pro kopírování do a z dlaždicových prostředků a lineárních vyrovnávacích pamětí.
Struktury
- D3D11_TILED_RESOURCE_COORDINATE : obsahuje odkazy na x, y a z, které jsou společně ordinované, a podsourcové odkazy. Poznámka: pomocná třída: CD3D11_TILED_RESOURCE_COORDINATE.
- D3D11_TILE_REGION_SIZE : určuje velikost a počet dlaždic v dlaždicové oblasti.
- D3D11_TILE_SHAPE: obrazec dlaždice jako šířka, výška a hloubka v texelech.
- D3D11_FEATURE_DATA_D3D11_OPTIONS1: Obsahuje podporovanou úroveň úrovně prostředků dlaždice.
Metody
- ID3D11Device::CheckFeatureSupport: slouží k určení funkcí a na jaké úrovni jsou podporovány aktuálním hardwarem.
- ID3D11DeviceContext2::CopyTiles: zkopíruje dlaždice z vyrovnávací paměti do prostředku s dlaždicemi nebo naopak.
- ID3D11DeviceContext2::UpdateTileMappings: aktualizuje mapování umístění dlaždic v dlaždicových prostředcích na umístění paměti ve fondu dlaždic.
- ID3D11DeviceContext2::CopyTileMappings: zkopíruje mapování ze zdrojového prostředku s dlaždicí na cílový dlaždicový prostředek.
- ID3D11DeviceContext2::GetResourceTiling: získá informace o tom, jak je dlaždicový prostředek rozdělen na dlaždice.
Související témata