用于三维模拟显示的三维体自动生成方法

文档序号:6647134阅读:221来源:国知局
专利名称:用于三维模拟显示的三维体自动生成方法
技术领域
本发明涉及三维模拟显示技术领域,尤其涉及一种用于三维模拟显示的三维体自动生成方法。
背景技术
三维模拟显示技术致力于在电脑上重现生活中的现实世界,并且能够提取这个世界的有效信息,实现统计、分析、预测功能,以支持人类的决策活动。
现有的三维场景制作技术,一般使用两种方式来实现三维信息的表现一种是使用矢量数据自动生成三维场景,通过简单的如用不同颜色的单色线面对象来表达道路以及绿地信息等,复杂一点的还提供根据例如楼宇的矢量数据加楼层属性字段生成矢量楼块,或者再加上贴纹理等,但显示效果往往是简单的几何体堆砌,仿真效果差。传统的二维模拟显示技术中多用此方法提供数据的三维浏览功能;另一种是使用建模方法虚拟仿真,由人工在3DMax等建模工具中创建虚拟世界所要表现的各种景物,然后导入系统,实现三维景观的表现。这种方法虽然显示效果非常逼真,但此类场景的对象需要大量的人工建模,工程工作量巨大,效果依赖于建模工作人员的素质,并且当三维属性数据发生变化时,显示效果无法同步变化。
另一方面,在实现三维模拟显示的过程中,还有一个必须重视的问题,即如何在提供逼真的虚拟效果的同时,还能以抽象的地理信息对象来操作、访问这个虚拟世界的对象。例如,在一个通过三维模拟显示的场景中有一条有着三维效果的铁路,我们能看到那高出地面的立体的路基、铁轨,甚至枕木,但在一个铁路规划决策系统的应用开发中,我们又希望能以一条矢量线对象来看待这条铁路,以便统计铁路长度,进行缓冲带分析,实时改变规划铁路线等。
因此,如何在保证显示效果的基础上,提供一种三维体的自动快速生成的方法,同时还保留有显示对象的有关矢量特征,已经成为业内亟待解决的问题。

发明内容
本发明所要解决的技术问题在于提供一种用于三维模拟显示的三维体自动生成方法,利用矢量数据,快速、逼真的生成三维场景,同时还保留有显示对象的有关矢量特征。
本发明提供一种用于三维模拟显示的三维体自动生成方法,包括如下步骤确定欲显示的三维体的矢量线数据及其横截面数据;根据矢量线数据,在矢量线上选取放置横截面的位置;根据横截面数据,在所述选取的位置上放置横截面;将每相邻的两个横截面之间的对应点以直线相连,生成三维曲面。
其中,所述确定欲显示的三维体的矢量线数据步骤,可以是根据所述三维体的原始矢量线确定。
优选的,所述确定欲显示的三维体的矢量线数据步骤,可以是将所述三维体的原始矢量线的拐点处生成光滑弧线来取代原来的夹角后确定的。
其中,所述确定欲显示的三维体的横截面数据步骤,包括确定纹理数据文件、横截面上的点数以及各点的坐标。
其中,所述在矢量线上选取放置横截面的位置步骤,可以是选择在矢量线的每一个拐点上放置一个横截面。
优选的,所述在矢量线上选取放置横截面的位置步骤,可以是在矢量线的每个所述拐点处生成的光滑弧线上选择多个点来放置横截面。
其中,所述在选取的位置上放置横截面步骤,横截面的放置方向为横截面的法向量等于放置点两边线段向量的平均值。
其中,所述将三维体的原始矢量线的拐点处生成光滑弧线来取代原来的夹角步骤,可以是通过计算所述夹角的内切圆,以切点间的圆弧作为所述光滑弧线。
优选的,所述将三维体的原始矢量线的拐点处生成光滑弧线来取代原来的夹角步骤,可以通过如下步骤完成在所述拐点(O)的两边线段上分别选取第一点(P1)与第二点(P2);将由所述第一点(P1)与拐点(O)构成的第一线段(P1,O)均分为N段,得到均分点a1,a2...ai...a(N-1);将由所述第二点(P2)与拐点(O)构成的第二线段(O,P2)均分为N段,得到均分点b1,b2...bi...b(N-1);将所述第一点(P1)分别与第二线段(O,P2)上的各均分点b1,b2...bi...b(N-1)相连得到第一点均分线段组(P1,b1)...(P1,bi)...(P1,b(N-1));将所述第二点(P2)分别与第一线段(P1,O)上的各均分点a1,a2...ai...a(N-1)相连得到第二点均分线段组(P2,a1)...(P2,ai)...(P2,a(N-1));将所述第一点均分线段组(P1,b1)...(P1,bi)...(P1,b(N-1))与第二点均分线段组(P1,b1)...(P1,bi)...(P1,b(N-1))的对应交点(m1,m2...mi...m(N-1))与所述第一点(P1)与第二点(P2)作为连续点生成逼近的光滑曲线。
优选的,本发明所述确定欲显示的三维体的矢量线数据及其横截面数据步骤,可以进一步包括确定欲显示的三维体沿线匹配物数据;所述将每相邻的两个横截面之间的对应点以直线相连,生成三维曲面步骤,进一步包括根据沿线匹配物数据,在矢量线沿线生成三维沿线匹配物。
其中,所述确定沿线匹配物数据步骤,可以包括确定沿线匹配物的模型数据文件、可视距离、匹配物间距、匹配物在横截面上的位置坐标,还可以进一步包括确定沿线匹配物的方向性以及缩放比。
其中,所述确定沿线匹配物模型数据文件步骤,可以包括根据匹配物的可视距离,提供不同精细度的模型数据。
优选的,本发明可以进一步包括步骤根据所述横截面数据与沿线匹配物数据,配置匹配模型文件,在匹配模型文件中描述有横截面纹理数据文件、横截面上的点数以及各点的坐标、沿线匹配物的模型数据文件、可视距离、匹配物间距、匹配物在横截面上的位置坐标、沿线匹配物的方向性以及缩放比;然后查询所述匹配模型文件,根据横截面数据将每相邻的两个横截面之间的对应点以直线相连,生成三维曲面,根据沿线匹配物数据,在矢量线沿线生成三维沿线匹配物。
本发明利用矢量线数据的横截面匹配技术,融合了矢量几何方式与人工建模方式生成三维体的优点,实现了利用矢量数据快速自动生成三维场景,并且有着接近精细建模场景的逼真虚拟效果,一方面使现有的大量二维矢量数据在三维显示中得到了最大限度的再次利用,保留了显示对象的所有矢量特征,另一方面又节省了传统三维场景显示所需要的大量建模和预处理时间,使三维场景实时更新变为可能。


图1为根据本发明的实施例所述的自动生成三维体的方法流程示意图;图2为一条简单公路的矢量线数据示例图;图3为利用本发明所述的实施例方法生成的简单公路的三维模拟显示示意图;图4为根据本发明的实施例生成拐点处的光滑弧线的示意图;图5为利用对原始矢量线进行圆弧处理后确定的公路矢量线生成的三维公路示意图;图6为根据匹配线模型生成的带有沿线匹配物的复杂场景三维效果示意图。
具体实施例方式
如图1所示,为根据本发明的实施例所述的自动生成三维体的方法流程示意图,首先确定欲显示的三维体的矢量线数据及其横截面数据(步骤101);然后根据矢量线数据,在矢量线上选取放置横截面的位置(步骤102);根据横截面数据,在所述选取的位置上放置横截面(步骤103);将每相邻的两个横截面之间的对应点以直线相连,生成三维曲面(步骤104)。
在步骤101中,首先需要确定的是欲生成显示的三维体的矢量线与横截面数据。如图2所示,为一条简单公路的矢量线数据示例图。图中,矢量线20即为一条公路的原始矢量线。对于地理信息数据的用户与生产者来说,他们手中积累有大量的类似矢量数据,利用本发明,可以使这些矢量数据在三维显示中展现出新的价值。
如表1所示,为生成如图2所示的简单公路所需的横截面数据示例。
表1

横截面数据信息可以保存在匹配模型文本中,它包括了横截面上各点的坐标和三维体沿线重复的纹理等信息,括号内为注释。
可以设想,如果矢量线是条直线,那么,横截面匹配问题则很容易实现,在直线两头放两个横截面,然后简单的把每个横截面的顶点和另一个横截面相同位置的顶点连起来即可得到一个四边形构成的三维曲面,把每个四边形剖成两个三角形即可得到适合三维显示的三角网。
因此,如步骤102所述,在解决了两个横截面间构造截面间曲面的问题后,横截面匹配问题就被简化为寻找合适的位置来放置横截面了。
如步骤103所述,简单的做法中,可以在矢量线每个拐点201、202、203处放一个横截面,横截面法向量等于拐点两边线段向量的平均值。
这样,如步骤104所述,就可以将每相邻的两个横截面之间的对应点以直线相连,生成三维曲面了。
如图3所示,即为利用本发明所述的实施例方法生成的简单公路的三维模拟显示示意图。
但是,显然这种方法的矢量线拐弯处的效果还不能令人满意,我们需要一种方法来求出两条直线夹角处的光滑弧线。
一个容易想到的方法是求夹角的内切圆,圆和两直线的切点间的圆弧即为所需光滑弧线,但这实际实现中,由于求内切圆的算法太复杂,而且涉及角度计算,运算量往往比较大。
本发明提供了另一种生成光滑弧线的方法,如图4所示,假设两条直线在拐角处分别有点P1和P2,拐角顶点为O,要求出从P1到P2的光滑弧线。把线段(P1,O)均分为N段,得到点a1,a2...ai...a(N-1);把线段(O,P2)均分N段,得到点b1,b2...bi...b(N-1);则(P1,bi)连线和(P2,ai)连线的交点为mi,其中i=1到(N-1),得到m1,m2...mi,m(N-1);这样,(P1,m1,m2...mi...m(N-1),P2)连续点构成了所需的逼近光滑弧线。
这种求弧方法实际上是简单的均分点和直线相交问题,算法简单,运算效率高。并且该算法支持指定弧线尺寸,即P1、P2距拐点O的距离,支持指定弧线逼近线段数量,很适合三维显示时根据观察点距离,调整显示质量,即逼近线段数量。
如图5所示,即为利用对原始矢量线进行圆弧处理后确定的公路矢量线生成的三维公路示意图。
另外,为了进一步生成复杂的三维场景,本发明还可以进一步在确定矢量数据的时候,一并确定沿线的各种匹配物,例如公路旁边的电线杆。
可以使用一个匹配模型文本,对所需要的匹配物数据进行描述,例如,在匹配线模型文本中可以包括如下信息1)匹配模型库特征字符串例如VRMap_atch_Model;2)版本号例如3;
3)纹理数据文件名(应与模型文件在同一路径下)例如C-8.BMP;4)横截面点数N5)N个点坐标6)沿线匹配物种数7)沿线匹配物的数据文件名(应与模型文件在同一路径下)例如,路灯.3ds;8)沿线匹配物有无方向性例如,0代表无方向,>0表示其Z轴和矢量线同向,<0表示Z轴和矢量线反向;9)沿线匹配物缩放比10)可视距离11)沿线匹配物的间距12)一个横截面上匹配点个数M;13)M个点坐标(表示沿线匹配物在横截面上的位置)14)两端闭合坡长15)段口下沉高度16)匹配线纹理亮度17)匹配物两端空余量。
上述模型文件可以根据实际情况而随时进行对描述的修改,不仅十分方便,而且可读性非常强。
同时,用于矢量线匹配的数据文件,例如纹理数据以及沿线匹配物的模型数据等,都可以进行不同精细度模型的替换。例如,为了表现一棵树,可以指定一个3000面的精细度的树模型在观察者距离50米以内时显示,再指定一个100面的中级精度的树模型,在50到500米距离时显示,再指定一个4面的简单模型,在500米以外时显示。如此,由于观察者任一时刻只会在少量对象附近,其他大部分对象的显示都可以用少面的简单模型显示,从而大幅度降低了渲染负担。
这样,利用矢量线沿线微观形态的重复性的特点,对于模型文件存储的横截面信息,对于简单如管道对象的表现,匹配线模型可以仅存储构成管道的那个圆形横截面的点信息,匹配上具体的管道矢量线后,呈现出来的就是一条沿着该矢量线的、有实际直径的、能感应虚拟三维场景中光照阴影的立体实体;对于复杂场景的表现,可以通过对模型文件的扩展描述,增加对沿线立体物体的匹配,可以实现复杂的沿线景观的匹配显示。
如图6所示,图中的高架铁路,包括它的桥墩、桥体、电线杆均为同一条矢量线60自动匹配生成的。
权利要求
1.一种用于三维模拟显示的三维体自动生成方法,其特征在于,包括如下步骤确定欲显示的三维体的矢量线数据及其横截面数据;根据矢量线数据,在矢量线上选取放置横截面的位置;根据横截面数据,在所述选取的位置上放置横截面;将每相邻的两个横截面之间的对应点以直线相连,生成三维曲面。
2.如权利要求1所述的方法,其特征在于,所述确定欲显示的三维体的矢量线数据步骤,是根据所述三维体的原始矢量线确定。
3.如权利要求1所述的方法,其特征在于,所述确定欲显示的三维体的矢量线数据步骤,是将所述三维体的原始矢量线的拐点处生成光滑弧线来取代原来的夹角后确定的。
4.如权利要求1所述的方法,其特征在于,所述确定欲显示的三维体的横截面数据步骤,包括确定纹理数据文件、横截面上的点数以及各点的坐标。
5.如权利要求1所述的方法,其特征在于,所述在矢量线上选取放置横截面的位置步骤,是选择在矢量线的每一个拐点上放置一个横截面。
6.如权利要求3所述的方法,其特征在于,所述在矢量线上选取放置横截面的位置步骤,是在矢量线的每个所述拐点处生成的光滑弧线上选择多个点来放置横截面。
7.如权利要求1所述的方法,其特征在于,所述在选取的位置上放置横截面步骤,横截面的放置方向为横截面的法向量等于放置点两边线段向量的平均值。
8.如权利要求3所述的方法,其特征在于,所述将三维体的原始矢量线的拐点处生成光滑弧线来取代原来的夹角步骤,是通过计算所述夹角的内切圆,以切点间的圆弧作为所述光滑弧线。
9.如权利要求3所述的方法,其特征在于,所述将三维体的原始矢量线的拐点处生成光滑弧线来取代原来的夹角步骤,包括如下步骤在所述拐点(O)的两边线段上分别选取第一点(P1)与第二点(P2);将由所述第一点(P1)与拐点(O)构成的第一线段(P1,O)均分为N段,得到均分点a1,a2...ai...a(N-1);将由所述第二点(P2)与拐点(O)构成的第二线段(O,P2)均分为N段,得到均分点b1,b2...bi...b(N-1);将所述第一点(P1)分别与第二线段(O,P2)上的各均分点b1,b2...bi...b(N-1)相连得到第一点均分线段组(P1,b1)...(P1,bi)...(P1,b(N-1));将所述第二点(P2)分别与第一线段(P1,O)上的各均分点a1,a2...ai...a(N-1)相连得到第二点均分线段组(P2,a1)...(P2,ai)...(P2,a(N-1));将所述第一点均分线段组(P1,b1)...(P1,bi)...(P1,b(N-1))与第二点均分线段组(P1,b1)...(P1,bi)...(P1,b(N-1))的对应交点(m1,m2...mi...m(N-1))与所述第一点(P1)与第二点(P2)作为连续点生成逼近的光滑曲线。
10.如权利要求1所述的方法,其特征在于,所述确定欲显示的三维体的矢量线数据及其横截面数据步骤,进一步包括确定欲显示的三维体沿线匹配物数据;所述将每相邻的两个横截面之间的对应点以直线相连,生成三维曲面步骤,进一步包括根据沿线匹配物数据,在矢量线沿线生成三维沿线匹配物。
11.如权利要求10所述的方法,其特征在于,所述确定沿线匹配物数据步骤,包括确定沿线匹配物的模型数据文件、可视距离、匹配物间距、匹配物在横截面上的位置坐标。
12.如权利要求11所述的方法,其特征在于,所述确定沿线匹配物数据步骤,进一步包括确定沿线匹配物的方向性以及缩放比。
13.如权利要求11所述的方法,其特征在于,所述确定沿线匹配物模型数据文件步骤,包括根据匹配物的可视距离,提供不同精细度的模型数据。
14.如权利要求10所述的方法,其特征在于,所述确定欲显示的三维体沿线匹配物数据步骤,进一步包括根据所述横截面数据与沿线匹配物数据,配置匹配模型文件,在匹配模型文件中描述有横截面纹理数据文件、横截面上的点数以及各点的坐标、沿线匹配物的模型数据文件、可视距离、匹配物间距、匹配物在横截面上的位置坐标、沿线匹配物的方向性以及缩放比;所述将每相邻的两个横截面之间的对应点以直线相连,生成三维曲面步骤,包括查询所述匹配模型文件,根据横截面数据将每相邻的两个横截面之间的对应点以直线相连,生成三维曲面,根据沿线匹配物数据,在矢量线沿线生成三维沿线匹配物。
全文摘要
本发明公开了一种用于三维模拟显示的三维体自动生成方法,首先确定欲显示的三维体的矢量线数据及其横截面数据;然后根据矢量线数据,在矢量线上选取放置横截面的位置;根据横截面数据,在所述选取的位置上放置横截面;再将每相邻的两个横截面之间的对应点以直线相连,生成三维曲面。本发明利用矢量线数据的横截面匹配技术,实现了利用矢量数据快速自动生成三维场景,并且有着接近精细建模场景的逼真虚拟效果,节省了传统三维场景显示所需要的大量建模和预处理时间,使三维场景实时更新变为可能。
文档编号G06T15/00GK1936965SQ20051010349
公开日2007年3月28日 申请日期2005年9月19日 优先权日2005年9月19日
发明者孙庆文 申请人:北京灵图软件技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1