Menge gekachelter Ressourcen
Volumetexturen (3D) können als gekachelte Ressourcen verwendet werden, wobei die Kachelauflösung dreidimensional ist.
Übersicht
Gekachelte Ressourcen entkoppeln ein D3D-Ressourcenobjekt von seinem unterstützenden Arbeitsspeicher (Ressourcen hatten in der Vergangenheit eine 1:1-Beziehung mit ihrem unterstützenden Arbeitsspeicher). Dies ermöglicht eine Vielzahl interessanter Szenarien, z. B. das Streaming in Texturdaten und die Wiederverwendung oder Reduzierung der Speicherauslastung.
Gekachelte 2D-Texturressourcen werden in D3D11.2 unterstützt. D3D12 und D3D11.3 unterstützen 3D-Kacheltexturen.
Die typischen Ressourcendimensionen, die beim Kacheln verwendet werden, sind 4 x 4 Kacheln für 2D-Texturen und 4 x 4 Kacheln für 3D-Texturen.
Bits/Pixel (1 Beispiel/Pixel) | Kachelmaße (Pixel, b x h x t) |
---|---|
8 | 64x32x32 |
16 | 32x32x32 |
32 | 32x32x16 |
64 | 32x16x16 |
128 | 16x16x16 |
Bc 1,4 | 128x64x16 |
BC 2,3,5,6,7 | 64x64x16 |
Beachten Sie, dass die folgenden Formate bei gekachelten Ressourcen nicht unterstützt werden: 96-Tb-Formate, Videoformate, R1_UNORM, R8G8_B8G8_UNORM, R8R8_G8B8_UNORM.
In den folgenden Diagrammen stellt dunkelgrau NULL-Kacheln dar.
- Standardzuordnung der gekachelten Textur-3D-Ressource (detaillierteste mip)
- Standardzuordnung der gekachelten Textur-3D-Ressource (zweitgenauste mip)
- Textur-3D-Gekachelte Ressource (detaillierteste mip)
- Textur-3D-Gekachelte Ressource (zweit detaillierteste mip)
- Textur 3D gekachelte Ressource (einzelne Kachel)
- Textur 3D gekachelte Ressource (Uniform Box)
Standardzuordnung der gekachelten Textur-3D-Ressource (detaillierteste mip)
Standardzuordnung der gekachelten Textur-3D-Ressource (zweitgenauste mip)
Textur-3D-Gekachelte Ressource (detaillierteste mip)
Der folgende Code richtet eine gekachelte 3D-Ressource mit dem detailliertesten MIP ein.
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;
Textur-3D-Gekachelte Ressource (zweit detaillierteste mip)
Der folgende Code richtet eine gekachelte 3D-Ressource und den zweit detailliertesten MIP ein:
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;
Textur 3D gekachelte Ressource (einzelne Kachel)
Mit dem folgenden Code wird eine Einzelne Kachelressource eingerichtet:
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;
Textur 3D gekachelte Ressource (Uniform Box)
Der folgende Code richtet eine gekachelte Uniform Box-Ressource ein (beachten Sie die Anweisung 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;
D3D11.3 gekachelte Ressourcen-APIs
Die gleichen API-Aufrufe werden sowohl für gekachelte 2D- als auch für 3D-Ressourcen verwendet:
Enumerationen
- D3D11_TILED_RESOURCES_TIER : Bestimmt die Ebene der Unterstützung gekachelter Ressourcen.
- D3D11_FORMAT_SUPPORT2 : Wird zum Testen der Unterstützung gekachelter Ressourcen verwendet.
- D3D11_CHECK_MULTISAMPLE_QUALITY_LEVELS_FLAG : Bestimmt die Unterstützung gekachelter Ressourcen in einer Ressource mit mehreren Stichproben.
- D3D11_TILE_COPY_FLAGS : enthält Flags zum Kopieren in und aus gekachelten Ressourcen und linearen Puffern.
Strukturen
- D3D11_TILED_RESOURCE_COORDINATE : enthält die x-, y- und z-Koordinaten- und Unterressourcenreferenz. Beachten Sie, dass es eine Hilfsklasse gibt: CD3D11_TILED_RESOURCE_COORDINATE.
- D3D11_TILE_REGION_SIZE : Gibt die Größe und Anzahl der Kacheln des gekachelten Bereichs an.
- D3D11_TILE_SHAPE : die Kachelform als Breite, Höhe und Tiefe in Texels.
- D3D11_FEATURE_DATA_D3D11_OPTIONS1: Enthält die unterstützte Kachelressourcenebene.
Methoden
- ID3D11Device::CheckFeatureSupport : Wird verwendet, um zu bestimmen, welche Features und auf welcher Ebene von der aktuellen Hardware unterstützt werden.
- ID3D11DeviceContext2::CopyTiles : kopiert Kacheln aus dem Puffer in eine gekachelte Ressource oder umgekehrt.
- ID3D11DeviceContext2::UpdateTileMappings : aktualisiert Zuordnungen von Kachelspeicherorten in gekachelten Ressourcen an Speicherspeicherorten in einem Kachelpool.
- ID3D11DeviceContext2::CopyTileMappings : kopiert Zuordnungen von einer gekachelten Quellressource in eine gekachelte Zielressource.
- ID3D11DeviceContext2::GetResourceTiling : Ruft Informationen darüber ab, wie eine gekachelte Ressource in Kacheln unterteilt wird.
Zugehörige Themen