下载此文档

用DirectD实现维漫游.doc


文档分类:通信/电子 | 页数:约17页 举报非法文档有奖
1/17
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/17 下载此文档
文档列表 文档介绍
用Direct3D实现三维漫游
成都理工学院 17# 岳朝伟
朋友,喜欢玩游戏吗?自从计算机诞生以来,人们对计算机游戏就充满了热情,以前对字符型的游戏就乐此不疲,随着时代的发展,人们的要求也越来越高,三维实时游戏和多媒体应用已经成为人们追求的热点。
而Microsoft公司推出的DirectX正是这样一个热点的集合。如果你想抓住时代的潮流,并喜欢迎接挑战的话,本文将是一个很好的去处。同时,本人将以此文讲述用Direct3D保留模式的各种编程技巧和应用,而对于有关基本的DirectX的介绍,请参阅相关的文章。
程序调试环境:Win98、Visual C++,它们都内嵌了DirectX ,同时,为了大家调试的方便和确保程序正常运行,我们将使用最低级的DirectX驱动程序。
Direct3DRM中的基本概念
、Direct3D简介
Direct3D是Microsoft公司推出的DirectX的一部分,它又包括立即模式(Direct3DIM)和保留模式(Direct3DRM)。同时,即使是一个最基本的Direct3D例程也必须包含DirectDraw对象,它们是紧密的结合在一起的,因此,你在编写Direct3D应用程序之前还应先对DirectDraw有一定的认识!Direct3D立即模式是一种较低级的三维模式,因而牵涉到各种复杂的三维图形学的知识,而保留模式是建立在一系列的类调用的基础之上,其中大量的底层操作和运算都被封装在这些类当中,因此适合快速的创建一个三维环境并希望能实时的操作它。本程序就是利用它建立了一个可以用方向键控制的三维漫游程序!
、Direct3DRM中有关图形学的基本内容介绍
Direct3DRM中牵涉到很多三维图形学的东西,这里本人对程序当中将要涉及到的最重要的部分作一简单介绍,让大家对Direct3DRM尽快的有一个感性的认识。
照相机(camera)场景(scene)视点(viewport)框架(frame)的概念及它们之间的关系:(这些概念与一些三维图形软件中的概念相当一致,如3DS ,因此你要是有这方面软件、的使用经验的话,你会更容易的理解这些概念)
框架(frame):它是将各种三维网格托住的支架,同时,它还将灯光,照相机,物体等都虚拟成现实世界中的东西,它们都需要放在某一特定的物理框架上才能被托住,不至于落下来。各个框架之间的关系也非常符合现实世界中的各物体的位置关系,即要想被看见,则它必须在照相机框架的前面,同理,物体要想被灯光照着也必须在灯光框架的前方。各个框架之间可以形成一个树结构,多个框架组合在一起就形成了场景。
场景(scene):是一个根框架,场景中的所有其它框架都应建立在它的基础之上,它是所有其它框架的父框架,而它没有父框架,且一个视点只能有一个场景。
照相机:它是建立在视点当中的用于可视的框架,在现实世界中可以将它想象***的眼睛。同时,可以任意设置场景中的任一框架为照相机,方法有两种,一种是在创建Viewport时直接给定某一框架为Camera,二是用Viewport对象提供的SetCamera()设置,因此,当你需要改变不同的视角时就可以用SetCamera()来调整观察的相对视角,但在适时漫游当中无需这样做,用第一种方法就足够了。
视点:它是用于决定在场景中的什么位置可以看到物体,这里的物体实质上已经变成了框架,而框架当中往往又包含了某一可见的网格。而视点实质上是一个二维矩形区域,且只有沿X,Y的正方向上可见的区域才能被渲染,且所有可见的物体被着色时都将自动变换成照相机坐标,这一点与人眼的作用相对应。
某一框架(在场景当中,且能被Viewport所见)
框架当中的网格
Viewport(视点),Camera附属于Viewport,通过Camera的坐标调整即实现三维漫游同时场景也是相对于Viewport重合的(实质上比Viewport 大)
、回调函数
下面介绍一下Direct3DRM当中经常用到的一类函数----回调函数(CallBackfunction),这种函数必须深入理解才能明白Direct3DRM当中的各个调用过程,以后才能自如的添加你自己的代码。回调函数的特殊性:
回调函数的创建不是任意的,都应遵循某一特定的结构和参数列表,且必须以这样的参数形式才能被其它函数正确调用。
回调函数的调用是附属于某一特定的函数,而不能单独使用,且还不能通过跟踪父函数来达到跟踪回调函数的目的,而这样做只能导致回调函数已经执行了。因此为了调试或检验回调函数体的代码,必须采用调试窗口当中的Run to Cursor的方法来调试,这样才能让调试器跟踪进入回调函数体。
回调函数的深入理解:(只针对设

用DirectD实现维漫游 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数17
  • 收藏数0 收藏
  • 顶次数0
  • 上传人花开一叶
  • 文件大小83 KB
  • 时间2018-10-31
最近更新