子资源(十五)

Direct3D可以引用整个资源,也可以引用资源的子集。术语子资源指的是资源的子集。

缓冲区定义为单个子资源。纹理有点复杂,因为有几种不同的纹理类型(1D、2D等),其中一些支持mipmap级别和/或纹理数组。

从最简单的情况开始,一维纹理被定义为单个子资源,如下图所示。

这意味着组成一维纹理的纹素数组包含在单个子资源中。如果您使用三个mipmap级别展开一维纹理,可以将其可视化,如下图所示。

把它看作一个由三个子资源组成的单一纹理。可以使用针对单个纹理的详细级别(LOD)对子资源进行索引。当使用纹理数组时,访问特定的子资源需要LOD和特定的纹理。另一种方法是,API将这两个信息组合成一个从零开始的子资源索引,如下图所示。

选择子资源

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

下面几节中的插图显示了视图描述在访问纹理数组时使用的术语。

数组切片

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

Mip片

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

选择单个子资源

您可以使用这两种类型的片来选择单个子资源,如下图所示。

选择多个子资源

或者您可以使用这两种带有mipmap级别和/或纹理数量的切片来选择多个子资源,如下图所示。

注意,render-target视图只能使用单个子资源或mip片,并且不能包含来自多个mip片的子资源。也就是说,render-target视图中的每个纹理都必须是相同的大小。着色器资源视图可以选择子资源的任何矩形区域,如图所示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值