一种基于xna的无限大地形生成方法①

一种基于xna的无限大地形生成方法①

ID:22651897

大小:51.50 KB

页数:5页

时间:2018-10-30

一种基于xna的无限大地形生成方法①_第1页
一种基于xna的无限大地形生成方法①_第2页
一种基于xna的无限大地形生成方法①_第3页
一种基于xna的无限大地形生成方法①_第4页
一种基于xna的无限大地形生成方法①_第5页
资源描述:

《一种基于xna的无限大地形生成方法①》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、一种基于XNA的无限大地形生成方法①摘要:三维真实感地形是虚拟场景中的基础部分,其绘制的速度与质量是构建三维虚拟场景成败的关键。利用VS2008和c#语言,以XNA为工具,用中点偏移算法生成的值与高程数据之间建立相应的映射关系,建立标准的地形高程数据组快速生成了三维X格地形。在渲染过程中利用本方法可以模拟随海拔高度而各异的生态现象。实践证明,用该方法能在普通的PC机上生成有真实感的无限大地形,并能方便的应用到虚拟现实系统中。  关键词:无限大地形XNA中点偏移算法LOD多分辨率纹理HLSL分形  :P208:A:1672-3791(2011)01(b)-

2、0040-01    地形作为虚拟环境中非常重要的可视化内容,在模拟飞行器的视景仿真、三维游戏、GIS等系统中占有很高的比重,因此,对地形生成方法的研究具有重要的意义。近些年来,许多人用多种方法对3D地形模拟进行了研究。考虑到在一些虚拟仿真中(比如飞行模拟),对地形的形态真实感、生成的控制方便程度、渲染的实时性、地形的范围大小有较高的要求;微软刚推出的专业跨平台整合型游戏开发套件——XNA具有开发周期短、相对难度小、易于维护的特点并且是基于C#语言的。笔者给出了一种基于XNA的无限大地形的生成方法。    1无限大地形构造的基本方法  1.1生成无限大地

3、形的基本原理  无限大地形在在现实中是不存在的,它构建的基本思想是先生成一块能左右和上下都拼接起来的地形然后对这个地形进行3×3块或5×5块(块数按需求定)的拼接,这里的无限大并不是地形块的无限大拼结。  无限大的实现是通过让摄像机始终在红色区域内活动,而地形块又是一样的所以玩家没有感觉是在中心块内活动。无限大地形的生成大体可以分为以下几步:高度点的生成;LOD的实现;纹理处理;相机设置;地形渲染。  1.2高度点的生成  高度点的通过中点偏移算法生成的,中点偏移法中生成的任何一个点都是用周围的4个点取平均再加上一个随机高度求得,算法规定超出边界的点进行

4、取摸运算。算法本身的特性可以保证地形边界左右是连续的,上下也是连续的,所以它可以通过拼接形成无限大地形。利用这个算法生成点后,按照生成无限大地形的方法,把这个地形拼接成一个大的地形再对地形的顶点进行处理。比如:加上在不同的高度显示不同的生态的信息、生成顶点法线等,再利用顶点缓冲器和动态索引缓冲器(为了做LOD)把顶点信息发送到显存。  1.3LOD的实现  LOD是一种符合人的视觉特性的技术,离人眼近的物体细节显示高,离人眼远的物体细节显示低。本文使用依赖相机的实时优化X格技术,这个算法是从覆盖整个屏幕的两个三角形开始。在算法的迭代中,计算每个三角形离开

5、相机的距离并判断它是否需要分割成两个三角形,最后,获得一个最匹配当前相机位置的X格。只要相机的位置或旋转发生改变就需要更新这个地形X格,要对相机的新状态保持优化,每个三角形还需要判断是否需要和邻近的三角形合并以再次减少细节层次。本方法是通过更改顶点的索引来实现对三角形的分割和合并。由于顶点索引频繁更改,所以这里采用XNA动态索引缓冲器来改变显存中的内容。  1.4纹理处理  使用XNA中的load函数读取模型中要用到的纹理(比如草地、雪等),为了能实现多分辨率纹理贴图,需要把纹理的格式转换为DDS(多级金字塔式纹理)或者通过编写XNA中的内容管道生成多分

6、辨率纹理贴图,不然将为发生像素闪动。当显卡使用DDS或者通过编写XNA中的内容管道处理过的纹理贴图时,显卡会自动根据用户在hlsl中设置的纹理取样器的选择合适纹理。  1.5相机设置  在第一步中实现了地形的拼接。这一步可以让相机始终在中心块内以给玩家的感觉地形是无限大的。使相机的坐标小于中间地形的宽度和长度。  1.6地形渲染  经过测试程序运行在CPUCore(TM)22.33GHZ,内存2G,显卡NVIDIAGeForce8600GT的环境下,细节度为256×256×9的无限大地形的Fps能达到64FPS。    2结语  文章对基于XNA实现无限

7、大地形做了介绍。可以生成形态各异的不同地形,避免人工几何造型的繁重工作。使用3D纹理映射能够模拟随高度变化的生态现象。地形是无限大的,避免了超出地形。是在微软的XNA框架下开发,能使程序员开发更加轻松简单。地形的生成易于控制和使用。实践证明,在普通的PC机上能生成实时性的无限大地形并能方便的应用到虚拟仿真中去。并且有可以生成形态各异的不同地形,避免人工几何造型的繁重工作;使用3D纹理映射能够模拟随高度变化的生态现象;地形是无限大的,避免了超出地形;是在微软的XNA框架下开发,能使程序员开发更加轻松简单;在当前普通的PC平台上能满足实时性要求;地形的生成易

8、于控制和使用的优点。地形场景中仅含有高度信息和纹理,但是在实际应用中还需包含地表

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

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

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