D3D11游戏编程学习笔记二十
技术论坛
发表于 主页 > 技术论坛

  D3D11游戏编程学习笔记二十在之前所有的程序中,为了方便从各个角度观察场景,我们可以通过鼠标来旋转视角和镜头远近。尽管相对单一地从固定的角度观察方便多了,但观察点依然仅仅限制在一个球面上,观察目标点始终为场景原点。有了今天这个摄像机,我们将可以在场景中随意走动、从任一角度进行观察,正如在第一人称射击游戏中一样要实现一个FPS摄像机,首先必须要对3D中的坐标变换有着非常清晰的认识。在该系列文章一开始介绍3D渲染管线时,我们提到过,在3D世界中,有几种不同的坐标系。乡土美食里的文化记忆。首先是模型坐标系(Model Space),该坐标系以模型中心为原点,这样最大的好处在于大大方便了模型的制作,而不需要考虑该模型在场景中可能出现的不同位置。模型中的各个坐标以该坐标系为基准,企业宣传片制作一旦模型制作完成,其顶点即固定了; 当然,在3D场景中,各个物体有着各自不同的位置,且同一个模型也可能出现在场景中不同的位置,从场景的角度出发,为了表示各个物体的不同位置,则需要用到世界坐标系(World Space),把模型从模型坐标系转换到世界坐标系中用到的变换即“世界变换”;在任一时刻,呈现在屏幕上的场景部分,是通过场景中的一个虚拟摄像机拍照后得到的。企业宣传片制作摄像机在场景中不同的位置、不同的摆放角度,都会导致拍摄到的场景不一样。这一点很好理解,可以想象自己用照相机拍照的情景。换句话说,这时候,我们需要以摄像机为参考点来观察场景,这种情况下使用的坐标系即视角坐标系(View Space)。把模型从世界坐标系转换到视角坐标系用到的变换即“视角变换”。一个摄像机在任一时候能够观察到的场景范围取决于它本身的几项参数:观察角(一般指定为Y轴方向),投影长、宽比,最近、最远距离。通过这几项参数,摄像机所能观察到的场景即被限制在一个被切掉顶部的金字塔形状的几何体内,我们称之为“平截头体”(Frustum)。位于之内的物品将被观察到,之外的物品会被剔除,而部分位于之内的物品将会被进行裁剪(Clipping)。投影空间有两大关键作用:一是方便了接下来的裁剪操作,因为这时的视景体位于一个标准立方体内,因此计算大大被简化了;二是通过3D场景中的3维坐标得到了投影后的二维坐标,以用于之后的光栅化阶段注意:很多人对于投影变换存在着误解,认为经过投影变换后3D坐标即变为了2维变换,z分量就丢弃了。其实这是不对的,经过投影变换后z坐标依然在在(位于[0, 1]之间),而且还将发挥相当重要的作用,即利用z坐标作为深度判断的依据2. 摄像机视角矩阵的生成在进行完简要的回顾后,我们把注意力集中在视角空间及视角变换上来。刚才提到,摄像机在空间有着特定的位置及朝向,它所观察到的物体取决于物体与摄像机的相对位置。为了表示摄像机位置,我们可以使用一个3维向量;对于摄像机的的朝向,可以使用三个相互垂直的坐标轴的惟一地确定,摄影用光知识普及 让镜头迎着太阳,即右、上、前三个方向。以摄像机为参考点,即以之为原点来观察物体。因此,视角变换,本质上即把场景中所有的物体、连同摄像机,使用相同的变换,使得变换后摄像机位于场景的原点,且其三个坐标轴(右、上、前)与世界坐标系的X、Y、Z坐标轴重合。这时,变换后的所有物体的坐标值,即变为与摄像机的相对位置了我们把摄像机位置用[ px, py, pz ]来表示,其三个表示朝向的坐标轴分别表示为[ Rx, Ry, Rz ]、[ Ux, Uy, Uz ]、[ Lx, Ly, Lz ]。而视角变换的目的即把它的这些参数转换为:位置[ 0, 0, 0 ],以及三个坐标轴:[ 1, 0,0 ]、[ 0, 1, 0 ]、 [ 0, 0, 1 ]。由于有平移和旋转同时存在,因此该变换可以分为两步进行:1. 平移到原点;2. 旋转平移操作很简单,即把[Px,Py, Pz,1]移回到原点,矩阵为:旋转操作需要点小技巧。我们的目的是把三个轴分别转换成[1,0,0]、[0,1,0]、Domain Model 再再重新设计,[0,0,1],令旋转矩阵为M,可以表示为如下所示:由上面式子可以看出,左边的矩阵与M相乘后变为右边的单位矩阵。这正是关键所在!我们知道,一个矩阵与它的逆矩阵相乘结果为单位矩阵,因此,要求矩阵M,企业宣传片制作我们可以求它的逆矩阵。求逆矩阵需要大量的计算,有没有更好的方法?答案是有的!有一点需要知道,正交矩阵的逆矩阵等于它的转置矩阵。而正交矩阵的一个特点:正交矩阵的每行(每列)相互垂直。回来看下我们左边的矩阵,每行分别对应了摄像机的三个相互垂直的轴,显然它正是正交矩阵!好了,这下M的计算,就变成求它的转置矩阵了。而转置的计算再简单不过了,直接给出:现在,两步需要的矩阵都有了,那最终的视角矩阵即两次转换的乘积,当然,由于平移变换的存在,现在要在4x4矩阵了,如下所示:结果中PR、PU、PL分别是位置向量与R、U、L三个向量的点积,通过查看左边的矩阵相乘很容易看出来任一时刻,独一无二的 Olympus 奥林巴斯 35SP通过摄像机位置P(Px,Py,Pz),以及三个坐标轴(R,U,L),可以得到当前的视角变换矩阵:

公司宣传片拍摄-版权信息
公司宣传片拍摄-
虚拟演播室拍摄 三维动画制作 MG动画制作 影视视频制作 企业宣传片制作 公司宣传片拍摄 天源文化传播有限公司公司地址:天津市西青区王顶堤商贸城58众创 本站视频作品采用知识共享署名非商业性使用津ICP备14005706号-1

友情链接: 赚客吧 企业广告片拍摄 活动策划 企业宣传片制作 年会活动策划 广告片拍摄制作 动画制作 多媒体企业展厅 影视视频拍摄制作 广告策划公司 MV拍摄制作 企业宣传片制作 天津活动策划 设计制作公司 虚拟演播室 中国家居网 短视频运营 动画制作公司 广告片制作公司 活动拍摄 VR拍摄