地形的网格可以使用高度图作为数据源生成。高度图可以是位图,可理解成二维数组,地形实际上就是一系列高度不同的网格而已,这样数组中每个元素的索引值刚好可以用来定位不同的网格(x,z),而所储存的值就是网格的高度(y)。
地形的渲染可由四叉树来管理,网格的每个顶点对应四叉树的各个节点,有关四叉树的应用可参考"引擎技术研究之场景管理------四叉树与视椎剔除技术"。
现讨论地形技术的相关应用:
一:地形的生成
1 根据一指定路径的灰度图生成高度图mpBmpHeightMap,并获取mpBmpHeightMap的长度length和宽度width
2 根据length和width创建一顶点指针mpVertexsMap,mpVertexsMap保存地形网格各顶点的位置。调用IDirect3DDevice9的
CreateVertexBuffer((width+1)*(length+1)*sizeof(Vertex),0,
D3DFVF_XYZ|D3DFVF_NORMAL|D3DFVF_TEX1,D3DPOOL_MANAGED,&m_pVB, NULL)
生成顶点缓冲m_pVB,内存大小为(width+1)*(length+1)*sizeof(Vertex),
执行m_pVB->Lock( 0, 0, (void**)&vertex, 0 )锁定顶点缓冲,vertex指向其内存地址。
3 遍历Vertex每个顶点,并计算其位置x, y, z值,其中高度值y可由高度生成函数获取。并将Vertex的每个顶点值传递给mpVertexsMap数组,mpVertexsMap作用在于解除顶点锁定后仍可以使用顶点的位置值。调用IDirect3DDevice9的
CreateIndexBuffer(width*length*2*3*sizeof(DWORD),0,
D3DFMT_INDEX32, D3DPOOL_MANAGED,&m_pIB,NULL)
生成索引缓冲m_pIB,其大小为 width * length*2*3*sizeof(DWORD).
在地形信息更新时执行m_pIB->Lock( 0, 0, (void**)&index, 0 )锁定索引缓冲区,index指向其内存地址。
4 为地形设置纹理,并根据地形网格中外围四个顶点的索引及其位置创建四叉树。
至此,已根据四叉树生成地形网格。
二:地形的剔除
与一般模型的剔除不同,地形剔除技术指的是剔除视椎外的地形区域,即只在视椎内的区域绘制三角形。我们把地形在X,Z平面上划分成均匀大小的16 X 16个块,块的个数可由四叉树的层数决定,本例中层数为4,即有256个节点,每一节点对应一块。每一块包含多个网格,每块的网格数等于地形灰度图像素数除以块数:512 X 512/256=1024,即每块都是32X32的网格。每个网格可划分为两个三角形,即每块有2048个三角形。网格通过顶点索引所组成的三角形描述其所在的一片区域。整个地形用一棵四叉树把这些块组织起来。实时渲染时四叉树负责地形的裁剪,决定哪些块应该绘制,从而得到整个地形要渲染的三角形面片。地形的数据组织如图所示:
分享到:
相关推荐
3D游戏引擎技术是-I'-J综合技术,涉及了计算机图形学、网络、人工智 能等领域,是当前研究的热点之一。 本文将游戏引擎分为底层引擎和高层引擎。底层引擎主要提供内存管理、 资源管理、数学库、日志管理等基本功能。...
技术 3D游戏引擎技术是 I" J综合技术 涉及了计算机图形学 网络 人工智 能等领域 是当前研究的热点之一 本文将游戏引擎分为底层引擎和高层引擎 底层引擎主要提供内存管理 资源管理 数学库 日志管理等基本...
,介绍了3D游戏引擎 的发展与加速绘制三维游戏场景及全局光照渲染的相关技术。然后, 研究了如何利用三角形网格为三维游戏场景中的几何体进行建模。通 过结合光学中的视域衰减模型,提出了一个基于视域衰减的LOD地 ...
CryEngine地形分析 Cryengine优化的出彩之处主要有以下几个方面: 1材质排序:从PerfHUD的结果来看,Cryengine对DXAPI的调用是最为简洁的,如此多的材质,却只有如此简洁的状态切换过程,不能不令人赞叹,相比之下...
结合Android平台下3D游戏引擎的现状,阐述了游戏引擎结构的演变,对Android平台主流引擎进行了对比和分析,并对引擎中涉及场景渲染的包括游戏地形渲染、碰撞检测、遮挡剔除及可见性裁剪在内的多项关键技术进行了简介...
本书旨在为当今的三维游戏引擎技术提供一个综合的解决方案,使读者尽快地进入开发者角色,了解整个游戏的开发过程并初步具备游戏引擎开发能力。 本书适合作为高等院校相关专业的教学参考书,同时可供相关技术...
本书旨在为当今的三维游戏引擎技术提供一个综合的解决方案,使读者尽快地进入开发者角色,了解整个游戏的开发过程并初步具备游戏引擎开发能力。 本书适合作为高等院校相关专业的教学参考书,同时可供相关技术...
分析了0SGearth 引擎和Android平台的优势,重点对移动终端实现海量地理信息数据的三维可视化和使用OSGearth渲染引擎构建三维地球模型的关键技术进行了研究。最后,利用0SGearth引擎构建三维地球场景,成功移植到移动...
装甲车行驶中车体姿态的仿真是模拟驾驶训练系统的关键技术.为实现不同地形下基于虚拟现实的装甲车辆驾驶模拟,本文提出了基于虚拟现实的装甲车辆运动仿真方法.首先,构建装甲车辆的结构、外形和真实的地形,采用第一...
特点:该平台集成了国内领先的Uniscope三维GIS引擎技术,覆盖全域的高分辨率卫星影像(CBERS-02B、SPOT5)、较高精度的地形高程数据、导航用道路和POI等矢量信息,符合保密规定的政府用户还可以享受航空影像数据...
然而在虚拟场景中,复杂的地形、大量的植被和建筑使需要渲染的数据量大得惊人,故渲染速度成为了虚拟现实技术的一大瓶颈.现有的研究并不能很好的提升虚幻引擎中的渲染速度,还会出现“突越”和对视野外模型剔除效果...