XMVector3UnprojectStream 函数 (directxmath.h)

将 3D 矢量流从屏幕空间转换为对象空间。

语法

XMFLOAT3 *XM_CALLCONV XMVector3UnprojectStream(
  [out] XMFLOAT3       *pOutputStream,
  [in]  size_t         OutputStride,
  [in]  const XMFLOAT3 *pInputStream,
  [in]  size_t         InputStride,
  [in]  size_t         VectorCount,
  [in]  float          ViewportX,
  [in]  float          ViewportY,
  [in]  float          ViewportWidth,
  [in]  float          ViewportHeight,
  [in]  float          ViewportMinZ,
  [in]  float          ViewportMaxZ,
  [in]  FXMMATRIX      Projection,
  [in]  CXMMATRIX      View,
  [in]  CXMMATRIX      World
) noexcept;

参数

[out] pOutputStream

目标流中第一个 XMFLOAT3 的地址。

[in] OutputStride

目标流中向量之间的步幅(以字节为单位)。

[in] pInputStream

要转换的流中第一个 XMFLOAT3 的地址。 X,Y 以像素为单位,而 ViewportMinZ) 的 Z 为 0.0 (,在 ViewportMaxZ) 为 1.0 (。

[in] InputStride

输入流中向量之间的步幅(以字节为单位)。

[in] VectorCount

要转换的向量数。

[in] ViewportX

视区左上角的像素坐标。 除非你想要呈现到图面的子集,否则此参数可以设置为 0。

[in] ViewportY

呈现目标图面上视区左上角的像素坐标。 除非你想要呈现到图面的子集,否则此参数可以设置为 0。

[in] ViewportWidth

剪辑卷的宽度尺寸(以像素为单位)。 除非只呈现到图面的子集,否则此参数应设置为呈现目标图面的宽度尺寸。

[in] ViewportHeight

剪辑卷的高度尺寸(以像素为单位)。 除非只呈现到图面的子集,否则此参数应设置为呈现目标图面的高度尺寸。

[in] ViewportMinZ

ViewportMaxZ 一起,该值描述要呈现场景的深度值范围,以及剪辑音量的最小值和最大值。 大多数应用程序将此值设置为 0.0f。 剪裁在应用投影矩阵后执行。

[in] ViewportMaxZ

MinZ 一起,该值描述要呈现场景的深度值范围,以及剪辑音量的最小值和最大值。 大多数应用程序将此值设置为 1.0f。 剪裁在应用投影矩阵后执行。

[in] Projection

投影矩阵。

[in] View

视图矩阵。

[in] World

世界矩阵。

返回值

返回目标流中第一个 XMFLOAT3 的地址。

备注

ViewportXViewportYViewportWidthViewportHeight 参数描述视区在呈现目标图面上的位置和尺寸。 通常,应用程序呈现到整个目标图面;在 640*480 图面上呈现时,这些参数应分别为 0、0、640 和 480。 ViewportMinZViewportMaxZ 通常设置为 0.0f 和 1.0f,但可以设置为其他值以实现特定效果。

平台要求

带有 Windows SDK for Windows 8 的 Microsoft Visual Studio 2010 或 Microsoft Visual Studio 2012。 支持 Win32 桌面应用、Windows 应用商店应用和 Windows Phone 8 应用。

要求

   
目标平台 Windows
标头 directxmath.h (包括 DirectXMath.h)

请参阅

DirectXMath 库 3D 矢量转换函数

XMVector3Unproject