基于directx三维地形绘制和三维拾取方法探究

基于directx三维地形绘制和三维拾取方法探究

ID:31776901

大小:56.64 KB

页数:6页

时间:2019-01-18

基于directx三维地形绘制和三维拾取方法探究_第1页
基于directx三维地形绘制和三维拾取方法探究_第2页
基于directx三维地形绘制和三维拾取方法探究_第3页
基于directx三维地形绘制和三维拾取方法探究_第4页
基于directx三维地形绘制和三维拾取方法探究_第5页
资源描述:

《基于directx三维地形绘制和三维拾取方法探究》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、基于DirectX三维地形绘制和三维拾取方法探究摘要:随着图形处理技术及显卡处理能力等的日益成熟,三维游戏已经成为游戏市场的主导。主要介绍基于Microsoft的一套功能丰富的底层API—DirectX的最基本的三维地形绘制过程以及三维世界中拾取的研究,为游戏学习者提供一种易于理解的方式来进行3D技术中难点的学习。关键词:游戏三维地形三维拾取中图分类号:TP391.9文献标识码:A文章编号:1007-3973(2013)006-101-021引言随着游戏玩家经验的积累和科技体验、审美能力的提高,传统的二维世界游戏已经无法满足人们享受娱乐的

2、需求,游戏为了适应市场的需要,必须变革。从Directxl.O〜DirectxlO的发展史可以窥见游戏世界的进化历程:从最初Directxl.0仅能够做的直接读取硬件信息,开发的游戏能实现对二维图像进行加速,Directx2.0中D3D部分的雏形到Directx7.0支持T&L技术,使得CPU从繁重的位置、灯光等计算中解放出来,使得没有高速的CPU也同样能流畅的跑起3D游戏直至DirectxlO统一了渲染架构,使得GPU更加高效,3D世界进一步拟真化。DirectX作为当今游戏底层API的引导者这一格局,也明示了3D游戏才是市场发展的趋势

3、这一事实。因此,游戏学习者必须对3D游戏有所涉及。了解三维游戏场景中最基本的地形绘制,有利于学习者对三维游戏有直观的认识。拾取算法的研究,有助于游戏学习者对3D游戏的深入了解。2三维地形绘制游戏场景通常会架设在起伏的山坡,绿地,沙滩,雪地,树林等自然环境中,这样的场景可增加游戏的逼真度和吸引力。友好精美的游戏场景无疑会使得游戏在竞争激烈的市场中获得第一眼优势。2.1地形高度图的创建、访问和修改通过地理学习可知,一般用灰度图来表示地理位置上的海拔,颜色越深的就表示海拔越高,灰度图是高度图的一种表示类型。因此,进行三维地形绘制,我们使用一种最

4、简单的方法,通过使用图形处理应用程序Photoshop来进行高度图(指定灰度图类型)的绘制,通过颜色的设置来表示你想要的地形起伏。高度图绘制完成之后,将文件保存为8位raw文件,因为raw文件连续存储了图像中以字节为单位的每个像素的灰度值,因此,高度只能在【0,255]区间内变化,对于普通地形,这个值足够平滑,若这个区间不足以表达我们要的地形,可以在高度图数据加载到程序中时对其进行一个比例变化,重新分配一个精度更高的类型来存储高度值。使用地形类(Terrain)中定义的readRawFile成员函数对高度图文件进行读取。使用类中提供的两个

5、函数getHeightEntry和setHeightEntry函数对高度图中的值进行访问和修改。2.2创建地形的几何信息以及为每个顶点建立索引一般灰度图创建时灰度图形与将要创建的地形的尺寸是相同的。高度图绘制完毕,就开始创建地形的几何图形,即对高度图中的每个值创建对应的顶点。Terrian类中通过其构造函数来完成创建过程。将要创建的几何地形图的基本信息通过构造函数的参数列表传递,参数包括已创建的raw文件字符串文件名,每行、每列的顶点数以及每个单元间距以及比例变化值,通过这些参数,还可以计算出地形的其他变量,如每行的单元数,每列单元数,地

6、形几何图形的宽度和高度,总的顶点数以及其中三角形面片数目等。创建好地形的几何图形之后,就需要计算几何地形中的各个顶点具体的坐标值。可以假设已创建的地形几何图为一个方格棋盘,左上角的第一个顶点作为start,即第一个点,然后每隔每个单元间距,根据输入的每行每列的顶点数逐行生成顶点,一直到达右下角的end即最后一个顶点为止。Terrian类使用的computerVertices成员函数就是根据上述过程进行计算,通过计算就可以获得每个顶点的x和z坐标的定义,而每个顶点的y坐标的值这要根据所加载的高度图数据结构中的相应项来获得。计算机要使用图形中

7、的每一个顶点,就必须为其添加索引,因此,需要为创建的地形图的每一个顶点创建索引。为计算三角形栅格各顶点的索引,只需要从上述所说的start顶点至end,依次遍历每一个地形几何图中的方格,并计算构成每个方格的三角形面片的定点索引。对于一个第i行、第j列的方格中的两三角形面片的顶点,通过通用公式:AABC={i*每行顶点数+j,i*每行顶点数+j+l,(i+1)*每行顶点数+j}ACBD={(i+1)*每行顶点数+j,i*每行顶点数+j+l,(i+1)*每行顶点数+j+l}即可求得每个顶点的索引值。Terrian类中的computerindi

8、ces成员函数就是基于这样的算法为几何地形中的每个顶点添加的索引值。2.3对地形进行纹理映射和光照处理为了使创建的地形更加细致真实,需为创建的地形图增加纹理和光照。Terrian类的纹理映射方

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。