一种三维场景中实现地形透明的方法与流程

文档序号:14009136阅读:624来源:国知局

本发明涉及空间地理信息系统技术领域,尤其涉及一种三维场景中实现地形透明的方法。



背景技术:

在三维地理信息系统中,加载地形、模型、矢量等图层后,有可能会有图层间重叠导致有些数据被遮挡的情况。比如地下管线,由于其位于地面以下,用户就无法直接在地上观察到。若将视点移动到地面以下,就不能同时查看地上模型与地下管线,无法对比;若将地形隐藏,就失去了空间上的方位参考,效果不真实。因此,需要一种透明化的方法,将地形透明化,通过调节地形透明度,实现地形透明程度的线性变化,使用户在地面以上就可以直接查看并操作地下的模型、矢量数据,同样,用户在漫游到地下时也可以看到地上的物体,为用户提供一种更加直观、方便的决策方式。



技术实现要素:

本发明提供了一种三维场景中实现地形透明的方法,通过调节地形透明度,使视点在地面上方时能够直接看到地面以下的物体,如模型和矢量。

实现地形透明的具体步骤如下:

步骤1)、绘制位于地面以下,被地面遮挡住且想要透过地面看到的物体;

步骤2)、构建地形瓦片节点,并剔除被遮挡的地形瓦片节点;

步骤3)、绘制地形瓦片节点。

其中,所述步骤2)中所述构建地形瓦片节点包括,将地形区域基于四叉树空间划分,得到一系列地形子区域,称为地形瓦片,将单个地形瓦片的影像数据与高程数据构建为地形瓦片节点,节点之间通过四叉树组织,根据视点到地形瓦片节点的距离实现对地形瓦片节点的动态调度。

其中,所述步骤2)中所述剔除被遮挡的地形瓦片节点包括,根据所述地形瓦片节点与视点的位置关系,判断地形瓦片节点是否被遮挡,若该地形瓦片节点位于视点不可见区域,裁剪该地形瓦片节点。

其中,剔除被遮挡的地形瓦片节点包括如下步骤:

计算地形瓦片的控制点位置;

判断该地形瓦片节点是否被遮挡而应被裁剪,若该地形瓦片节点被遮挡,则将其裁剪掉。

其中,所述计算地形瓦片的控制点位置包括如下步骤:

假定地形瓦片中每个网格顶点p(lonp,latp,hp),其中lonp,latp,hp为点p的经纬高坐标表示,则

其中,hp为点p的高程,r为地球长轴半径,o为该地形瓦片中心点,dpo为点p到地形瓦片中心点o的距离,遍历地形瓦片中每个网格顶点,得到fd的最大值,则地形瓦片控制点c的计算公式为:

c=0+n·max(fd)

其中,n为地形瓦片中心点o处垂直地面向外的向量。

其中,所述判断该地形瓦片节点是否被遮挡而应被裁剪,包括:

构建视点到地形瓦片控制点的向量ec,其中dec为视点到地形瓦片控制点的距离;若表达式成立,则该地形瓦片节点位于视点不可见区域,应被裁剪,否则,地形瓦片节点位于视点可见区域,不应被裁剪

其中,所述步骤3)中所述绘制地形瓦片节点具体包括,将地形的源片断颜色与颜色缓冲区中的目标片断颜色按照透明度因子进行叠加,得到应该绘制的地形片断颜色,其中透明度因子按照需要进行设置,范围为0.0到1.0,其中1.0表示不透明,0.0表示全透明,片断颜色按透明度因子叠加计算的方程如下:

cf=f·cs+(1-f)·cd

其中cs是地形颜色,cd是颜色缓冲区中的颜色,cf是需要绘制的地形片断颜色,f为透明度因子,范围为0.0到1.0,其中1.0表示不透明,0.0表示全透明。

本发明的有益成果

通过本发明使得三维场景中的地形可以任意透明度显示,透明度可以调节,当视点在地面以上时也可以看到地下的物体,将地下构造、地下管线布局清楚地置于用户面前,为用户提供了一种简单、方便、直观的方式,有助于用户更好地利用地下空间做出城市规划和辅助决策。同时,本发明提出的针对球面地形的遮挡瓦片剔除算法也可以减少绘制不必要的节点,提高渲染效率。

附图说明

图1为与本发明实施例一致的一种三维场景中实现地形透明的方法的流程图。

具体实施例

如图1所示为与本发明实施例一致的一种实现三维场景中实现地形透明的方法,其包括:

步骤1)、绘制位于地面以下,被地面遮挡住且想要透过地面看到的物体;

步骤2)、构建地形瓦片节点,并剔除被遮挡的地形瓦片节点;

步骤3)、绘制地形瓦片节点。

其中,所述步骤2)中所述构建地形瓦片节点包括,将地形区域基于四叉树空间划分,得到一系列地形子区域,称为地形瓦片,将单个地形瓦片的影像数据与高程数据构建为地形瓦片节点,节点之间通过四叉树组织,根据视点到地形瓦片节点的距离实现对地形瓦片节点的动态调度。

其中,所述步骤2)中所述剔除被遮挡的地形瓦片节点包括,根据所述地形瓦片节点与视点的位置关系,判断地形瓦片节点是否被遮挡,若该地形瓦片节点位于视点不可见区域,裁剪该地形瓦片节点。

其中,剔除被遮挡的地形瓦片节点包括如下步骤:

计算地形瓦片的控制点位置;

判断该地形瓦片节点是否被遮挡而应被裁剪,若该地形瓦片节点被遮挡,则将其裁剪掉。

其中,所述计算地形瓦片的控制点位置包括如下步骤:

假定地形瓦片中每个网格顶点p(lonp,latp,hp),其中lonp,latp,hp为点p的经纬高坐标表示,则

其中,hp为点p的高程,r为地球长轴半径,o为该地形瓦片中心点,dpo为点p到地形瓦片中心点o的距离,遍历地形瓦片中每个网格顶点,得到fd的最大值,则地形瓦片控制点c的计算公式为:

c=0+n·max(fd)

其中,n为地形瓦片中心点o处垂直地面向外的向量。

其中,所述判断该地形瓦片节点是否被遮挡而应被裁剪,包括:

构建视点到地形瓦片控制点的向量ec,其中dec为视点到地形瓦片控制点的距离;若表达式成立,则该地形瓦片节点位于视点不可见区域,应被裁剪,否则,地形瓦片节点位于视点可见区域,不应被裁剪

其中,所述步骤3)中所述绘制地形瓦片节点具体包括,将地形的源片断颜色与颜色缓冲区中的目标片断颜色按照透明度因子进行叠加,得到应该绘制的地形片断颜色,其中透明度因子按照需要进行设置,范围为0.0到1.0,其中1.0表示不透明,0.0表示全透明,片断颜色按透明度因子叠加计算的方程如下:

cf=f·cs+(1-f)·cd

其中cs是地形颜色,cd是颜色缓冲区中的颜色,cf是需要绘制的地形片断颜色,f为透明度因子,范围为0.0到1.0,其中1.0表示不透明,0.0表示全透明。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1