5.6.2 视图空间

阅读: 评论:0

5.6.2 视图空间

5.6.2 视图空间

为了形成定义场景的2D图像,我们必须将虚拟相机放在场景中。相机指定了观众可以看到的世界体积,因此通过这个世界的体积生成我们需要的2D图像。让我们定义局部坐标系统(称为视图空间,视觉空间,或相机空间),如图5.19。 它方便了在渲染管线的后期阶段相对于相机坐标系来描述它们,而不是相对于世界空间描述我们的场景顶点,从世界空间到视图空间的坐标变换被称为视图变换,以及相应的矩阵称为视图矩阵。

如果QW=(Qx,QY,QZ,1),UW=(UX,UY,UZ,0),VW=(VX,VY,VZ,0),和WW=(WX,WY,WZ,0)分别介绍原点,x轴,y轴,z轴(相对于世界空间的视图空间齐次坐标),那么我们知道,从§3.4.3可知,从视图空间到世界空间的坐标矩阵转换是:

但是,这不是我们想要的转换。我们想从世界空间反向变换视图空间。但从§3.4.5召回的反向变换只是通过逆给出。因此。 W-1(即V)表示从世界空间转换到视图空间

世界坐标系统和视图坐标系统一般仅相差位置和导向,所以它使直观意义上,W = RT(即世界矩阵可以被分解为一个旋转后跟一个平移)。这种形式使更容易计算:

所以视图矩阵定义如下

我们现在表明一种直观的方式来构造构建视图矩阵所需要的向量。设Q是摄像机的位置和设T
是摄像机瞄准的目标点。此外,令j是一个描述世界空间的“Up”方向的单位矢量。 (在
这本书中,我们使用世界XZ平面为我们的世界“地平面”和世界y轴描述了“Up”的方向;因此,J =
(0,1,0)只是平行于世界y轴的单位矢量。然而,这仅仅是一个惯例,而有些应用可能会选择xy平面作为接地平面,和z轴为“Up”方向)。参看图5.20,相机被赋予为:

w矢量描述相机的局部z轴单位向量u由下式给出:

这个矢量描述相机的局部x轴。最后,描述照相机的局部y轴的向量由下式给出:

v = w × u

因为w和u是正交单位矢量,w×u是一定是单位矢量,因此它不需要进行归一化。

因此,给定的相机的位置,目标点,和世界上“Up”方向,我们能够得出可以用于形成视图矩阵的相机的局部坐标系统。

XNA的数学库提供以下功能基于刚才所描述的过程计算视图矩阵

XMMATRIX XMMatrixLookAtLH( // Outputs resulting view matrix VFXMVECTOR EyePosition, // Input camera position QFXMVECTOR FocusPosition, // Input target point TFXMVECTOR UpDirection); // Input world up vector j

一般世界y轴对应于“Up”方向,因此,“Up”矢量几乎总是J =(0,1,0)。作为一个例子,假设我们希望相对于世界空间摄像头位于(5,3,-10),并且照相机指向世界原点(0,0,0)。我们可以建立视图矩阵如下:

XMVECTOR pos = XMVectorSet(5, 3, -10, 1.0f);
XMVECTOR target = XMVectorZero();
XMVECTOR up = XMVectorSet(0.0f, 1.0f, 0.0f, 0.0f);
XMMATRIX V = XMMatrixLookAtLH(pos, target, up);

本文固定链接:/web/directx11/view-space/ | 虚幻大学

 

 

本文发布于:2024-01-29 02:06:51,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170646521411955.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:视图   空间
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23