Direct3D 11 图形) (子资源

本主题介绍纹理子资源或资源的某些部分。

Direct3D 可以参考整个资源或参考资源的子集。 术语子资源指资源的子集。

缓冲区被定义为一个子资源。 纹理稍微复杂一些,因为有几种不同的纹理类型 (1D、2D 等) 其中一些类型支持 mipmap 级别和/或纹理数组。 从最简单的示例开始,1D 纹理被定义为单个子资源,如下图所示。

1D 纹理的图示

这意味着,构成 1D 纹理的纹素数组包含在单个子资源中。

如果扩展具有三个 mipmap 级别的 1D 纹理,则可以将其可视化,如下图所示。

具有三个 mipmap 级别的 1d 纹理的插图

将此视为由三个子资源组成的单个纹理。 可以使用单个纹理的详细级别 (LOD) 为子资源编制索引。 使用纹理数组时,访问特定子资源需要 LOD 和特定纹理。 或者,API 将这两条信息合并为一个从零开始的子资源索引,如下图所示。

从零开始的子资源索引的图示

选择子资源

某些 API 访问整个资源 (例如 ID3D11DeviceContext::CopyResource 方法) ,而其他 API 访问资源的一部分 (例如 ID3D11DeviceContext::UpdateSubresource 方法或 ID3D11DeviceContext::CopySubresourceRegion 方法) 。 访问资源部分的方法通常使用视图说明 (如 D3D11_TEX2D_ARRAY_DSV 结构) 来指定要访问的子资源。

以下部分中的插图显示了视图说明在访问纹理数组时使用的术语。

数组切片

给定纹理数组,每个具有 mipmap 的纹理,由白色矩形表示的 数组切片 () 包含一个纹理及其所有子资源,如下图所示。

数组切片图示

Mip 切片

由白色矩形表示的 mip 切片 () 数组中的每个纹理包含一个 mipmap 级别,如下图所示。

mip 切片图示

选择单个子资源

你可使用这两种切片选择单个子资源,如下图所示。

使用数组切片和 mip 切片选择子资源的插图

选择多个子资源

或者,可以将这两种类型的切片与 mipmap 级别数和/或纹理数一起使用,以选择多个子资源,如下图所示。

选择多个子资源的插图

注意

呈现目标视图只能使用单个子资源或 mip 切片,不能包含多个 mip 切片中的子资源。 也就是说,呈现器目标视图中的每个纹理的大小必须相同。 着色器资源视图可以选择子资源的任何矩形区域,如图所示。

 

资源