Direct3D 11 图形) (子资源
本主题介绍纹理子资源或资源的某些部分。
Direct3D 可以参考整个资源或参考资源的子集。 术语子资源指资源的子集。
缓冲区被定义为一个子资源。 纹理稍微复杂一些,因为有几种不同的纹理类型 (1D、2D 等) 其中一些类型支持 mipmap 级别和/或纹理数组。 从最简单的示例开始,1D 纹理被定义为单个子资源,如下图所示。
这意味着,构成 1D 纹理的纹素数组包含在单个子资源中。
如果扩展具有三个 mipmap 级别的 1D 纹理,则可以将其可视化,如下图所示。
将此视为由三个子资源组成的单个纹理。 可以使用单个纹理的详细级别 (LOD) 为子资源编制索引。 使用纹理数组时,访问特定子资源需要 LOD 和特定纹理。 或者,API 将这两条信息合并为一个从零开始的子资源索引,如下图所示。
选择子资源
某些 API 访问整个资源 (例如 ID3D11DeviceContext::CopyResource 方法) ,而其他 API 访问资源的一部分 (例如 ID3D11DeviceContext::UpdateSubresource 方法或 ID3D11DeviceContext::CopySubresourceRegion 方法) 。 访问资源部分的方法通常使用视图说明 (如 D3D11_TEX2D_ARRAY_DSV 结构) 来指定要访问的子资源。
以下部分中的插图显示了视图说明在访问纹理数组时使用的术语。
数组切片
给定纹理数组,每个具有 mipmap 的纹理,由白色矩形表示的 数组切片 () 包含一个纹理及其所有子资源,如下图所示。
Mip 切片
由白色矩形表示的 mip 切片 () 数组中的每个纹理包含一个 mipmap 级别,如下图所示。
选择单个子资源
你可使用这两种切片选择单个子资源,如下图所示。
选择多个子资源
或者,可以将这两种类型的切片与 mipmap 级别数和/或纹理数一起使用,以选择多个子资源,如下图所示。
注意
呈现目标视图只能使用单个子资源或 mip 切片,不能包含多个 mip 切片中的子资源。 也就是说,呈现器目标视图中的每个纹理的大小必须相同。 着色器资源视图可以选择子资源的任何矩形区域,如图所示。
相关主题