专利名称:基于平行空间的光线投射高度场可视化方法
技术领域:
本发明属于高度场可视化(渲染)技术,特别是一种基于平行空间的光线投射高度场可视化方法。
背景技术:
高度场可视化(渲染)技术在地理信息系统、飞行模拟,游戏、影视等工业领域中有广泛的应用价值。按照目前的技术,可以将高度场可视化分为两类基于光栅化的方法和基于光线投射的方法。基于光栅化的方法,是通过将代表高度场的数字高程模型(DEM)数据转化为三角形网格,然后通过某些简化准则来减少三角形网格中三角形数目,最后将简化的三角形网格发送到图形显卡进行渲染。这种方法的一个缺点就是对低分辨率高度场效率较高,高分辨率高度场速度明显下降,另一个缺点是该方法多使用屏幕误差容忍来简化三角形网格数目(I M. Duchaineau, M. ffolinsky, D. E. Sigeti, M. C. Miller, C. Aldrich, and Μ. B. Mineev-weinstein. ROAMing terrain: Real-time optimally adapting meshes. In Proceedings of IEEE Visualization, pages 81-88,1997.),因此得到的图像多为近似的图像(F. Losasso and H. Hoppe. Geometry clipmaps: Terrain rendering using nested regular grids. In Proceedings of ACM SIGGRAPHj pages 769 - 776,2004.), 精度不高,而提高精度往往会大大的降低执行的效率。基于光线投射的技术是通过以视点位置向屏幕上每一个像素处投射一条光线,然后对这条光线使用迭代的方式来查找其与高度场的交点,获取交点处对应的纹理坐标来得到最终的图像。这种方法的缺点就是对于解析率较低的数据来说,它的效率要低于基于光栅化方法,但是,它的一个重要的优点就是由于这种方法是通过对屏幕上每一个像素进行光线投射,很容易实现像素精度小于I像素的值染(无视觉误差)(I. C. Dick, J. Kr ** uge, and R. Westerman. GPU ray-casting for scalable terrain rendering. In Proceedings of EUROGRAPHICS (Area Paper), 2009.
2.Jianxin Luo.,Guiqiang Ni.,Jinsong Jiang.,Yifeng Duan.,Guyu Hu. : Quad—tree atlas ray casting:a gpu based framework for terrain visualization and its applications. In Proceedings of The 24th International Conference on Computer Animation and Social Agents ( CASA 2011).),因此具有很高的图像精度。按照渲染的域来分,高度场可视化方法也可以分为两类平面高度场可视化与球形高度场可视化。平面高度场可视化方法使用平面高度场数据作为输入,最终显示的结果是在平面上。球形高度场的可视化方法是使用球形的数据作为输入,最终显示的结果是在球形域上面。由于在平面上进行高度场可视化比较容易,现有的绝大多数的方法都是平面高度场可视化的方法。而在球面上进行高度场可视化非常难,至今这个问题仍然属于一种没有很好解决的状态,仅有的方法也都是使用基于光栅化的技术(I. Cignoni P., Ganovelli F.,Gobbetti E.,Marton F.,Ponchio F.,Scopigno R. : Planet-sized batched dynamic adaptive meshes (PBDAM). In Proceedings of IEEE Visualization(2003), pp. 147 - 155. 2 . Clasen M. , Hege H. : Terrain rendering using spherical clipmaps. In Proceedings of Eurographics/ IEEE-VGTC Symposium on Visualization (2006).),当前尚未有基于光线投射的技术来实现球形高度场可视化的方法。
发明内容
本发明的目的在于针对球形场景数据集,提供一种基于平行空间的光线投射高度场可视化方法,从而实现快速、高精度的高度场渲染,并获得高质量的图像。实现本发明目的的技术解决方案为一种基于平行空间的光线投射高度场可视化方法,包括以下步骤
第一步,对四叉树节点进行截椎裁剪,挑选出可见四叉树节点,根据可见的四叉树节点,将硬盘上相应的高度场数据块读取到内存中,用户在加载完高度场数据块后构建高度场块边界盒;
第二步,在构建了高度场块边界盒以后,对高度场块进行渲染,具体如下
(O开启显卡的深度测试与前向面裁剪,然后渲染高度场块边界盒,得到边界盒的背面,将边界盒背面的参数坐标 (β’φΜ按照RGB的方式存储到帧缓存中;
(2)开启显卡的深度测试与背向面裁剪,然后渲染边界盒,得到边界盒的正面,将边界盒前面的参数坐标(民识幻按照RGB的方式存储到帧缓存中;
第三步,在片段着色器上面,以硬件插值的世界坐标为当前光线的起点位置,然后使用当前片段的屏幕空间坐标采样背面缓存获取光线结束位置坐标,通过获取的开始与结束位置进行并行空间光线跟踪。本发明与现有技术相比,其具有显著优点一是具有极高的渲染速率。二是具有很高的图像渲染质量。图4和图5给出了在CPU为Intel (R) Core (TM) i7 950 (3.07GHz), 3GB内存,显卡为Nvidia Geforce GTX 570,2GB显存的机器上进行的对比试验结果,视口大小设置为1920*1680。本发明使用I像素屏幕误差,PBDAM为2屏幕像素误差,SCM算法本身没有误差控制。从图4中可以看出[PSRC代表本发明的方法,平行空间空间光线投射算法(Parallel Space Ray Casting)。SCM :Spherical Clipmaps (Clasen 等,2006 年)。 PBDAM :Planet_sized batched dynamic adaptive meshes (Cignoni 2003)],本发明具有极高的精度和速度,在更小的误差中(I像素)可以获得平均73. 25fps的速率;而PBDAM 不仅误差大(2像素),速率却更低(48. 05fps) ;SCM方法尽管也能取得平均72. 22fps的速率,但是它的速率极不稳定,速率下降的极快,而且该算法没有给出误差控制策略,因此,图像质量低。从图5中可以看出[a):本发明的方法。b) PBDAM (Cignoni等,2003年)。c) Spherical Clipmaps (Clasen等,2006年)。],即使在试点很远的地方,本发明算法都可渲染出更多的细节,因此具有极高的图像质量。下面结合附图对本发明作进一步详细描述。
图I是本发明的球形边界盒计算方法。
图2是本发明的两遍边界盒渲染算法。图3是本发明方法的并行空间光线迭代算法的流程图。图4是本发明与同类算法性能比较示意图。图5是本发明与同类算法图像质量比较示意图。
具体实施例方式高度场可视化中多使用二叉树或是四叉树结构来管理高度场块,本发明基于平行空间的光线投射高度场可视化方法使用的是四叉树结构,包括以下步骤
第一步,对四叉树节点进行截椎裁剪,挑选出可见四叉树节点(截椎裁剪为图形学中基础算法,可以在图形编程的书中找到),根据可见的四叉树节点,将磁盘上的相应的高度场数据块读取到内存中。用户程序在加载完高度场数据块后,需要构建边界盒,过程见下一
止 /J/ O图Ia显示了一个球形的高度场块AB,图Ib图形学中现有边界盒计算方法,图Ic 为本发明计算方法。现有的图形学中边界盒计算方法多使用AABB边界盒(如图Ib所示), 这种方法对于球形地形来说边界盒过大,如光线从C到I的行进距离Cl过长,算法迭代中将耗费很长时间。本发明使用如图Ic所示的方法来构建边界盒,可以大大缩短光线行进距离Cl的长度(见图lc),从而加速迭代,该边界盒的构建使用如下公式
d = CR + max H) /(cos γ)- R(I)
其中,d为边界地面到边界盒顶部高度,R为地球的半径,maxH为当前高度场块的最大高度值,7为当前高度场块经度或纬度角的一半(如图lc)。第二步,在构建了高度场块边界盒以后,就可以对高度场块进行渲染了,这里本发明提出一个快速完全运行于GPU上两遍渲染方法,图2显示该两遍渲染方法的过程,具体如下
(O开启显卡的深度测试与前向面裁剪(设置相应的OpenGL标志位),然后渲染边界盒 (由于前向面被裁剪掉,该步骤渲染得到边界盒的背面,图2a中的粗实线部分),将边界盒背面的参数坐标(氏识幻按照RGB的方式存储到帧缓存中。(2)开启显卡的深度测试与背向面裁剪(设置相应的OpenGL标志位),然后渲染边界盒(由于背向面被裁剪掉,该步骤渲染得到边界盒的正面,图2b中粗实线部分),将边界盒前面的参数坐标(民识A)按照RGB的方式存储到帧缓存中。第三步,在片段着色器上面,以硬件插值的世界坐标为当前光线的起点位置;然后使用当前片段的屏幕空间坐标采样背面缓存获取光线结束位置坐标。通过获取的开始与结束位置进行光线跟踪。这里使用本发明提出的并行空间光线跟踪算法。图3为本发明并行空间光线跟踪算法的计算过程,其具体如下。如图3所示,以下步骤中,使用StartAO代表光线的起点位置的对象空间坐标,用 StartAP代表光线起点位置的参数空间坐标,用EndBO代表光线结束位置的对象空间坐标, 用EndBP代表光线结束位置的参数空间坐标,用IterBO代表当前光线迭代位置的对象空间坐标,用IterBP代表光线当前迭代位置的参数空间坐标。I)计算迭代步骤数StepNum,并对光线进行StepNum步迭代。迭代步骤计算使用
权利要求
1.一种基于平行空间的光线投射高度场可视化方法,其特征在于包括以下步骤 第一步,对四叉树节点进行截椎裁剪,挑选出可见四叉树节点,根据可见的四叉树节点,将硬盘上相应的高度场数据块读取到内存中,用户在加载完高度场数据块后构建高度场块边界盒;第二步,在构建了高度场块边界盒以后,对高度场块进行渲染,具体如下(O开启显卡的深度测试与前向面裁剪,然后渲染高度场块边界盒,得到边界盒的背面,将边界盒背面的参数坐标 Ψ崩按照RGB的方式存储到帧缓存中;(2)开启显卡的深度测试与背向面裁剪,然后渲染边界盒,得到边界盒的正面,将边界盒前面的参数坐标(民¢5 按照RGB的方式存储到帧缓存中;第三步,在片段着色器上面,以硬件插值的世界坐标为当前光线的起点位置,然后使用当前片段的屏幕空间坐标采样背面缓存获取光线结束位置坐标,通过获取的开始与结束位置进行并行空间光线跟踪。
2.根据权利要求I所述的基于平行空间的光线投射高度场可视化方法,其特征在于通过如下公式构建高度场块边界盒d -(R + max H.) /(cos γ)- R(I)其中,d为边界地面到边界盒顶部高度,R为地球的半径,maxH为当前高度场块的最大高度值,7为当前高度场块经度或纬度角的一半。
3.根据权利要求I所述的基于平行空间的光线投射高度场可视化方法,其特征在于并行空间光线跟踪的步骤如下1)计算迭代步骤数StepNum,并对光线进行StepNum步迭代,迭代步骤计算使用如下公式
全文摘要
本发明公开了一种基于平行空间的光线投射高度场可视化方法,对四叉树节点进行截椎裁剪,挑选出可见四叉树节点,根据可见的四叉树节点,将硬盘上相应的高度场数据块读取到内存中,用户在加载完高度场数据块后构建高度场块边界盒;在构建了高度场块边界盒以后,对高度场块进行渲染;在片段着色器上面,以硬件插值的世界坐标为当前光线的起点位置,然后使用当前片段的屏幕空间坐标采样背面缓存获取光线结束位置坐标,通过获取的开始与结束位置进行并行空间光线跟踪。本发明具有极高的渲染速率;具有很高的图像渲染质量。
文档编号G06T17/05GK102592312SQ201110447398
公开日2012年7月18日 申请日期2011年12月28日 优先权日2011年12月28日
发明者倪桂强, 罗健欣, 胡谷雨 申请人:中国人民解放军理工大学