一种基于分形层次树的过程式地形快速绘制方法技术

技术编号:2947202 阅读:197 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种基于分形层次树的过程式地形快速绘制方法。该方法包括建立地形的分形层次树结构、根据阈值获取afBm子树、根据误差精度估计结点的生成级数、对绘制结点进行五队列的优化调度和通过GPU生成与绘制分形块五个步骤。通过记录地形的分形信息,构造出分形层次树结构afBm-tree。它是对原始地形的一种逼近表示,通过调整生成阈值,可获得不同的生成精度与压缩率。afBm-tree可在绘制时生成视点依赖的地形网格,跳过庞大的地形层次细节模型数据的创建过程。与传统算法相比,同样数据大小的afBm-tree覆盖范围更广,多级调度代价更低,在单CPU的机器上更有优势。本发明专利技术可应用于地理信息仿真、虚拟场景漫游、游戏引擎等领域中。

【技术实现步骤摘要】

本专利技术涉及一般的地形数据处理或产生,尤其涉及。
技术介绍
分形最早由法国数学家Mandelbrot提出,可参考,Mandelbrot,B.B.On the Geometry of Homogeneous Turbulence,with Stress on theFractal Dimension of Iso-Surfaces of Scalars.Journal of Fluid Mechanics.1975,72(2)401-416。这是一门以非规则几何形态为研究对象的几何学,具有无限以及统计自相似性的特点,它用递归算法使复杂的景物可用简单的规则来生成。因为自然界中普遍存在自相似的不规则现象,所以分形为研究者提供了一个很好地描述自然现象的数学模型。分维布朗运动(fractional Brownian motion,fBm)作为一种分形噪声,可以有效地表示地形、云彩、雪花等具有随机自相似性的自然景物。fBm函数计算复杂度很高,因此需要对fBm进行简化,减少计算量。早在1982年,Fournier等人提出了一个迭代剖分算法来近似fBm,称作中点置换方法(Midpoint Displacement),可以生成具有自相似性的地形,可参考,Alain Fournier,Don Fussell and Loren Carpenter.Computer Rendering ofStochastic Models.Communications of the ACM.1982,25(6)371-384。他们首先构造了基于线段的一维fBm模型,然后推广到二维的地形,从而生成山脉的分形细节。该方法把fBm的计算复杂度从O(nlog(n))降为线性,计算简单。但中点置换不是一个严格的fBm算法,统计特性不是稳态的,会降低生成地形的真实感。Musgrave等人从fBm的频域角度进行分析,提出了带限噪声累积算法(Summing Band-Limited Noises),利用Perlin噪声作为基函数生成地形网格。该方法生成地形的统计特性是稳态的,因此生成质量比中点置换算法好,但计算复杂度为O(nlog(n)),比中点置换算法大,比较耗时。可参考F.Kenton Musgrave,Craig E.Kolb and Robert S.Mace.The Synthesis and Renderingof Eroded Fractal Terrains.Computer Graphics.Jul.1989,23(3)41-50。为了更精确地模拟自然界地形,Kaplan等人提出了扩展的自相似性(extended self-similar,ESS)概念,可参考Lance M.Kaplan andC.-C.Jay Kuo.Texture Roughness Analysis and Synthesis via Extended Self-Similar(ESS)Model.IEEE Transactions on Pattern Analysis and Machine Intelligence.Nov.1995,17(11)1043-1056。并以此为基础,给出一个一般的fBm模型,称作渐进式分维布朗运动(asymptotic fBm,afBm),允许粗糙度因子随着采样间距变化而变化,从而生成地形的起伏程度也会随之变化。以上介绍的方法都是研究如何离线式生成地形,并没有考虑地形绘制问题。过程式的地形绘制方法是把地形生成和绘制相结合,在绘制过程生成视点依赖的地形网格,实现地形的按需生成和绘制。Losasso和Hoppe把地形几何看作纹理,提出了Geometry Clipmap技术,把地形分成中空的矩形网格进行绘制,可参考Frank Losasso and Hugues Hoppe.Geometry ClipmapsTerrainRendering Using Nested Regular Grids.Proceedings of Siggraph 2004.2004,769-776.。他们也通过分形噪声生成地形的细节信息,但是对整个地形仅使用一组分形参数,因此生成的地形难以令人满意。
技术实现思路
针对现有技术的不足,本专利技术的目的在于提供,有效地逼近原始地形模型,可以快速绘制大规模的地形场景,并且数据量较小。为实现上述的目的,本专利技术采用的技术方案如下1)建立地形的分形层次树结构给定一个地形模型,对地形进行四叉剖分,建立四叉树结构,每个结点对应一块地形区域,记录着分形信息,包含afBm信息与重要的高度值,这种分形层次树结构称作afBm-tree;2)根据阈值获取afBm子树在绘制前,根据用户设定的阈值,从afBm-tree中抽取出afBm子树,阈值表示原始地形和生成地形之间允许的差异。3)根据误差精度估计结点的生成级数首先根据用户设定的随机概率值,确定分形盒的最小、最大高度值;然后计算累加高度值在屏幕上的投影误差;接着根据该投影误差,确定结点的生成级数;4)对绘制结点进行五队列的优化调度首先初始化五队列;然后在绘制的每一帧,调整五个队列中所有结点;接着分别对Qg和Qm中的结点交替进行处理,直到Qr中的结点达到所需要的绘制要求;5)通过GPU生成与绘制分形块首先通过GPU的象素着色器生成分形块,然后通过GPU的顶点着色器构造地形网格。对绘制结点进行五队列的优化调度的方法可以是首先把afBm-tree的根结点送入Qr,并清空其余的队列;然后在绘制的每一帧,调整五队列中所有的结点;接着取出Qg中最高优先级的结点,并移入到Qr或Qp中,它的子结点按照同样方法进行处理;随后取出Qm中最低优先级的结点,并移入到Qr或qp中;对Qg和Qm中的结点交替进行处理,直到Qr中的结点达到所需要的绘制要求。通过GPU生成与绘制分形块的方法可以是首先通过GPU的象素着色器生成分形块,并使用三张纹理,分别是上一级别的分形块纹理、掩码表和高斯噪声图纹理;然后通过GPU的顶点着色器构造地形网格,从分形块中取出顶点的高度值,并从连接模板中确定顶点的二维位置,组合成实际的三维空间点,最后构造出绘制地形网格并进行地形的绘制。本专利技术与
技术介绍
相比具有的有益效果是本专利技术通过记录原始地形的分形信息,构造出分形层次树结构,称作afBm-tree。afBm-tree是对地形的一种逼近表示,通过调整其生成阈值,可获得不同的生成精度与压缩率。通过afBm-tree,可在绘制时生成视点依赖的地形网格,从而跳过庞大的地形层次细节模型数据的创建过程。与传统的地形绘制算法相比,同样数据大小的afBm-tree覆盖的范围更广,可以有效降低多级调度的代价,在单CPU的机器上更有优势。此外,afBm-tree应用领域更广,允许用户进行编辑,就可以直接用于绘制。本专利技术可应用于地理信息仿真、虚拟场景漫游、游戏引擎等领域中。附图说明下面结合附图和实施例对本专利技术作进一步说明。图1是本专利技术方法的流程图;图2是分形层次树afBm-tree的构造过程;图3是根据误差精度估计结点的生成级数;图4是分形块的生成与绘制的流程图。具体实施例方式本专利技术提出的,包括建立地形的分形层次树结构、根据阈值获取afBm子树、根据本文档来自技高网
...

【技术保护点】
一种基于分形层次树的过程式地形快速绘制方法,其特征在于包括以下五个步骤:1)建立地形的分形层次树结构:给定一个地形模型,对地形进行四叉剖分,建立四叉树结构,每个结点对应一块地形区域,记录着分形信息,包含afBm信息与重要的高度值,这 种分形层次树结构称作afBm-tree;2)根据阈值获取afBm子树:在绘制前,根据用户设定的阈值,从afBm-tree中抽取出afBm子树,阈值表示原始地形和生成地形之间允许的差异。3)根据误差精度估计结点的生成级数:首先 根据用户设定的随机概率值,确定分形盒的最小、最大高度值;然后计算累加高度值在屏幕上的投影误差;接着根据该投影误差,确定结点的生成级数;4)对绘制结点进行五队列的优化调度:首先初始化五队列;然后在绘制的每一帧,调整五个队列中所有结点; 接着分别对Q↓[g]和Q↓[m]中的结点交替进行处理,直到Q↓[r]中的结点达到所需要的绘制要求;5)通过GPU生成与绘制分形块:首先通过GPU的象素着色器生成分形块,然后通过GPU的顶点着色器构造地形网格。

【技术特征摘要】

【专利技术属性】
技术研发人员:华炜鲍虎军张淮声何治
申请(专利权)人:杭州镭星科技有限公司
类型:发明
国别省市:86[中国|杭州]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利