D3D12_SHADER_RESOURCE_VIEW_DESC 结构 (d3d12.h)
描述 SRV) (着色器资源视图。
语法
typedef struct D3D12_SHADER_RESOURCE_VIEW_DESC {
DXGI_FORMAT Format;
D3D12_SRV_DIMENSION ViewDimension;
UINT Shader4ComponentMapping;
union {
D3D12_BUFFER_SRV Buffer;
D3D12_TEX1D_SRV Texture1D;
D3D12_TEX1D_ARRAY_SRV Texture1DArray;
D3D12_TEX2D_SRV Texture2D;
D3D12_TEX2D_ARRAY_SRV Texture2DArray;
D3D12_TEX2DMS_SRV Texture2DMS;
D3D12_TEX2DMS_ARRAY_SRV Texture2DMSArray;
D3D12_TEX3D_SRV Texture3D;
D3D12_TEXCUBE_SRV TextureCube;
D3D12_TEXCUBE_ARRAY_SRV TextureCubeArray;
D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV RaytracingAccelerationStructure;
};
} D3D12_SHADER_RESOURCE_VIEW_DESC;
成员
Format
一个DXGI_FORMAT类型的值,用于指定查看格式。 请参阅备注。
ViewDimension
一个D3D12_SRV_DIMENSION类型的值,该值指定视图的资源类型。 此类型与基础资源的资源类型相同。 此成员还确定在以下联合中使用的_SRV。
Shader4ComponentMapping
一个值,使用 D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING 宏构造。 D3D12_SHADER_COMPONENT_MAPPING枚举指定通过此着色器资源视图访问纹理时,应从内存中返回哪些值, (SRV) 。 例如,它可以将组件 1 (绿色) 从内存或常量 0
路由到组件 2, (.b
) 给定给着色器的值。
Buffer
将资源视为缓冲区 的D3D12_BUFFER_SRV 结构。
Texture1D
将资源视为一维纹理 的D3D12_TEX1D_SRV 结构。
Texture1DArray
将资源视为 1D 纹理数组 的D3D12_TEX1D_ARRAY_SRV 结构。
Texture2D
将资源视为 2D 纹理 的D3D12_TEX2D_SRV 结构。
Texture2DArray
将资源视为 2D 纹理数组 的D3D12_TEX2D_ARRAY_SRV 结构。
Texture2DMS
将资源视为 2D 多重采样纹理的 D3D12_TEX2DMS_SRV 结构。
Texture2DMSArray
一个D3D12_TEX2DMS_ARRAY_SRV结构,将资源视为 2D-multisampled-texture 数组。
Texture3D
将资源视为 3D 纹理 的D3D12_TEX3D_SRV 结构。
TextureCube
将资源视为 3D 立方体纹理的 D3D12_TEXCUBE_SRV 结构。
TextureCubeArray
将资源视为 3D 多维数据集纹理数组 的D3D12_TEXCUBE_ARRAY_SRV 结构。
RaytracingAccelerationStructure
将资源视为光线跟踪加速结构的 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV 结构。
备注
视图是一种特定于格式的方式来查看资源中的数据。 视图确定要查看的数据,以及读取时如何强制转换数据。
查看资源时,资源视图说明必须指定与资源格式兼容的类型化格式。 因此,这意味着不能使用名称中带有_TYPELESS的任何格式创建资源视图说明。 但是,可以通过为视图指定类型化格式来查看无类型资源。 例如,可以使用以下类型化格式之一查看DXGI_FORMAT_R32G32B32_TYPELESS资源:DXGI_FORMAT_R32G32B32_FLOAT、DXGI_FORMAT_R32G32B32_UINT和DXGI_FORMAT_R32G32B32_SINT,因为这些类型化格式与无类型资源兼容。
通过调用 ID3D12Device::CreateShaderResourceView 创建着色器-resource-view 说明。
要求
标头 | d3d12.h |