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

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

Info

Publication number
CN102592312B
CN102592312B CN201110447398.XA CN201110447398A CN102592312B CN 102592312 B CN102592312 B CN 102592312B CN 201110447398 A CN201110447398 A CN 201110447398A CN 102592312 B CN102592312 B CN 102592312B
Authority
CN
China
Prior art keywords
light
height field
coordinate
current
bounding box
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201110447398.XA
Other languages
English (en)
Other versions
CN102592312A (zh
Inventor
罗健欣
胡谷雨
倪桂强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
PLA University of Science and Technology
Original Assignee
PLA University of Science and Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by PLA University of Science and Technology filed Critical PLA University of Science and Technology
Priority to CN201110447398.XA priority Critical patent/CN102592312B/zh
Publication of CN102592312A publication Critical patent/CN102592312A/zh
Application granted granted Critical
Publication of CN102592312B publication Critical patent/CN102592312B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

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

Description

基于平行空间的光线投射高度场可视化方法
技术领域
本发明属于高度场可视化(渲染)技术,特别是一种基于平行空间的光线投射高度场可视化方法。
背景技术
高度场可视化(渲染)技术在地理信息系统、飞行模拟,游戏、影视等工业领域中有广泛的应用价值。
按照目前的技术,可以将高度场可视化分为两类:基于光栅化的方法和基于光线投射的方法。基于光栅化的方法,是通过将代表高度场的数字高程模型(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)开启显卡的深度测试与前向面裁剪,然后渲染高度场块边界盒,得到边界盒的背面,将边界盒背面的参数坐标                                               
Figure 201110447398X100002DEST_PATH_IMAGE002
按照RGB的方式存储到帧缓存中;
(2)开启显卡的深度测试与背向面裁剪,然后渲染边界盒,得到边界盒的正面,将边界盒前面的参数坐标
Figure 902583DEST_PATH_IMAGE002
按照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),从而加速迭代,该边界盒的构建使用如下公式:
Figure 201110447398X100002DEST_PATH_IMAGE004
                                           (1)
其中,d为边界地面到边界盒顶部高度,R为地球的半径,maxH为当前高度场块的最大高度值,
Figure 201110447398X100002DEST_PATH_IMAGE006
为当前高度场块经度或纬度角的一半(如图1c)。
第二步,在构建了高度场块边界盒以后,就可以对高度场块进行渲染了,这里本发明提出一个快速完全运行于GPU上两遍渲染方法,图2显示该两遍渲染方法的过程,具体如下:
(1)开启显卡的深度测试与前向面裁剪(设置相应的OpenGL标志位),然后渲染边界盒(由于前向面被裁剪掉,该步骤渲染得到边界盒的背面,图2a中的粗实线部分),将边界盒背面的参数坐标
Figure 6543DEST_PATH_IMAGE002
按照RGB的方式存储到帧缓存中。
(2)开启显卡的深度测试与背向面裁剪(设置相应的OpenGL标志位),然后渲染边界盒(由于背向面被裁剪掉,该步骤渲染得到边界盒的正面,图2b中粗实线部分) ,将边界盒前面的参数坐标按照RGB的方式存储到帧缓存中。
第三步,在片段着色器上面,以硬件插值的世界坐标为当前光线的起点位置;然后使用当前片段的屏幕空间坐标采样背面缓存获取光线结束位置坐标。通过获取的开始与结束位置进行光线跟踪。这里使用本发明提出的并行空间光线跟踪算法。图3为本发明并行空间光线跟踪算法的计算过程,其具体如下。
如图3所示,以下步骤中,使用StartAO代表光线的起点位置的对象空间坐标,用StartAP代表光线起点位置的参数空间坐标,用EndBO代表光线结束位置的对象空间坐标,用EndBP代表光线结束位置的参数空间坐标,用IterBO代表当前光线迭代位置的对象空间坐标,用IterBP代表光线当前迭代位置的参数空间坐标。
1)计算迭代步骤数StepNum,并对光线进行StepNum步迭代。迭代步骤计算使用如下公式:
Figure 201110447398X100002DEST_PATH_IMAGE010
Figure 201110447398X100002DEST_PATH_IMAGE012
其中,RowSpan与ColSpan分别为:从当前块边界盒开始位置到边界盒结束位置,光线所跨域的行单元数目与列单元数目,
Figure 201110447398X100002DEST_PATH_IMAGE014
Figure 201110447398X100002DEST_PATH_IMAGE016
分别为开始点与结束点的经度,
Figure 201110447398X100002DEST_PATH_IMAGE018
Figure 201110447398X100002DEST_PATH_IMAGE020
分别为开始点与结束点的纬度坐标,
Figure 201110447398X100002DEST_PATH_IMAGE022
为参数空间内一个纹素跨域的经度大小,为参数空间内一个纹素所跨域的纬度大小。得到了迭代步骤数StepNum,则进行StepNum步迭代,迭代算法如下:
2)从开始位置的对象空间坐标开始(StartAO),将其转换到参数空间得到参数空间坐标(StartAP),转换使用如下公式:
Figure 201110447398X100002DEST_PATH_IMAGE026
Figure 201110447398X100002DEST_PATH_IMAGE030
Figure 201110447398X100002DEST_PATH_IMAGE032
其中,R为地球半径,h为当前求解点P到地球表面的高度值,
Figure 201110447398X100002DEST_PATH_IMAGE034
为P点的经度,为P点的纬度,x、y、z为P的对象空间坐标的三个维度。
3)在参数空间根据纹素单元大小,计算光线行进步长的参数空间增量(
Figure 201110447398X100002DEST_PATH_IMAGE038
或者
Figure 201110447398X100002DEST_PATH_IMAGE040
)。将参数空间增量(
Figure 449211DEST_PATH_IMAGE038
或者
Figure 203541DEST_PATH_IMAGE040
)转换到世界空间,求得对象空间光线行进的步长增量
Figure 201110447398X100002DEST_PATH_IMAGE042
。计算方法如下:
如果StepNum等于RowSpan,则使用如下公式计算
Figure 347077DEST_PATH_IMAGE042
Figure 201110447398X100002DEST_PATH_IMAGE044
             (2)
其中,
Figure DEST_PATH_IMAGE046
,a、b、c的定义如下:
                   (3)
Figure DEST_PATH_IMAGE050
             (4)
Figure DEST_PATH_IMAGE052
                   (5)
否则使用下列公式计算
Figure 769148DEST_PATH_IMAGE042
Figure DEST_PATH_IMAGE054
                        (6)
以上各式中A为光线迭代的开始点,B为光线迭代的当前位置,V为光线行进的对象空间方向向量。
4)通过步长求得当前光线行进的迭代位置的对象空间坐标IterBO,使用公式:
Figure DEST_PATH_IMAGE056
5)将当前迭代位置的对象空间坐标IterBO,转换成参数空间位置坐标IterBP。使用如下公式:
Figure DEST_PATH_IMAGE058
6)对IterBP进行光线高度场相交性判断,如果相交则输出结果。否则,IterNum减一,如果IterNum减到0则退出;否则转步骤2)。

Claims (2)

1.一种基于平行空间的光线投射高度场可视化方法,其特征在于包括以下步骤:
第一步,对四叉树节点进行截椎裁剪,挑选出可见四叉树节点,根据可见的四叉树节点,将硬盘上相应的高度场数据块读取到内存中,用户在加载完高度场数据块后构建高度场块边界盒;
第二步,在构建了高度场块边界盒以后,对高度场块进行渲染,具体如下:
(1)开启显卡的深度测试与前向面裁剪,然后渲染高度场块边界盒,得到边界盒的背面,将边界盒背面的参数坐标
Figure FDA0000435018960000011
按照RGB的方式存储到帧缓存中;
(2)开启显卡的深度测试与背向面裁剪,然后渲染边界盒,得到边界盒的正面,将边界盒前面的参数坐标
Figure FDA0000435018960000012
按照RGB的方式存储到帧缓存中;
第三步,在片段着色器上面,以硬件插值的世界坐标为当前光线的起点位置,然后使用当前片段的屏幕空间坐标采样背面缓存获取光线结束位置坐标,通过获取的开始与结束位置进行并行空间光线跟踪;
所述的并行空间光线跟踪的步骤如下:
1)计算迭代步骤数StepNum,并对光线进行StepNum步迭代,迭代步骤计算使用如下公式:
RowSpan = ( int ) ( endBP · θ - startAP · θ thetaOfACell ) + 1
StepNum=Max(RowSpan,ColSpan)
其中,RowSpan与ColSpan分别为:从当前块边界盒开始位置到边界盒结束位置,光线所跨越的行单元数目与列单元数目,startAP.θ与endBP.θ分别为开始点与结束点的经度,
Figure FDA0000435018960000015
Figure FDA0000435018960000016
分别为开始点与结束点的纬度坐标,thetaOfACell为参数空间内一个纹素跨越的经度大小,phiOfACell为参数空间内一个纹素所跨越的纬度大小,得到了迭代步骤数StepNum,则进行StepNum步迭代;
2)从开始位置的对象空间坐标StartAO开始,将其转换到参数空间得到参数空间坐标StartAP,转换使用如下公式:
Figure FDA0000435018960000021
P . θ = arcsin ( y / x 2 + y 2 + z 2 )
P . h = x 2 + y 2 + z 2 - R
其中,R为地球半径,h为当前求解点P到地球表面的高度值,θ为P点的经度,
Figure FDA0000435018960000024
为P点的纬度,x、y、z为P的对象空间坐标的三个维度;
3)在参数空间根据纹素单元大小,计算光线行进步长的参数空间增量△θ或者
Figure FDA0000435018960000025
将参数空间增量△θ或者
Figure FDA0000435018960000026
转换到世界空间,求得对象空间光线行进的步长增量△t,计算方法如下:
如果StepNum等于RowSpan,则使用如下公式计算△t:
Δ t 1 = - b + Δ 2 a or Δ t 2 = - b - Δ 2 a
其中,△=b2-4ac,a、b、c的定义如下:
a = ( V . → x 2 + V . → z 2 - V . → y 2 tan ( B . θ ) 2 )
b = ( A . x V . → x + A . z V . → z - A . y V . → y tan ( B . θ ) 2 ) · 2
c = ( A . x 2 + A . z 2 - A . y 2 tan ( B . θ ) 2 )
否则使用下列公式计算△t
Figure FDA00004350189600000211
以上各式中A为光线迭代的开始点,B为光线迭代的当前位置,V为光线行进的对象空间方向向量;
4)通过步长求得当前光线行进的迭代位置的对象空间坐标IterBO,使用公式: B ( x , y , z ) = A ( x , y , z ) + V → · Δt ;
5)将当前迭代位置的对象空间坐标IterBO,转换成参数空间位置坐标IterBP,使用如下公式:
Figure FDA0000435018960000031
6)对IterBP进行光线高度场相交性判断,如果相交则输出结果,否则,StepNum减1,如果StepNum减到0则退出,否则转步骤2);
其中,使用StartAO代表光线的起点位置的对象空间坐标,用StartAP代表光线起点位置的参数空间坐标,用EndBO代表光线结束位置的对象空间坐标,用EndBP代表光线结束位置的参数空间坐标,用IterBO代表当前光线迭代位置的对象空间坐标,用IterBP代表光线当前迭代位置的参数空间坐标。
2.根据权利要求1所述的基于平行空间的光线投射高度场可视化方法,其特征在于通过如下公式构建高度场块边界盒:
d=(R+maxH)/(cosγ)-R                (1)
其中,d为边界地面到边界盒顶部高度,R为地球的半径,maxH为当前高度场块的最大高度值,γ为当前高度场块经度或纬度角的一半。
CN201110447398.XA 2011-12-28 2011-12-28 基于平行空间的光线投射高度场可视化方法 Expired - Fee Related CN102592312B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110447398.XA CN102592312B (zh) 2011-12-28 2011-12-28 基于平行空间的光线投射高度场可视化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110447398.XA CN102592312B (zh) 2011-12-28 2011-12-28 基于平行空间的光线投射高度场可视化方法

Publications (2)

Publication Number Publication Date
CN102592312A CN102592312A (zh) 2012-07-18
CN102592312B true CN102592312B (zh) 2014-04-02

Family

ID=46480896

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110447398.XA Expired - Fee Related CN102592312B (zh) 2011-12-28 2011-12-28 基于平行空间的光线投射高度场可视化方法

Country Status (1)

Country Link
CN (1) CN102592312B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106598683B (zh) * 2016-12-23 2020-09-15 武大吉奥信息技术有限公司 一种在gis大场景下模型数据快速加载方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5583975A (en) * 1993-01-22 1996-12-10 Matsushita Electric Industrial Co., Ltd. Image generating apparatus and method of generating an image by parallel processing thread segments
CN101162526A (zh) * 2004-04-29 2008-04-16 清华大学 二次曲面非线性折射和反射场景的实时光线跟踪方法
CN101894390A (zh) * 2010-06-29 2010-11-24 浙江大学 一种非常数折射率介质中的光线跟踪方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8149459B2 (en) * 2009-02-24 2012-04-03 Xerox Corporation Mapping an out-of-gamut color to a surface of a color gamut

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5583975A (en) * 1993-01-22 1996-12-10 Matsushita Electric Industrial Co., Ltd. Image generating apparatus and method of generating an image by parallel processing thread segments
CN101162526A (zh) * 2004-04-29 2008-04-16 清华大学 二次曲面非线性折射和反射场景的实时光线跟踪方法
CN101894390A (zh) * 2010-06-29 2010-11-24 浙江大学 一种非常数折射率介质中的光线跟踪方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
李艳,宫鹏.基于DSM阴影仿真和高度场光线跟踪的影像阴影检测.《遥感学报》.2005,第9卷(第4期),357-362. *

Also Published As

Publication number Publication date
CN102592312A (zh) 2012-07-18

Similar Documents

Publication Publication Date Title
CN105336003B (zh) 结合gpu技术实时流畅绘制出三维地形模型的方法
US8243065B2 (en) Image presentation method and apparatus for 3D navigation and mobile device including the apparatus
WO2017206325A1 (zh) 全局光照的计算方法及装置
Sakamoto et al. Improvement of particle-based volume rendering for visualizing irregular volume data sets
US20080012853A1 (en) Generating mesh from implicit surface
CN107220372A (zh) 一种三维地图线要素注记自动放置方法
KR100959349B1 (ko) 그래픽스 처리 유닛을 이용한 사진트리 기반의 지형 렌더링 방법을 가속화하는 방법
CN115861527A (zh) 实景三维模型的构建方法、装置、电子设备及存储介质
Noguera et al. Volume rendering strategies on mobile devices
Yang et al. An efficient rendering method for large vector data on large terrain models
CN102436673A (zh) 一种大规模室外场景的阴影绘制方法
CN108830929A (zh) 基于数据库的多分辨率地形金字塔模型生成方法及系统
CN102592312B (zh) 基于平行空间的光线投射高度场可视化方法
CN105023288A (zh) 二维矢量实线在三维场景中的视觉误差消除方法
Yang et al. Efficient simplification of large vector maps rendered onto 3D landscapes
Masood et al. A novel method for adaptive terrain rendering using memory-efficient tessellation codes for virtual globes
Koca et al. A hybrid representation for modeling, interactive editing, and real-time visualization of terrains with volumetric features
Amara et al. A GPU Tile-Load-Map architecture for terrain rendering: theory and applications
Ma et al. Rasterization of geometric primitive in graphics based on FPGA
Jie et al. LOD methods of large-scale urban building models by GPU accelerating
Luo et al. Dual‐space ray casting for height field rendering
CN117152334B (zh) 一种基于电波、气象云图大数据实现的三维仿真模拟方法
Xia et al. Real-Time LOD Rendering of Tire Tracks in Dynamic Terrain
Li et al. Research of Real-Time Terrain Rendering on GPU
Masood et al. Efficient adaptive rendering of planetary-scale terrains

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140402

Termination date: 20181228