- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
11.3.4 复杂3D模型的绘制 3D模型(3D Model) .x文件 .fbx文件 例11-1 加载和旋转3D模型 11.5 第一人称摄像机和第三人称摄像机 11.5 第一人称摄像机和第三人称摄像机 11.5.1 旋转和移动摄像机 11.5.2 制作第一人称摄像机 11.5.3 制作第三人称摄像机 11.5 第1人称摄像机和第3人称摄像机 基本知识 第一人称摄像机就是玩家“我”自己拿着摄像机,屏幕上显示的场景可以认为是摄像机拍摄的场景。大部分第一人称摄像机的游戏都是将摄像机固定在玩家“我”的肩上。 第三人称摄像机是指场景是“他”拍摄的,而我是玩家,我能否在场景中看到自己,就看“他”如何拍摄了。 大部分情况下,我们使用单一的摄像机来实现第一人称或者第三人称,有时也用多个摄像机在单一的窗口中切换视角,比如从第一人称切换到第三人称视角(游戏中屡见不鲜),而“画中画”将会同时展现第一人称和第三人称(或者第三人称与第三人称),也就是说同时存在不同的观察点,这是靠多窗口多摄像机分别进行渲染来实现的。 如何旋转和移动摄像机一个摄像机的位置和方向,可以通过设置摄像机的视图矩阵(View Matrix)来控制。 用一个Vector3确定摄像机的世界坐标。 用另一个Vector3确定旋转摄像机所需的观察点,一般是 (0, 0, 1)或(0, 0, ?1)。例如:Vector3 cameraReference = new Vector3(0, 0, 1); 创建一个旋转矩阵来描述摄像机绕那个轴旋转,例如表示沿Y轴旋转的旋转矩阵应该通过 CreateRotationY 来创建(参数avatarYaw表示选转角度)。Matrix rotationMatrix = Matrix.CreateRotationY(avatarYaw); 如何旋转和移动摄像机 通过Transform对观察点进行旋转变换。Vector3 transformedReference =Vector3.Transform(cameraReference, rotationMatrix); 将摄像机的当前位置调整到经过旋转变换的方向,使被观察的对象正对摄像机。Vector3 cameraLookat = cameraPosition + transformedReference; 通过CreateLookAt创建视图矩阵(将世界坐标转换为摄像机的坐标)。其中第3个参数表示摄像机的上方位置,一般用(0, 1, 0)表示。view = Matrix.CreateLookAt(cameraPosition, cameraLookat, new Vector3(0.0f, 1.0f, 0.0f)); 如何制作第一人称摄像机 用“如何旋转和移动摄像机”中讲述的方法创建摄像机坐标。 用CreatePerspectiveFieldOfView创建投影矩阵,其中第1个参数是视图的投影角度(弧度),一般用PI/4,表示45度角;第2个参数是投影平面的宽高比。第3个和第4个参数指定可视区域的最近与最远距离。proj = Matrix.CreatePerspectiveFieldOfView(viewAngle, aspectRatio, nearClip, farClip); 通过控制“模型(Model)”循环绘制世界坐标中的每个对象。 void DrawModel(Model model, Matrix world, Texture2D texture) { foreach (ModelMesh mesh in model.Meshes){ foreach (BasicEffect be in mesh.Effects) { be.Projection = proj; be.View = view; be.World = world; be.Texture = texture; be.TextureEnabled = true; } mesh.Draw(); } } * 第11章 XNA三维设计 11.1 三维设计基本概念 11.2 简单3D图形的绘制 11.3 3D模型与3D特效 11.4 第一人称摄像机和第三人称摄像机 11.5 3D环境下的鼠标与键盘操作 11.6 3D图形的序列化与反序列化 11.1三维设计基本概念 11.1 三维基本概念包括: 3D坐标系 世界矩阵(World Matrix) 视图矩阵(View Matrix) 投影矩阵(Projection Matrix) 前剪裁面与后剪裁面,或者叫近平面与远平面 可视区域(Viewing Frustum) 11.1 基本概念
您可能关注的文档
最近下载
- 城管执法队员百分制考核细则.docx VIP
- 高血压的诊治PPT课件.pptx VIP
- 第二单元第04课时用混合运算解决实际问题(1)(教学课件)数学人教版三年级上册(新教材).pptx
- 健身会所操课教练工作流程及规范 .pdf VIP
- 《江苏省工业、建筑业、服务业、生活和农业用水定额(2025年)》.docx VIP
- 国投证券-固态电池系列报告(一):未来已来固态电池行业迎来产业驱动.pdf VIP
- Hubsan哈博森无人机ZINO说明书用户手册.pdf
- 高中政治必修二《经济与社会》选择题专练30题 .pdf VIP
- 高危高尿酸血症药物降尿酸治疗专家共识(2025版).pptx VIP
- 2025湖南郴州桂阳县招聘25名城市社区专职工作者笔试备考题库及答案解析.docx VIP
文档评论(0)