볼륨 타일식 리소스
볼륨(3D) 질감은 타일식 리소스로 사용할 수 있으며 타일 해상도는 3차원입니다.
개요
타일식 리소스는 지원 메모리에서 D3D 리소스 개체를 분리합니다(이전에 리소스는 지원 메모리와 1:1 관계였음). 이렇게 하면 텍스처 데이터 스트리밍 및 메모리 사용량 재사용 또는 감소와 같은 다양한 흥미로운 시나리오가 가능합니다.
2D 질감 타일식 리소스는 D3D11.2에서 지원됩니다. D3D12 및 D3D11.3은 3D 타일식 텍스처에 대한 지원을 추가합니다.
타일 방식에서 사용되는 일반적인 리소스 크기는 2D 질감의 경우 4 x 4 타일이고, 3D 질감의 경우 4 x 4 x 4 타일입니다.
비트/픽셀(1샘플/픽셀) | 타일 크기(픽셀, 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 |
타일식 리소스에서는 96bpp 형식, 비디오 형식, R1_UNORM, R8G8_B8G8_UNORM, R8R8_G8B8_UNORM 형식이 지원되지 않습니다.
아래 다이어그램에서 진한 회색은 NULL 타일을 나타냅니다.
- 질감 3D 타일식 리소스 기본 매핑(가장 자세한 mip)
- 질감 3D 타일식 리소스 기본 매핑(두 번째로 가장 자세한 mip)
- 질감 3D 타일식 리소스(가장 자세한 mip)
- 질감 3D 타일식 리소스(두 번째로 가장 자세한 mip)
- 질감 3D 타일식 리소스(단일 타일)
- 질감 3D 타일식 리소스(균일한 상자)
질감 3D 타일식 리소스 기본 매핑(가장 자세한 mip)
질감 3D 타일식 리소스 기본 매핑(두 번째로 가장 자세한 mip)
질감 3D 타일식 리소스(가장 자세한 mip)
다음 코드는 가장 자세한 mip에서 3D 타일식 리소스를 설정합니다.
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;
질감 3D 타일식 리소스(두 번째로 가장 자세한 mip)
다음 코드는 3D 타일식 리소스 및 두 번째로 가장 자세한 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 타일식 리소스(단일 타일)
다음 코드는 단일 타일 리소스를 설정합니다.
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;
질감 3D 타일식 리소스(균일한 상자)
다음 코드는 균일한 상자 타일식 리소스를 설정합니다(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 타일형 리소스 API
동일한 API 호출은 2D 및 3D 타일식 리소스에서 둘 다 사용됩니다.
열거형
- D3D11_TILED_RESOURCES_TIER : 타일형 리소스 지원 수준을 결정합니다.
- D3D11_FORMAT_SUPPORT2 : 타일형 리소스 지원을 테스트하는 데 사용됩니다.
- D3D11_CHECK_MULTISAMPLE_QUALITY_LEVELS_FLAG : 다중 샘플링 리소스에서 타일식 리소스 지원을 결정합니다.
- D3D11_TILE_COPY_FLAGS : 스위즐된 타일형 리소스 및 선형 버퍼에서 복사하기 위한 플래그를 보유합니다.
구조체
- D3D11_TILED_RESOURCE_COORDINATE : x, y 및 z 요동 및 하위 리소스 참조를 보유합니다. CD3D11_TILED_RESOURCE_COORDINATE 도우미 클래스가 있습니다.
- D3D11_TILE_REGION_SIZE : 타일 영역의 크기 및 타일 수를 지정합니다.
- D3D11_TILE_SHAPE : 타일 셰이프를 텍셀의 너비, 높이 및 깊이로 지정합니다.
- D3D11_FEATURE_DATA_D3D11_OPTIONS1: 지원되는 타일 리소스 계층 수준을 보유합니다.
메서드
- ID3D11Device::CheckFeatureSupport : 현재 하드웨어에서 지원되는 기능과 계층을 결정하는 데 사용됩니다.
- ID3D11DeviceContext2::CopyTiles : 버퍼의 타일을 바둑판식 리소스로 복사하거나 그 반대로 복사합니다.
- ID3D11DeviceContext2::UpdateTileMappings : 타일 리소스의 타일 위치 매핑을 타일 풀의 메모리 위치로 업데이트합니다.
- ID3D11DeviceContext2::CopyTileMappings : 원본 타일식 리소스에서 대상 타일식 리소스로 매핑을 복사합니다.
- ID3D11DeviceContext2::GetResourceTiling : 타일식 리소스가 타일로 분할되는 방법에 대한 정보를 가져옵니다.
관련 항목