当前位置: 首页 > 专利查询>罗健欣专利>正文

一种等值线加速渲染方法技术

技术编号:8271864 阅读:239 留言:0更新日期:2013-01-31 04:17
本发明专利技术公开了一种等值线加速渲染方法,以一维纹理为中介,生成二维等值线纹理,通过二维纹理贴图来获得等值线图像。本发明专利技术等值线的绘制时间有了极大的提高,等值线的绘制时间与等值线的线条数量无关;生成的等值线图像质量很高,与传统的方式相比需要人工修补的工作量大为减小。

【技术实现步骤摘要】
本专利技术属于等值线加速渲染技术,特别是一种等值线加速渲染方法
技术介绍
等值线通常定义为制图对象某一数量指标值相等的各点连成的平滑曲线,用以表示制图对象的数量、特征等属性,包括等高线、等温线、等压线、等震线、等磁力线、势线等等。等值线渲染技术在气象、国土、测绘、石油、采矿、农林、水利等诸多领域中有广泛而且重要的应用价值。传统等值线生成方式如下根据数据集中各个节点的已知高度值拟合成三维光滑曲面Z = f (X,y),z坐标表示高度值。若用高度值为Z。的平面与该曲面相截,则全部交线在X,y平面的投影即构成了高度值Z。的等值线图。实际操作时,传统方式主要是采用基于 插值的方式搜索等高线。图I展示了传统的基于插值的等值线搜索方式的示例。图I中的网格代表某高度场数据集,网格中的每个节点表示一个数据点。网格右侧和下边的数字标识了数据点在数据各方向的位置。a、b、c、d是数据集中的四个数据点。在以a、b、c、d为顶点的四边形中,先搜索ab边若等目标高值处于a、b点的等高值范围内,则在ab边上标记处等高值的位置并插值。否则,搜索be边。按照此顺序,继续搜索Cd边、da边。四条边都搜索结束后,如果至少得到两个插值点,连接搜索得到的插值点形成一段等值线线段,说明在四边形abed内成功搜索到目标等值线线段,否则说明目标等值线不经过此四边形。假设以搜索一条网格边为基本运算,对于一个n*n的数据集来说,搜索一条等值线需要的网格边搜索次数为4*(n-l)2。每搜索一条等值线都完成同样的搜索过程,绘制一幅包含m条等值线的等值线图的搜索次数为4*m*(n-l)2。可见,绘制等值线图像的耗时随着等值线线条数量的增加呈线性增长。现有的等值线搜索的插值方案包括距离幂倒数权法,Kriging法,三角剖分法,和最小曲率法等(上述方案都是GIS学科中的基本知识,可以在相关教科书中查到),各种方案都有各自的优缺点。但总的来说,这些方法都主要着重解决提升等值线图像的视觉效果,都未涉及到绘制等值线图像的效率提升。尽管目前已有一些等值线搜索的优化方案致力于提升等值线搜索效率,例如CONREC 算法(Paul Bourke, Contouring Algorithm. Byte Magazine, July 1987. http://paulbourke. net/papers/conrec/)。但这些优化方案仍是基于插值的方式来绘制等值线,性能提升有限;而且CONREC算法得到的图像断点现象较严重,需要人工修补的工作量较大;有些商业软件,如MATLAB,南方CASS等,也提供了绘制等值线的工具箱,但仅仅局限于小规模数据(数据点规模小于3000万)的处理而且速度很慢;当需要在超大规模数据中绘制高精度的等值线图像时,这些工具箱或软件都无法胜任。
技术实现思路
本专利技术的目的在于针对高度场数据集,提供一种等值线加速渲染方法,实现快速、精确的等值线渲染,获得高质量的等值线图像。实现本专利技术目的的技术解决方案为一种等值线加速渲染方法,步骤如下第一步,创建一维纹理,步骤如下I)根据要绘制等值线的等高值范围及步进值,得到要显示的等值线等高值集合H,H = {X,h2, . . . hj step =(i ^ 2) (I)其中n代表需要绘制的等值线数目;{hj是等差数列,St印是公差,代表相邻等闻值的步进值,hi表不要显不的最小等闻值,hn表不要显不的最大等闻值;2)创建一维纹理图像数组,数组元素为RGBA格式的颜色值,一维纹理图像数组的长度L根据η的大小确定,L值满足以下条件a、L彡2η :不同等值线之间有一定间隔N,不会相互影响;b、L = 2\ t是正整数纹理大小始终为2的指数,这是OpenGL规定的纹理数组长度;3)给一维纹理图像数组的所有元素赋值,各位置元素值的方式如下首先,确定纹理图像数组中各非透明颜色值元素之间的间隔N,透明颜色值指的是(O, O, O, O)格式的RGBA颜色值;本文档来自技高网
...

【技术保护点】
一种等值线加速渲染方法,其特征在于步骤如下:第一步,创建一维纹理,步骤如下:1)根据要绘制等值线的等高值范围及步进值,得到要显示的等值线等高值集合H,H={h1,h2,...hn}step=hi?hi?1(i≥2)(1)其中:n代表需要绘制的等值线数目;{hi}是等差数列,step是公差,代表相邻等高值的步进值,h1表示要显示的最小等高值,hn表示要显示的最大等高值;2)创建一维纹理图像数组,数组元素为RGBA格式的颜色值,一维纹理图像数组的长度L根据n的大小确定,L值满足以下条件:a、L≥2n:不同等值线之间有一定间隔N,不会相互影响;b、L=2t,t是正整数:纹理大小始终为2的指数,这是OpenGL规定的纹理数组长度;3)给一维纹理图像数组的所有元素赋值,各位置元素值的方式如下:首先,确定纹理图像数组中各非透明颜色值元素之间的间隔N,透明颜色值指的是(0,0,0,0)格式的RGBA颜色值;如果L%n=0成立,则N=N?1(3)其次,给所有元素位置为i*N?1的元素赋非透明颜色值,其中:1≤i≤n,非透明颜色值为(r,g,b,255),其中:0≤r,g,b≤255,且r+g+b>0;其他所有位置的元素赋透明颜色值(0,0,0,0);第二步,归一化高度值坐标,生成等值线二维纹理:利用高度常数据集M得到辅助数据集M′,其中,M中数据的高度值分量和M′中的Z轴分量相等,对M′中所有数据的Z轴分量做归一化处理;以数据集M′中数据顶点坐标绘制高度场,并贴上在第一步创建的一维纹理图像,纹理的坐标以z=0为参考平面自动生成,高度场在xoy平面的投影即是等值线二维纹理图像;第三步,绘制等值线,以三角形为基本图元,以数据集M中所有数据点的坐标(Plon,Plat,Pelev)为顶点坐标绘制高度场,开启混合功能,并贴上二维纹理RenderTex;在进行二维纹理贴图时,每个顶点P的纹理坐标(Ps,Pt)计算方式为: 假设整个数据集中,x方向的数据长度为PxLen,y方向的数据长度为PyLen,则:Ps=PxPxLenPt=PyPyLen---(10)贴图完成后,在各条等值线的适当位置标上相应的等高值,即可完成等值线的渲染。FDA00002113777200011.jpg...

【技术特征摘要】
1.一种等值线加速渲染方法,其特征在于步骤如下 第一步,创建一维纹理,步骤如下 1)根据要绘制等值线的等高值范围及步进值,得到要显示的等值线等高值集合H,H=Ih1, h2, . . . hj step = W1 (i 彡 2) (I) 其中n代表需要绘制的等值线数目;{hj是等差数列,step是公差,代表相邻等高值的步进值,hi表不要显不的最小等闻值,hn表不要显不的最大等闻值; 2)创建一维纹理图像数组,数组元素为RGBA格式的颜色值,一维纹理图像数组的长度L根据η的大小确定,L值满足以下条件 a、L> 2η :不同等值线之间有一定间隔N,不会相互影响; b、L= 2% t是正整数纹理大小始终为2的指数,这是OpenGL规定的纹理数组长度; 3)给一维纹理图像数组的所有元素赋值,各位置元素值的方式如下 首先,确定纹理图像数组中各非透明颜色值元素之间的间隔N,透明颜色值指的是(O, O, O, O)格式的RGBA颜色值;2.根据权利要求I所述的等值线加速渲染方法,其特征在于第二步中的归一化高度值坐标具体过程为 将由所有DEM数据点构成的数据集称之为高度场数据集,假设原始的高度场数据集为M,M中每个数据点P的坐标为(Plm,Plat,Pelev),其中Plm表示经度坐标,Plat表示纬度坐标,Pelev 表示高程坐标; 根据高度场数据集M建立三维坐标系统z_xoy,M每个高度场数据点P的在三维系统中的坐标为(Px,Py, Pz),Px, Py表示点P在数据集中X和Y方向的位置,Pz表示该点的等高值,= ,所有的P (Px,Py,Pz)点构成辅助数据集^ ;对^中的所有数据点高度值做归一化处理 1)确定等高值归一化平面长度Ltomal3....

【专利技术属性】
技术研发人员:罗健欣吴凡唐斌倪桂强
申请(专利权)人:罗健欣吴凡唐斌倪桂强
类型:发明
国别省市:

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

1