一种基于可视点和RBF插值的悬垂曲面建模方法与流程

文档序号:29364129发布日期:2022-03-23 03:14阅读:160来源:国知局
一种基于可视点和RBF插值的悬垂曲面建模方法与流程
一种基于可视点和rbf插值的悬垂曲面建模方法
技术领域
1.本发明涉及曲面建模技术领域,具体涉及一种基于可视点和rbf插值的悬垂曲面建模方法。


背景技术:

2.悬垂曲面又叫覆盖曲面,是一种利用物理力学特性模拟覆盖在指定元素表面且具备悬垂效果曲面的三维建模方法。悬垂曲面的应用非常广泛,比如:地形模拟、织物悬垂形态模拟、悬垂形机械零件和建筑造型的设计及建模等等。
3.目前公开的悬垂曲面建模方法中,大多基于全局光栅图像的深度值重建悬垂曲面的方法来实现。这种方法首先识别出试样的边缘轮廓,然后从全景光栅图像中提取等高线信息,对光栅条纹进行定位,计算出光栅条纹所在位置的空间高度,从而得到试样上光栅取样点的三维坐标数值,再利用双三次贝赛尔曲面重建试样悬垂形态的三维图像。当等高线过梳时,悬垂曲面会带有层次感,效果不佳;实际应用时,往往需要配合均衡化算法,对曲面进行二次平滑操作,才能得到理想的效果。
4.另外,现有的bentley、犀牛等三维设计软件中也存在悬垂曲面建模功能,其曲面建模效果较好,但悬垂曲面建模算法不公开。
5.因此,需要提出一种新的悬垂曲面建模方法,以便能够一次性创建出效果较好的平滑悬垂曲面。


技术实现要素:

6.为了对现有悬垂曲面建模方法等高线过梳时,悬垂曲面会带有层次感,效果不佳,需对曲面进行二次平滑操作,才能得到理想的效果的问题,本发明提供了一种基于可视点和rbf插值的悬垂曲面建模方法,能够一次性创建出效果较好的平滑悬垂曲面。
7.为实现上述目的,本发明实施例提供了如下的技术方案:
8.第一方面,在本发明提供的一个实施例中,提供了一种基于可视点和rbf插值的悬垂曲面建模方法,包括以下步骤:
9.获取悬垂曲面建模的覆盖元素和基准平面,对覆盖元素和基准平面进行网格划分,得到三维场景网格模型;
10.提取悬垂方向下三维场景网格模型中的可视顶点,将可视点作为悬垂曲面建模的输入参数;
11.利用rbf插值算法计算悬垂曲面的拟合方程,根据悬垂曲面建模的输入参数,拟合悬垂曲面。
12.在本发明提供的一些实施例中,所述覆盖元素为被悬垂曲面覆盖的元素,所述悬垂方向为所述基准平面的平面法向量方向的反方向,所述基准平面的范围即悬垂曲面建模计算范围。
13.在本发明提供的一些实施例中,所述基准平面为自定义的一个矩形基准平面。
14.在本发明提供的一些实施例中,对覆盖元素和基准平面进行网格划分,得到的三维场景网格模型为三维场景的三角片网格模型;所述网格划分为将覆盖元素和基准平面拆分为诸多三角形。
15.在本发明提供的一些实施例中,所述覆盖元素采用delaunay三角剖分算法进行网格划分,所述基准平面采用均匀拆分法进行网格划分,所述基准平面拆分为若干个矩形块,每个矩形块按对角线拆分为两个三角形。
16.在本发明提供的一些实施例中,悬垂方向下三维场景网格模型中的可视顶点提取的方法为:沿悬垂方向获取三维场景网格模型中所有三角片上可视顶点数据。
17.在本发明提供的一些实施例中,所述可视顶点的计算方法,包括以下步骤:
18.获取三维场景网格模型中所有三角片的悬垂方向和法向量,剔除悬垂方向和法向量同向的背面三角片,获得背面三角片剔除后的网格模型;
19.遍历背面三角片剔除后的网格模型,获取背面三角片剔除后的网格模型中所有三角片的顶点,获得顶点数据集;
20.根据获得的所述顶点数据集,基于opengl中的深度测试算法计算获得可视点集合。
21.在本发明提供的一些实施例中,所述顶点数据集标记为p,
22.p={p1,p2,...,pn},pn为网格模型为mesh

中的第n个顶点,n为非零自然数,所述顶点数据集不包含重复顶点。
23.在本发明提供的一些实施例中,基于rbf插值算法进行悬垂曲面拟合时,基于rbf插值的曲面方程为:
[0024][0025]
其中,v为悬垂曲面上任意一点,vi为可视点集合中第i个可视点,i=0,1,...,l,l为可视点的数目;wi为可视点对悬垂曲面的影响系数,wi为0-1之间的小数,且1之间的小数,且为rbf核函数。其中,rbf核函数中“.”表示任意值。
[0026]
在本发明提供的一些实施例中,所述悬垂曲面经过背面三角片剔除后的网格模型中的所有可视顶点,所有可视顶点输入曲面方程,求解得到所有可视顶点对悬垂曲面的影响系数集合,确定悬垂曲面上任意一点的目标悬垂曲面方程,进行拟合悬垂曲面。
[0027]
其中,所有可视顶点输入曲面方程可得线性方程组,线性方程组为:
[0028][0029]
通过奇异值分解求解线性方程组,得到l个可视顶点对悬垂曲面的影响系数集合。
[0030]
本发明提供的技术方案,具有如下有益效果:
[0031]
本发明的基于可视点和rbf插值的悬垂曲面建模方法,采用三维场景可视点作为
悬垂曲面建模输入,可以尽可能保留目标曲面的局部特征,并利用rbf插值算法计算目标曲面方程,得到平滑的输出结果,无需进行二次平滑操作,能够一次性创建出效果较好的平滑悬垂曲面。
[0032]
本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
[0033]
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
[0034]
图1为本发明的一种基于可视点和rbf插值的悬垂曲面建模方法的流程图。
[0035]
图2为本发明一个实施例中悬垂曲面建模方法的样例中输入的覆盖元素和基准平面的结构示意图。
[0036]
图3为本发明一个实施例中悬垂曲面建模方法中三维场景网格划分结果示意图。
[0037]
图4为本发明一个实施例中悬垂曲面建模方法中可视点提取的结构示意图。
[0038]
图5为本发明一个实施例中悬垂曲面建模方法中从悬垂方向观察可视点的示意图。
[0039]
图6为本发明一个实施例中悬垂曲面建模方法中可视顶点的计算的流程图。
[0040]
图7为本发明一个实施例中悬垂曲面建模方法中悬垂曲面结果示意图。
具体实施方式
[0041]
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0042]
参阅图1所示,图1为本发明提供的一种基于可视点和rbf插值的悬垂曲面建模方法的流程图。本发明提供的一种基于可视点和rbf插值的悬垂曲面建模方法,包括如下步骤:
[0043]
s1、获取悬垂曲面建模的覆盖元素和基准平面,对覆盖元素和基准平面进行网格划分,得到三维场景网格模型;
[0044]
s2、提取悬垂方向下三维场景网格模型中的可视顶点,将可视点作为悬垂曲面建模的输入参数;
[0045]
s3、利用rbf插值算法计算悬垂曲面的拟合方程,根据悬垂曲面建模的输入参数,拟合悬垂曲面。
[0046]
本实施例的悬垂曲面建模方法分为上述三个步骤执行,其中,作为悬垂曲面建模的两项输入:覆盖元素和基准平面。其中,所述覆盖元素为被悬垂曲面覆盖的元素,如图2所示的立方体、球体、圆台体等;参见图2所示,所述悬垂方向为所述基准平面的平面法向量方向的反方向,所述基准平面的范围即悬垂曲面建模计算范围。
[0047]
参见图2所示,在本实施例中,所述基准平面为用户自定义的一个矩形基准平面。其中,基准平面作为一个平面,由原点和平面法向量两个要素组成;参见图2所示,矩形基准平面通常为z=0面,其平面法向量方向就是竖直向上的方向,对应的悬垂方向就是竖直向
下的方向,具体可以根据应用进行调整。
[0048]
在本实施例中,矩形基准平面信息为算法输入信息,因此在获取悬垂曲面建模的覆盖元素和基准平面后,无需在判定矩形基准平面平面法向量方向。
[0049]
在进行悬垂曲面建模时,对覆盖元素和基准平面进行网格划分,得到的三维场景网格模型为三维场景的三角片网格模型。在进行网格划分时,参见图3所示,网格划分也即将覆盖元素和基准平面拆分为诸多三角形。
[0050]
其中,覆盖元素采用delaunay三角剖分算法进行网格划分,算法中线性偏移参数thelindeflection默认值为0.01,角度偏移参数theangdeflection默认值为22.5
°
,可根据实际应用进行调整。
[0051]
其中,基准平面采用均匀拆分法进行网格划分,整个平面拆分为m*n个矩形块,每个矩形块按对角线拆分为两个三角形,共计2*m*n个大小一致的三角形,其中m、n均为非零自然数,m默认值为30,n默认值为30,可根据实际应用进行调整。
[0052]
在本发明中,所述覆盖元素和基准平面组成的三维场景经过网格划分后得到的三维场景网格模型,三维场景网格模型记为mesh,则:
[0053]
mesh={t1,t2,...,tk}其中,tk为三维场景网格模型mesh中第k个三角片,k为大于等于2*m*n的自然数,tk的三个顶点分别为:tk·
v1、tk·
v2、tk·
v3。
[0054]
参见图4和图5所示,在对步骤s2中悬垂方向下三维场景网格模型中的可视顶点提取时,悬垂方向下三维场景网格模型中的可视顶点提取的方法为:沿悬垂方向获取三维场景网格模型中所有三角片上可视顶点数据。
[0055]
即:可视点提取也即从悬垂方向观察三维场景网格模型,获取所有三角片上可见的顶点数据。
[0056]
在本实施例中,参见图6所示,所述可视顶点的计算方法,包括以下步骤:
[0057]
s201、获取三维场景网格模型中所有三角片的悬垂方向和法向量,剔除悬垂方向和法向量同向的背面三角片,获得背面三角片剔除后的网格模型;
[0058]
s202、遍历背面三角片剔除后的网格模型,获取背面三角片剔除后的网格模型中所有三角片的顶点,获得顶点数据集;
[0059]
s203、根据获得的所述顶点数据集,基于0pengl中的深度测试算法计算获得可视点集合。
[0060]
在本实施例中,进行背面三角片剔除时,三角片tk的法向量标记为tk·
nor,则
[0061]
tk·
nor=(tk·v2-tk·
v1)
×
(tk·v3-tk·
v1)
[0062]
式中,(tk·v2-tk·
v1)为三角片tk顶点1指向顶点2的向量,(tk·v3-tk·
v1)为三角片tk顶点1指向顶点3的向量,
×
表示向量叉乘。
[0063]
记悬垂方向向量为drapedir,则三角片tk的法向量与悬垂方向同向时,当前三角片为背面三角片,需要将其从三维场景网格模型mesh中去除;反之为正面三角片,执行后续计算。记背面剔除后的网格模型为mesh

,则mesh

={t1,t2,...,t
l
},其中l为小于k的非零自然数。
[0064]
在步骤s202中,提取顶点数据集时,背面三角片剔除后的网格模型标记为mesh

,则mesh

={t1,t2,...,t
l
},其中l为小于k的非零自然数。
[0065]
顶点数据也即网格模型为mesh

中所有三角片的顶点,遍历网格模型三角片即可
获得。顶点数据集标记为p,p={p1,p2,...,pn},pn为网格模型为mesh中的第n个顶点,n为非零自然数,所述顶点数据集不包含重复顶点。
[0066]
在步骤s203中,获得可视点集合前,进行深度测试。所述可视点集合标记为v,则
[0067]
v=depthtest(p)式中,p为网格模型为mesh

中的顶点集合,depthtest为opengl中的深度测试算法。
[0068]
在本实施例中,标记可视点集合v={v1,v2,...,v
l
},其中v
l
为网格模型为mesh

中的第l个可视点,l为非零自然数。记目标悬垂曲面方程为f(v)=0,v为悬垂曲面上任意一点。则基于rbf插值算法进行悬垂曲面拟合时,有基于rbf插值的曲面方程为:
[0069]
其中,v为悬垂曲面上任意一点,vi为可视点集合中第i个可视点,i=0,1,...,l,l为可视点的数目;wi为可视点对悬垂曲面的影响系数,wi为0-1之间的小数,且1之间的小数,且为rbf核函数。其中,rbf核函数中“.”表示任意值。
[0070]
由于悬垂曲面必然经过三维场景网格模型mesh

中的所有可视点,因此将所有可视点数据带入基于rbf插值的曲面方程,可得如下线性方程组:
[0071][0072]
通过奇异值分解(svd)求解线性方程组,得到l个可视顶点对悬垂曲面的影响系数集合{wi|i=1,2,..,l},进而目标悬垂曲面方程f(v)得以确定。
[0073]
利用rbf插值算法计算悬垂曲面的拟合方程,根据悬垂曲面建模的输入参数,拟合悬垂曲,拟合结果参见图7所示。
[0074]
综上所述,本发明的基于可视点和rbf插值的悬垂曲面建模方法,采用三维场景可视点作为悬垂曲面建模输入,可以尽可能保留目标曲面的局部特征,并利用rbf插值算法计算目标曲面方程,得到平滑的输出结果,无需进行二次平滑操作,能够一次性创建出效果较好的平滑悬垂曲面。
[0075]
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1