3d图形开发--地形描制与lod

地形绘制比较简单,各种3d引擎实现基本相似,

引入一个高度图,用颜色深浅来表示高度。

依次扫描,根据高度,生成相应的三角形,最终形成地形



鬼怪引擎,将地形场景作为八叉树场影管理的子类进行派生。


采用的是性价比较高的GeoMipMap算法,

即把地形分成相同的块,称为tile。

根据每个tile距离观察者的距离,来决定该块的解析度。


边界处理,由于相邻块可能出现解析度不一,引起地形撕裂,在解析度不同的地方。

边缘部的三角形需要特殊处理


鬼怪还进行了更进一步的优化,会根据相邻的四个tile的解析度,

生成一个map


由于生成tile时,鬼怪采用的是顶点索引方式,如果在map里找到相应的项,

则顶点索引无需要再次生成,直接传给opengl即可,这样极大的提高生成lod的速度


仿真程序截图:(笔者尚未处理边解析度不同的边缘地带,所以地形中会出现撕裂的现象)


从每个块的"北"面边缘,针对解析度不同,进行处理后




posted @ 2013-07-10 21:44  飞天大蟾蜍  阅读(32)  评论(0编辑  收藏  举报