ID3D11Device::CreateTexture3D 方法 (d3d11.h)

创建单个 3D 纹理

语法

HRESULT CreateTexture3D(
  [in]            const D3D11_TEXTURE3D_DESC   *pDesc,
  [in, optional]  const D3D11_SUBRESOURCE_DATA *pInitialData,
  [out, optional] ID3D11Texture3D              **ppTexture3D
);

参数

[in] pDesc

类型: const D3D11_TEXTURE3D_DESC*

指向描述 3D 纹理资源的 D3D11_TEXTURE3D_DESC 结构的指针。 若要创建可在运行时解释为不同兼容格式的无类型资源,请在纹理说明中指定无类型格式。 若要自动生成 mipmap 级别,请将 mipmap 级别数设置为 0。

[in, optional] pInitialData

类型: const D3D11_SUBRESOURCE_DATA*

指向描述 3D 纹理资源的子资源的 D3D11_SUBRESOURCE_DATA 结构的数组的指针。 应用程序无法在创建 IMMUTABLE 资源时为 pInitialData 指定 NULL, (请参阅D3D11_USAGE) 。 如果资源是多重采样的, pInitialData 必须为 NULL ,因为多重采样资源在创建时无法使用数据进行初始化。

如果未将任何内容传递给 pInitialData,则资源内存的初始内容未定义。 在这种情况下,需要在读取资源之前以其他方式编写资源内容。

可以从 pDesc 指向的 D3D11_TEXTURE3D_DESC 结构的 MipLevels 成员中的值来确定此数组的大小。 不支持 3D 体积纹理数组。

有关此数组大小的详细信息,请参阅备注。

[out, optional] ppTexture3D

类型: ID3D11Texture3D**

指向缓冲区的指针,该缓冲区接收指向所创建纹理的 ID3D11Texture3D 接口的指针。 将此参数设置为 NULL 以验证其他输入参数, (如果其他输入参数通过验证) ,该方法将返回S_FALSE。

返回值

类型: HRESULT

如果方法成功,则返回代码S_OK。 有关失败的错误代码,请参阅 Direct3D 11 返回 代码。

注解

CreateTexture3D 创建一个 3D 纹理资源,该资源可以包含许多 3D 子资源。 纹理说明中指定了纹理数量。 资源中的所有纹理必须具有相同的格式、大小和 mipmap 级别数。

所有资源都由一个或多个子资源组成。 若要将数据加载到纹理中,应用程序最初可将数据作为 pInitialData 指向的D3D11_SUBRESOURCE_DATA结构数组提供,也可以使用 D3DX11CreateTextureFromFile 等 D3DX 纹理函数之一。

pInitialData 的每个元素都提供为给定错误级别定义的所有切片。 例如,对于具有完整 mipmap 链的 32 x 32 x 4 体积纹理,数组具有以下 6 个元素:

  • pInitialData[0] = 32x32,包含 4 个切片
  • pInitialData[1] = 16x16,包含 2 个切片
  • pInitialData[2] = 8x8,包含 1 个切片
  • pInitialData[3] = 4x4,包含 1 个切片
  • pInitialData[4] = 2x2,包含 1 个切片
  • pInitialData[5] = 1x1,包含 1 个切片

要求

要求
目标平台 Windows
标头 d3d11.h
Library D3D11.lib

另请参阅

ID3D11Device