- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
用Direct3D实现三维漫游
成都理工学院 17# 岳朝伟
朋友,喜欢玩游戏吗?自从计算机诞生以来,人们对计算机游戏就充满了热情,以前对字符型的游戏就乐此不疲,随着时代的发展,人们的要求也越来越高,三维实时游戏和多媒体应用已经成为人们追求的热点。
而Microsoft公司推出的DirectX正是这样一个热点的集合。如果你想抓住时代的潮流,并喜欢迎接挑战的话,本文将是一个很好的去处。同时,本人将以此文讲述用Direct3D保留模式的各种编程技巧和应用,而对于有关基本的DirectX的介绍,请参阅相关的文章。
程序调试环境:Win98、Visual C++6.0,它们都内嵌了DirectX 5.0,同时,为了大家调试的方便和确保程序正常运行,我们将使用最低级的DirectX驱动程序。
Direct3DRM中的基本概念
1.0、Direct3D简介 Direct3D是Microsoft公司推出的DirectX的一部分,它又包括立即模式(Direct3DIM)和保留模式(Direct3DRM)。同时,即使是一个最基本的Direct3D例程也必须包含DirectDraw对象,它们是紧密的结合在一起的,因此,你在编写Direct3D应用程序之前还应先对DirectDraw有一定的认识!Direct3D立即模式是一种较低级的三维模式,因而牵涉到各种复杂的三维图形学的知识,而保留模式是建立在一系列的类调用的基础之上,其中大量的底层操作和运算都被封装在这些类当中,因此适合快速的创建一个三维环境并希望能实时的操作它。本程序就是利用它建立了一个可以用方向键控制的三维漫游程序!
2.0、Direct3DRM中有关图形学的基本内容介绍 Direct3DRM中牵涉到很多三维图形学的东西,这里本人对程序当中将要涉及到的最重要的部分作一简单介绍,让大家对Direct3DRM尽快的有一个感性的认识。 照相机(camera)场景(scene)视点(viewport)框架(frame)的概念及它们之间的关系:(这些概念与一些三维图形软件中的概念相当一致,如3DS?,因此你要是有这方面软件、的使用经验的话,你会更容易的理解这些概念) 框架(frame):它是将各种三维网格托住的支架,同时,它还将灯光,照相机,物体等都虚拟成现实世界中的东西,它们都需要放在某一特定的物理框架上才能被托住,不至于落下来。各个框架之间的关系也非常符合现实世界中的各物体的位置关系,即要想被看见,则它必须在照相机框架的前面,同理,物体要想被灯光照着也必须在灯光框架的前方。各个框架之间可以形成一个树结构,多个框架组合在一起就形成了场景。
场景(scene):是一个根框架,场景中的所有其它框架都应建立在它的基础之上,它是所有其它框架的父框架,而它没有父框架,且一个视点只能有一个场景。
照相机:它是建立在视点当中的用于可视的框架,在现实世界中可以将它想象成人的眼睛。同时,可以任意设置场景中的任一框架为照相机,方法有两种,一种是在创建Viewport时直接给定某一框架为Camera,二是用Viewport对象提供的SetCamera()设置,因此,当你需要改变不同的视角时就可以用SetCamera()来调整观察的相对视角,但在适时漫游当中无需这样做,用第一种方法就足够了。
视点:它是用于决定在场景中的什么位置可以看到物体,这里的物体实质上已经变成了框架,而框架当中往往又包含了某一可见的网格。而视点实质上是一个二维矩形区域,且只有沿X,Y的正方向上可见的区域才能被渲染,且所有可见的物体被着色时都将自动变换成照相机坐标,这一点与人眼的作用相对应。
某一框架(在场景当中,且能被Viewport所见)
框架当中的网格
Viewport(视点),Camera附属于Viewport,通过Camera的坐标调整即实现三维漫游同时场景也是相对于Viewport重合的(实质上比Viewport 大)
3.0、回调函数
下面介绍一下Direct3DRM当中经常用到的一类函数----回调函数(CallBackfunction),这种函数必须深入理解才能明白Direct3DRM当中的各个调用过程,以后才能自如的添加你自己的代码。回调函数的特殊性:
回调函数的创建不是任意的,都应遵循某一特定的结构和参数列表,且必须以这样的参数形式才能被其它函数正确调用。
回调函数的调用是附属于某一特定的函数,而不能单独使用,且还不能通过跟踪父函数来达到跟踪回调函数的目的,而这样做只能导致回调函数已经执行了。因此为了调试或检验回调函数体的代码,必须采用调试窗口当中的Run to Cursor的方
您可能关注的文档
- 资产减值会计研究资产减值会计资产减值会计研究——.doc
- 乌拉盖金河加油站.回复(2)(1).doc
- 最全面房地产营销操作指导52403.doc
- 仿制药场发展现况调查分析.doc
- 各地2012年中考语文考试分类精编7.doc
- 易新变化积JNZ极应对国JNZ际服务贸.doc
- 数学建模优秀不确定环境下供应链生产与订购决策问题(00001).doc
- 浙江房屋建筑面积测算实施细则85574.doc
- 医学影像专业毕业实习典型病例分析报告[2].doc
- 区域经济发展课程.doc
- 2-红河州建筑施工安全生产标准化工地复核评分表(2022年修改版).docx
- 6.锡通项目2018年下半年工作会汇报材料(2018.7.9).docx
- 2018道路工程知识点汇总(新版).docx
- 附件3:月度生产例会安全汇报资料-站台门项目部.docx
- 附件2:广东建工集团2018年度科技成果汇总表.DOC
- 马武停车区、三汇停车区停车位管理系统,0#台账缺量.doc
- 攀成钢委办发〔2015〕19号(党风廉政建设责任考核与追究办法).doc
- 1-红河州建筑工程质量管理标准化复核评分表(2022年修改版).docx
- 中交第三公路工程局第四工程分公司项目经济合同结算管理办法(修订).doc
- 厂站安全操作规程汇编.doc
文档评论(0)