子資源 (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層級,如以下插圖所示。
選取單一子資源
您可以使用這兩種類型的切片來選擇單一子資源,如下圖所示。
使用陣列配量和 mip 配量來選擇子資源
選取多個子資源
或者,您可以使用這兩種類型的切片,搭配Mipmap層級數量和/或紋理數目,來選擇多個子資源,如下圖所示。
的插圖
注意
轉譯目標檢視 只能使用單一子資源或 mip 切片,而且不能包含多個 mip 切片中的子資源。 也就是說,轉譯目標檢視中的每個紋理都必須是相同的大小。 著色器資源檢視 可以選取子資源的任何矩形區域,如圖所示。
相關主題