볼륨 타일형 리소스
볼륨(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 타일을 나타냅니다.
- Texture 3D 타일식 리소스 기본 매핑(가장 자세한 밉)
- Texture 3D 타일식 리소스 기본 매핑(두 번째로 자세한 밉)
- Texture 3D 타일식 리소스(가장 자세한 밉)
- 텍스처 3D 타일식 리소스(두 번째로 자세한 밉)
- Texture 3D 타일식 리소스(단일 타일)
- 텍스처 3D 타일식 리소스(Uniform Box)
텍스처 3D 타일식 리소스 기본 매핑(가장 자세한 밉)
기본 매핑
텍스처 3D 타일식 리소스 기본 매핑(두 번째로 자세한 밉)
기본 매핑
텍스처 3D 타일식 리소스(가장 자세한 밉)
다음 코드는 가장 자세한 밉에서 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 바일드 리소스
텍스처 3D 타일식 리소스(두 번째로 자세한 밉)
다음 코드는 3D 타일식 리소스와 두 번째로 자세한 밉을 설정합니다.
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 타일식 리소스(Uniform Box)
다음 코드는 Uniform Box 타일식 리소스를 설정합니다(문은 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 : 바둑판형 리소스가 타일로 분할되는 방법에 대한 정보를 가져옵니다.
관련 항목