创建灵活的摄影机.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
创建灵活的摄影机

DirectX 3D游戏设计 专题4 创建灵活的摄影机 学习目标 掌握摄像机的几种基本变化 将摄像机的基本功能封装成为完整类形式 将封装的类应用于实例 Camera类的结构 定义四个向量成员right, ?up,look 以及 pos 描述摄影机在世界坐标系的位置和朝向。Pos表示摄影机在世界坐标系下的位置,up表示look表示视线,竖直方向,right表示右手方向。 为了便于计算,要求look,up,right单位正交。 定义成员函数表示摄影机的如下6种运动方式: 围绕right向量旋转 围绕up向量旋转 围绕look向量旋转 沿着right向量平移 沿着up向量飞行 沿着look向量移动 定义函数成员获取观察者矩阵 计算观察者矩阵 观察者变换等价于将物体随摄影机一起变换,以使观察者坐标系和世界坐标系完全重合。我们可以把计算矩阵的任务分成两个步骤: 将摄影机平移到世界坐标系的原点。 通过旋转变换,使得各向量与世界坐标系的各轴重合。 旋转 旋转使用D3DXMatrixRotationAxis函数实现,绕right,up和look旋转的实现方法如下: 旋转 平移 平移就是沿着up,right和look方向运动,可用pos向量与沿以上三个方向上移动量相加。沿right,up和look平移的实现方法如下: 课堂练习 1、以第一人称视角,通过键盘的输入在场景中自由移动。 * * // 绕right旋转 D3DXMATRIX R; D3DXMatrixRotationAxis(R, right,angle); D3DXVec3TransformCoord(up,up, R); D3DXVec3TransformCoord(look,look, R); // 绕up旋转 D3DXMATRIX R; D3DXMatrixRotationAxis(R, up,angle); D3DXVec3TransformCoord(right,right, R); D3DXVec3TransformCoord(look,look, R); // 绕look旋转 D3DXMATRIX R; D3DXMatrixRotationAxis(R, look,angle); D3DXVec3TransformCoord(right,right, R); D3DXVec3TransformCoord(up,up, R); // 沿right平移,f0沿正方向移动,f0沿负方向移动 pos=pos+f*right; // 沿up平移,f0沿正方向移动,f0沿负方向移动 pos=pos+f*up // 沿look平移,f0沿正方向移动,f0沿负方向移动 pos=pos+f*look

文档评论(0)

xy88118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档