基于OpenGL的Mesh模型数据外壳提取方法及系统技术方案

技术编号:37974528 阅读:4 留言:0更新日期:2023-06-30 09:49
本公开提供了一种基于OpenGL的Mesh模型数据外壳提取方法及系统,涉及CAD软件开发技术领域,方法包括模拟空间扫描物体,获取待提取外壳物体模型,将所有模型中的物体标记为不可见;在模型周围生成不同的观察点,所述观察点的设置保证观察范围包含所有模型,在每个观察点处对物体进行像素值提取,对每个观察点进行遍历遮挡查询,获取每个模型的可见模型部分,判断是否为最后一个模型的最后一个观察点,当遍历遮挡查询到最后一个观察点时,则提取所有可见模型部分组成新的外壳模型。本公开了提高计算的效率。了提高计算的效率。了提高计算的效率。

【技术实现步骤摘要】
基于OpenGL的Mesh模型数据外壳提取方法及系统


[0001]本公开涉及CAD软件开发
,具体涉及基于OpenGL的Mesh模型数据外壳提取方法及系统。

技术介绍

[0002]本部分的陈述仅仅是提供了与本公开相关的
技术介绍
信息,不必然构成在先技术。
[0003]为了对模型的内部构造进行保密,有时在向客户展示某些3D模型时,只会向客户展示模型的可见部分,如何从装配模型中提取出模型的外壳数据,通常可采用手动提取与自动提取两种方式。手动提取需要操作人员对模型内部结构进行删除或对模型的外壳模型进行提取,但是当模型结构较为复杂或内部模型数目较多时,手动提取需要花费较长的时间,且容易出现漏删与误删情况;自动提取方式是通过编程来完成模型的可见部分提取,而模型外壳的提取方法的相关资料较少,在部分提取方法中会使用射线法进行外壳提取,其核心思想是从物体中心发出在空间中平均分布的向量簇,通过向量簇是否与其他物体相交来进行遮挡性判断,如图1所示,图1中的(a)显示正五边形被包含在一个圆形中,从正五边形中点沿所有顶点发出的射线均与圆形发生相交,则认为五边形不可见;当圆上存在缺口且有射线穿过该缺口时,认为五边形从某个角度能被看到,五边形可见,如图1中的(b)所示;但是该方法的准确度与射线密度有关,当射线密度较小或物体间隔较大时,该判断方法极易出现误判,如图1中的(c)所示,射线未检测到缺口,所以增大射线密度来减少该类情况的发生,如图1中的(d)所示,将射线密度增大,但是密度增大后该过程会导致算法的效率下降。此外,该方法由于射线由物体中心引出,算法的正确性还受被检测物体和遮挡物的形状有关,有时从中心点发出的射线不能覆盖空间中的所有观察角度,当出现射线覆盖不到的死角时,该方法会失效,如图2所示,无论如何提高射线密度,从红色多边形中心发出的射线都会与蓝色的遮挡物相交,从而内部物体都会被判定为不可见,但实际上蓝遮挡物错在缺口,所以红色多边形的部分区域是可见的。
[0004]所以,专利技术人发现,当前自动提取模型外壳仍然存在以下问题:
[0005]1)现有的方法中外壳提取方式的覆盖程度不够,容易出现误判或者漏选的情况;
[0006]2)现有外壳提取方法的计算效率低下,即现有方法在射线法提取外壳过程中,为保证误判率降低,需要增大射线的密度,当物体不可见时,会计算每一条射线与其他模型的相交情况,严重影响计算效率。

技术实现思路

[0007]本公开为了解决上述问题,提出了一种基于OpenGL的Mesh模型数据外壳提取方法及系统,提供一直模拟空间扫描的外壳提取方法,在模型周围设置不同的观察点,通过每个观察点来记录模型的可见部分,最后对所有观察点得到的可见性判别进行汇总,从模型中挑出可见性外壳,组成新的可见外壳模型。
[0008]根据一些实施例,本公开采用如下技术方案:
[0009]基于OpenGL的Mesh模型数据外壳提取方法,包括:
[0010]模拟空间扫描物体,获取待提取外壳物体模型,将所有模型中的物体标记为不可见;
[0011]在模型周围生成不同的观察点,所述观察点的设置保证观察范围包含所有模型,在每个观察点处对物体进行像素值提取,对每个观察点进行遍历遮挡查询,获取每个模型的可见模型部分,判断是否为最后一个模型的最后一个观察点,当遍历遮挡查询到最后一个观察点时,则提取所有可见模型部分组成新的外壳模型。
[0012]根据一些实施例,本公开采用如下技术方案:
[0013]基于OpenGL的Mesh模型数据外壳提取系统,包括:
[0014]模型Mesh数据的合并模块,用于模拟空间扫描物体,获取待提取外壳物体模型,将所有模型中的物体标记为不可见;
[0015]空间观测点的设置模块,用于在模型周围生成不同的观察点,所述观察点的设置保证观察范围包含所有模型,在每个观察点处对物体进行像素值提取;
[0016]Mesh数据遮挡查询模块和查询结果统计模块,用于对每个观察点进行遍历遮挡查询,获取每个模型的可见模型部分,判断是否为最后一个模型的最后一个观察点,当遍历遮挡查询到最后一个观察点时,则提取所有可见模型部分组成新的外壳模型。
[0017]与现有技术相比,本公开的有益效果为:
[0018]本公开提供一种模拟空间扫描的外壳提取方法,在模型周围设置不同的观察点,通过每个观察点来记录模型的可见部分,最终对所有观察点得到的可见性判别进行汇总,从模型中挑出可见性外壳,组成新的可见外壳模型。该方法通过增加观察点的位置来进行精度的调整;使用出现在屏幕上的像素值来判别物体的可见性,计算前可使用模型合并的方式将多个模型合并成一个,合并后提高计算效率。
附图说明
[0019]构成本公开的一部分的说明书附图用来提供对本公开的进一步理解,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。
[0020]图1为本公开
技术介绍
涉及的射线法判断原理图;
[0021]具体的,图1中的(a)为判定五边形在模型内部,不可见部分示意图;图1中的(b)为判定五边形可见示意图;图1中的(c)为射线判定失效示意图;图1中的(d)为增加射线密度后的示意图;
[0022]图2为本公开
技术介绍
中的射线法判断失效示意图;
[0023]图3为本公开实施例中的模型外壳提取方法流程图;
[0024]图4为本公开实施例中空间均匀生成观察点示意图;
[0025]图5为本公开实施例中观察点与模型距离较远示意图;
[0026]图6为本公开实施例中根据模型凸包生成观察点的示意图;
[0027]图7为本公开实施例中合并后的Mesh数据结构示意图。
具体实施方式
[0028]下面结合附图与实施例对本公开作进一步说明。
[0029]应该指出,以下详细说明都是例示性的,旨在对本公开提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本公开所属
的普通技术人员通常理解的相同含义。
[0030]需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本公开的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
[0031]实施例1
[0032]本公开的一种实施例中提供了一种基于OpenGL的Mesh模型数据外壳提取方法,如图3所示,包括:
[0033]步骤一:模拟空间扫描物体,获取待提取外壳物体模型,将所有模型中的物体标记为不可见;
[0034]步骤二:在模型周围生成不同的观察点,所述观察点的设置保证观察范围包含所有模型,在每个观察点处对物体进行像素值提取;
[0035]步骤三:对每个观察点进行遍历遮挡查询,获取每个模型的可见模型部分,判断是否为最后一个模型的最后一个观察点,当本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于OpenGL的Mesh模型数据外壳提取方法,其特征在于,包括:模拟空间扫描物体,获取待提取外壳物体模型,将所有模型中的物体标记为不可见;在模型周围生成不同的观察点,所述观察点的设置保证观察范围包含所有模型,在每个观察点处对物体进行像素值提取,对每个观察点进行遍历遮挡查询,获取每个模型的可见模型部分,判断是否为最后一个模型的最后一个观察点,当遍历遮挡查询到最后一个观察点时,则提取所有可见模型部分组成新的外壳模型。2.如权利要求1所述的基于OpenGL的Mesh模型数据外壳提取方法,其特征在于,所述获取每个模型的可见模型部分的方式为通过出现在屏幕上的像素值来判别物体模型可见性。3.如权利要求2所述的基于OpenGL的Mesh模型数据外壳提取方法,其特征在于,判别物体模型可见性的具体方式为像素值高的判别为物体模型可见部分,像素值低的判别为物体模型不可见部分。4.如权利要求1所述的基于OpenGL的Mesh模型数据外壳提取方法,其特征在于,所述在模型周围生成不同的观察点,所述观察点的设置保证观察范围包含所有模型,其中观察点的设置方法包括空间均匀生成观察点法和模型凸包生成观察点法。5.如权利要求4所述的基于OpenGL的Mesh模型数据外壳提取方法,其特征在于,所述空间均匀生成观察点法为在空间中生成物体模型的包围球,并将观察点平均分配至包围球周围,保证所有从观察点发射出的视锥覆盖整个包围球体,并计算出第一个观察点。6.如权利要求4所述的基于OpenGL的Mesh模型数据外壳提取方法,其特征在于,当物体模型的分布不集中或者模型分布中存在主方向时,均匀布置观...

【专利技术属性】
技术研发人员:孙显志李坤隋松杨洪鹏亢宝军李建勋
申请(专利权)人:山东华天智能设计与数字化制造技术创新中心有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1