Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Tekstury woluminu (3D) mogą być używane jako zasoby kafelkowe, zauważając, że rozdzielczość kafelka jest trójwymiarowa.
- — omówienie
- interfejsy API zasobów D3D11.3
- Tematy pokrewne
Przegląd
Zasoby kafelkowe oddzielają obiekt zasobu D3D od pamięci zapasowej (zasoby w przeszłości miały relację 1:1 z pamięcią zapasową). Umożliwia to korzystanie z różnych interesujących scenariuszy, takich jak przesyłanie strumieniowe w danych tekstury i ponowne używanie lub zmniejszenie użycia pamięci
Zasoby tekstury 2D są obsługiwane w D3D11.2. D3D12 i D3D11.3 dodają obsługę tekstur kafelków 3D.
Typowe wymiary zasobów używane w tilingu to 4 x 4 kafelki dla tekstur 2D i 4 x 4 x 4 kafelki dla tekstur 3D.
| Bity/piksel (1 próbka/piksel) | Wymiary kafelka (piksele, 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 |
Należy pamiętać, że następujące formaty nie są obsługiwane w przypadku zasobów kafelkowych: formaty 96bpp, formaty wideo, R1_UNORM, R8G8_B8G8_UNORM, R8R8_G8B8_UNORM.
Na poniższych diagramach ciemnoszary reprezentuje kafelki NULL.
- mapowanie domyślne zasobu 3D tekstury 3D (najbardziej szczegółowe mip)
- mapowanie domyślne zasobu kafelka 3D tekstury (drugi najbardziej szczegółowy mip)
- zasób tekstury 3D (najbardziej szczegółowy mip)
- zasób tekstury 3D (drugi najbardziej szczegółowy mip)
- zasób tekstury 3D (pojedynczy kafelek)
- zasób tekstury 3D (jednolite pudełko)
Mapowanie domyślne zasobu kafelka tekstury 3D (najbardziej szczegółowe mip)
mip
Mapowanie domyślne zasobu kafelka tekstury 3D (drugi najbardziej szczegółowy mip)
mip
Zasób kafelkowy tekstury 3D (najbardziej szczegółowy mip)
Poniższy kod konfiguruje zasób kafelkowy 3D w najbardziej szczegółowych 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;
Zasób kafelkowy tekstury 3D (drugi najbardziej szczegółowy mip)
Poniższy kod konfiguruje zasób kafelkowy 3D i drugi najbardziej szczegółowy 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;
Zasób kafelkowy tekstury 3D (pojedynczy kafelek)
Poniższy kod konfiguruje zasób pojedynczego kafelka:
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;
Zasób kafelkowy tekstury 3D (jednolite pudełko)
Poniższy kod konfiguruje zasób z kafelkami Uniform Box (zwróć uwagę na instrukcję 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;
Interfejsy API zasobów kafelków D3D11.3
Te same wywołania interfejsu API są używane zarówno dla zasobów kafelków 2D, jak i 3D:
Wyliczenia
- D3D11_TILED_RESOURCES_TIER : określa poziom obsługi zasobów kafelków.
- D3D11_FORMAT_SUPPORT2 : służy do testowania obsługi zasobów kafelków.
- D3D11_CHECK_MULTISAMPLE_QUALITY_LEVELS_FLAG : określa obsługę zasobów kafelków w zasobie z wieloma próbkami.
- D3D11_TILE_COPY_FLAGS : zawiera flagi kopiowania do i zwizzled zasobów kafelkowych i liniowych.
Struktur
- D3D11_TILED_RESOURCE_COORDINATE : przechowuje odwołanie współrzędne x, y i z oraz podźródło. Zwróć uwagę, że istnieje klasa pomocnika: CD3D11_TILED_RESOURCE_COORDINATE.
- D3D11_TILE_REGION_SIZE : określa rozmiar i liczbę kafelków w regionie kafelków.
- D3D11_TILE_SHAPE : kształt kafelka jako szerokość, wysokość i głębokość w texels.
- D3D11_FEATURE_DATA_D3D11_OPTIONS1: przechowuje obsługiwany poziom warstwy zasobów kafelka.
Metody
- ID3D11Device::CheckFeatureSupport : służy do określania, jakie funkcje i w jakiej warstwie są obsługiwane przez bieżący sprzęt.
- ID3D11DeviceContext2::CopyTiles : kopiuje kafelki z buforu do zasobu kafelka lub odwrotnie.
- ID3D11DeviceContext2::UpdateTileMappings: aktualizuje mapowania lokalizacji kafelków w zasobach kafelków do lokalizacji pamięci w puli kafelków.
- ID3D11DeviceContext2::CopyTileMappings : kopiuje mapowania z zasobu źródłowego kafelka do docelowego zasobu kafelka.
- ID3D11DeviceContext2::GetResourceTiling : pobiera informacje o tym, jak zasób kafelków jest podzielony na kafelki.
Tematy pokrewne
-
funkcje Direct3D 11.3