首页> 中国专利> 基于平行空间的光线投射高度场可视化方法

基于平行空间的光线投射高度场可视化方法

摘要

本发明公开了一种基于平行空间的光线投射高度场可视化方法,对四叉树节点进行截椎裁剪,挑选出可见四叉树节点,根据可见的四叉树节点,将硬盘上相应的高度场数据块读取到内存中,用户在加载完高度场数据块后构建高度场块边界盒;在构建了高度场块边界盒以后,对高度场块进行渲染;在片段着色器上面,以硬件插值的世界坐标为当前光线的起点位置,然后使用当前片段的屏幕空间坐标采样背面缓存获取光线结束位置坐标,通过获取的开始与结束位置进行并行空间光线跟踪。本发明具有极高的渲染速率;具有很高的图像渲染质量。

著录项

  • 公开/公告号CN102592312A

    专利类型发明专利

  • 公开/公告日2012-07-18

    原文格式PDF

  • 申请/专利权人 中国人民解放军理工大学;

    申请/专利号CN201110447398.X

  • 发明设计人 罗健欣;胡谷雨;倪桂强;

    申请日2011-12-28

  • 分类号G06T17/05;G06T15/00;

  • 代理机构南京理工大学专利中心;

  • 代理人唐代盛

  • 地址 210007 江苏省南京市海福巷1号

  • 入库时间 2023-12-18 06:17:12

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-12-13

    未缴年费专利权终止 IPC(主分类):G06T17/05 授权公告日:20140402 终止日期:20181228 申请日:20111228

    专利权的终止

  • 2014-04-02

    授权

    授权

  • 2012-09-19

    实质审查的生效 IPC(主分类):G06T17/05 申请日:20111228

    实质审查的生效

  • 2012-07-18

    公开

    公开

说明书

技术领域

本发明属于高度场可视化(渲染)技术,特别是一种基于平行空间的光线投射高度场可视化方法。

背景技术

高度场可视化(渲染)技术在地理信息系统、飞行模拟,游戏、影视等工业领域中有广泛的应用价值。

按照目前的技术,可以将高度场可视化分为两类:基于光栅化的方法和基于光线投射的方法。基于光栅化的方法,是通过将代表高度场的数字高程模型(DEM)数据转化为三角形网格,然后通过某些简化准则来减少三角形网格中三角形数目,最后将简化的三角形网格发送到图形显卡进行渲染。这种方法的一个缺点就是对低分辨率高度场效率较高,高分辨率高度场速度明显下降,另一个缺点是该方法多使用屏幕误差容忍来简化三角形网格数目(1 M. Duchaineau, M.Wolinsky, D. E. Sigeti, M. C. Miller, C. Aldrich, and M. 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 SIGGRAPH, pages 769–776, 2004.),精度不高,而提高精度往往会大大的降低执行的效率。基于光线投射的技术是通过以视点位置向屏幕上每一个像素处投射一条光线,然后对这条光线使用迭代的方式来查找其与高度场的交点,获取交点处对应的纹理坐标来得到最终的图像。这种方法的缺点就是对于解析率较低的数据来说,它的效率要低于基于光栅化方法,但是,它的一个重要的优点就是由于这种方法是通过对屏幕上每一个像素进行光线投射,很容易实现像素精度小于1像素的渲染(无视觉误差)(1. 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).),因此具有很高的图像精度。

按照渲染的域来分,高度场可视化方法也可以分为两类:平面高度场可视化与球形高度场可视化。平面高度场可视化方法使用平面高度场数据作为输入,最终显示的结果是在平面上。球形高度场的可视化方法是使用球形的数据作为输入,最终显示的结果是在球形域上面。由于在平面上进行高度场可视化比较容易,现有的绝大多数的方法都是平面高度场可视化的方法。而在球面上进行高度场可视化非常难,至今这个问题仍然属于一种没有很好解决的状态,仅有的方法也都是使用基于光栅化的技术(1. 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). ),当前尚未有基于光线投射的技术来实现球形高度场可视化的方法。

发明内容

本发明的目的在于针对球形场景数据集,提供一种基于平行空间的光线投射高度场可视化方法,从而实现快速、高精度的高度场渲染,并获得高质量的图像。

实现本发明目的的技术解决方案为:一种基于平行空间的光线投射高度场可视化方法,包括以下步骤:

第一步,对四叉树节点进行截椎裁剪,挑选出可见四叉树节点,根据可见的四叉树节点,将硬盘上相应的高度场数据块读取到内存中,用户在加载完高度场数据块后构建高度场块边界盒;

第二步,在构建了高度场块边界盒以后,对高度场块进行渲染,具体如下:

(1)开启显卡的深度测试与前向面裁剪,然后渲染高度场块边界盒,得到边界盒的背面,将边界盒背面的参数坐标                                               按照RGB的方式存储到帧缓存中;

(2)开启显卡的深度测试与背向面裁剪,然后渲染边界盒,得到边界盒的正面,将边界盒前面的参数坐标按照RGB的方式存储到帧缓存中;

第三步,在片段着色器上面,以硬件插值的世界坐标为当前光线的起点位置,然后使用当前片段的屏幕空间坐标采样背面缓存获取光线结束位置坐标,通过获取的开始与结束位置进行并行空间光线跟踪。

本发明与现有技术相比,其具有显著优点:一是具有极高的渲染速率。二是具有很高的图像渲染质量。图4和图5给出了在CPU为Intel(R) Core(TM) i7 950 (3.07GHz) , 3GB 内存, 显卡为 Nvidia Geforce GTX 570,2GB显存的机器上进行的对比试验结果,视口大小设置为1920*1680。本发明使用1像素屏幕误差,PBDAM为2屏幕像素误差,SCM算法本身没有误差控制。从图4中可以看出[PSRC代表本发明的方法,平行空间空间光线投射算法(Parallel Space Ray Casting)。SCM:Spherical Clipmaps (Clasen等,2006年)。PBDAM:Planet-sized batched dynamic adaptive meshes (Cignoni  2003)],本发明具有极高的精度和速度,在更小的误差中(1像素)可以获得平均73.25fps的速率;而PBDAM不仅误差大(2像素),速率却更低(48.05fps);SCM方法尽管也能取得平均72.22fps的速率,但是它的速率极不稳定,速率下降的极快,而且该算法没有给出误差控制策略,因此,图像质量低。从图5中可以看出[a):本发明的方法。b) PBDAM  (Cignoni等,2003年)。c) Spherical Clipmaps (Clasen等,2006年)。],即使在试点很远的地方,本发明算法都可渲染出更多的细节,因此具有极高的图像质量。

下面结合附图对本发明作进一步详细描述。

附图说明

图1是本发明的球形边界盒计算方法。

图2是本发明的两遍边界盒渲染算法。

图3是本发明方法的并行空间光线迭代算法的流程图。

图 4是本发明与同类算法性能比较示意图。

图5是本发明与同类算法图像质量比较示意图。

具体实施方式

高度场可视化中多使用二叉树或是四叉树结构来管理高度场块,本发明基于平行空间的光线投射高度场可视化方法使用的是四叉树结构,包括以下步骤:

第一步,对四叉树节点进行截椎裁剪,挑选出可见四叉树节点(截椎裁剪为图形学中基础算法,可以在图形编程的书中找到),根据可见的四叉树节点,将磁盘上的相应的高度场数据块读取到内存中。用户程序在加载完高度场数据块后,需要构建边界盒,过程见下一步。

图1a显示了一个球形的高度场块AB,图1b图形学中现有边界盒计算方法,图1c为本发明计算方法。现有的图形学中边界盒计算方法多使用AABB边界盒(如图1b所示),这种方法对于球形地形来说边界盒过大,如光线从C到I的行进距离CI过长,算法迭代中将耗费很长时间。本发明使用如图1c所示的方法来构建边界盒,可以大大缩短光线行进距离CI的长度(见图1c),从而加速迭代,该边界盒的构建使用如下公式:

                                           (1)

其中,d为边界地面到边界盒顶部高度,R为地球的半径,maxH为当前高度场块的最大高度值,为当前高度场块经度或纬度角的一半(如图1c)。

第二步,在构建了高度场块边界盒以后,就可以对高度场块进行渲染了,这里本发明提出一个快速完全运行于GPU上两遍渲染方法,图2显示该两遍渲染方法的过程,具体如下:

(1)开启显卡的深度测试与前向面裁剪(设置相应的OpenGL标志位),然后渲染边界盒(由于前向面被裁剪掉,该步骤渲染得到边界盒的背面,图2a中的粗实线部分),将边界盒背面的参数坐标按照RGB的方式存储到帧缓存中。

(2)开启显卡的深度测试与背向面裁剪(设置相应的OpenGL标志位),然后渲染边界盒(由于背向面被裁剪掉,该步骤渲染得到边界盒的正面,图2b中粗实线部分) ,将边界盒前面的参数坐标按照RGB的方式存储到帧缓存中。

第三步,在片段着色器上面,以硬件插值的世界坐标为当前光线的起点位置;然后使用当前片段的屏幕空间坐标采样背面缓存获取光线结束位置坐标。通过获取的开始与结束位置进行光线跟踪。这里使用本发明提出的并行空间光线跟踪算法。图3为本发明并行空间光线跟踪算法的计算过程,其具体如下。

如图3所示,以下步骤中,使用StartAO代表光线的起点位置的对象空间坐标,用StartAP代表光线起点位置的参数空间坐标,用EndBO代表光线结束位置的对象空间坐标,用EndBP代表光线结束位置的参数空间坐标,用IterBO代表当前光线迭代位置的对象空间坐标,用IterBP代表光线当前迭代位置的参数空间坐标。

1)计算迭代步骤数StepNum,并对光线进行StepNum步迭代。迭代步骤计算使用如下公式:

其中,RowSpan与ColSpan分别为:从当前块边界盒开始位置到边界盒结束位置,光线所跨域的行单元数目与列单元数目,分别为开始点与结束点的经度,分别为开始点与结束点的纬度坐标,为参数空间内一个纹素跨域的经度大小,为参数空间内一个纹素所跨域的纬度大小。得到了迭代步骤数StepNum,则进行StepNum步迭代,迭代算法如下:

2)从开始位置的对象空间坐标开始(StartAO),将其转换到参数空间得到参数空间坐标(StartAP),转换使用如下公式:

其中,R为地球半径,h为当前求解点P到地球表面的高度值,为P点的经度,为P点的纬度,x、y、z为P的对象空间坐标的三个维度。

3)在参数空间根据纹素单元大小,计算光线行进步长的参数空间增量(或者)。将参数空间增量(或者)转换到世界空间,求得对象空间光线行进的步长增量。计算方法如下:

如果StepNum等于RowSpan,则使用如下公式计算

             (2)

其中,,a、b、c的定义如下:

                   (3)

             (4)

                   (5)

否则使用下列公式计算

                        (6)

以上各式中A为光线迭代的开始点,B为光线迭代的当前位置,V为光线行进的对象空间方向向量。

4)通过步长求得当前光线行进的迭代位置的对象空间坐标IterBO,使用公式:

5)将当前迭代位置的对象空间坐标IterBO,转换成参数空间位置坐标IterBP。使用如下公式:

6)对IterBP进行光线高度场相交性判断,如果相交则输出结果。否则,IterNum减一,如果IterNum减到0则退出;否则转步骤2)。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号