Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Volumentexturen (3D) können als nebeneinander angeordnete Ressourcen verwendet werden, wobei die Kachelauflösung dreidimensional ist.
Überblick
Tiled resources decouple a D3D Resource object from its backing memory (resources in the past had a 1:1 relationship with their backing memory). Dies ermöglicht eine Vielzahl interessanter Szenarien, z. B. das Streamen in Texturdaten und das Erneute Verwenden oder Reduzieren der Speicherauslastung.
2D-Texturkachelressourcen werden in D3D11.2 unterstützt. D3D12 und D3D11.3 fügen Unterstützung für 3D-Kacheltexturen hinzu.
Die typischen Ressourcenabmessungen, die bei der Kachelung 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) | Kachelabmessungen (Pixel, w x h x d) |
|---|---|
| 8 | 64 x 32 x 32 |
| 16 | 32 x 32 x 32 |
| 32 | 32 x 32 x 16 |
| 64 | 32 x 16 x 16 |
| 128 | 16 x 16 x 16 |
| BC 1,4 | 128x64x16 |
| BC 2,3,5,6,7 | 64x64x16 |
Beachten Sie, dass die folgenden Formate bei nebeneinander angeordneten Ressourcen nicht unterstützt werden: 96bpp-Formate, Videoformate, R1_UNORM, R8G8_B8G8_UNORM, R8R8_G8B8_UNORM.
In den Diagrammen unter Dunkelgrau sind NULL-Kacheln dargestellt.
- Textur 3D Tiled Resource Standardzuordnung (detaillierteste mip)
- Textur 3D Tiled Resource Standardzuordnung (zweite detaillierte mip)
- Textur 3D Tiled Resource (detaillierteste mip)
- Textur 3D Tiled Resource (second detailed mip)
- Textur-3D-Nebeneinanderressource (einzelne Kachel)
- Textur 3D Tiled Resource (Uniform Box)
Standardzuordnung "Textur 3D Tiled Resource" (detaillierteste mip)
Standardzuordnung für Textur 3D-Tiled-Ressource (zweite detaillierte mip)
Textur 3D Tiled Resource (detaillierteste mip)
Der folgende Code richtet eine 3D-Nebeneinanderressource am 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 Tiled Resource (zweite detaillierte mip)
Der folgende Code richtet eine 3D-nebeneinander angeordnete Ressource und den zweiten detaillierten 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-Nebeneinanderressource (einzelne Kachel)
Der folgende Code richtet eine Einzelne Kachelressource ein:
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-Nebeneinanderressource (Uniform Box)
Der folgende Code richtet eine uniform Box-Nebeneinanderressource 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 Tiled Resource APIs
Die gleichen API-Aufrufe werden sowohl für 2D- als auch für 3D-Ressourcen verwendet:
Enumerationen
- D3D11_TILED_RESOURCES_TIER: bestimmt die Ebene der unterstützung von nebeneinander angeordneten Ressourcen.
- D3D11_FORMAT_SUPPORT2: wird verwendet, um die Unterstützung von nebeneinander angeordneten Ressourcen zu testen.
- D3D11_CHECK_MULTISAMPLE_QUALITY_LEVELS_FLAG: bestimmt die Unterstützung von nebeneinander angeordneten Ressourcen in einer Multisamplingressource.
- D3D11_TILE_COPY_FLAGS: Enthält Flags zum Kopieren in und aus geschwörten nebeneinander angeordneten Ressourcen und linearen Puffern.
Strukturen
- D3D11_TILED_RESOURCE_COORDINATE: enthält den X-, Y- und Z-Koordinaten- und Unterressourcenverweis. Beachten Sie, dass es eine Hilfsklasse gibt: CD3D11_TILED_RESOURCE_COORDINATE.
- D3D11_TILE_REGION_SIZE: Gibt die Größe und Anzahl der Kacheln des nebeneinander angeordneten Bereichs an.
- D3D11_TILE_SHAPE: die Kachelform als Breite, Höhe und Tiefe in Texeln.
- D3D11_FEATURE_DATA_D3D11_OPTIONS1: enthält die unterstützte Ebene der Kachelressourcenebene.
Methodik
- 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 nebeneinander angeordnete Ressource oder umgekehrt.
- ID3D11DeviceContext2::UpdateTileMappings: aktualisiert Zuordnungen von Kachelspeicherorten in nebeneinander angeordneten Ressourcen zu Speicherspeicherorten in einem Kachelpool.
- ID3D11DeviceContext2::CopyTileMappings: kopiert Zuordnungen aus einer quellaufgeräumten Ressource in eine zielgekachelte Ressource.
- ID3D11DeviceContext2::GetResourceTiling: Ruft Informationen dazu ab, wie eine nebeneinander angeordnete Ressource in Kacheln unterteilt wird.
Verwandte Themen