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
将资源视为 1D 纹理的 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
将资源视为 2D 多重采样纹理数组的 D3D12_TEX2DMS_ARRAY_SRV 结构。
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 创建着色器资源视图说明。
要求
标头 | d3d12.h |