一种工业复杂裁剪曲面的渲染显示方法与流程

文档序号:15390052发布日期:2018-09-08 01:01阅读:140来源:国知局

本发明属于计算机辅助设计、计算机图形学和曲线曲面造型技术领域,具体的说是一种初始化图形交换规范(initialgraphicexchangespecification,iges)中工业复杂裁剪曲面的渲染显示方法。



背景技术:

随着制造工业的发展、复杂的自由曲面越来越多的应用于有限元分析、曲面逼近、真实感显示、数控加工、快速成型技术领域。为了构造复杂的自由曲线曲面,经常需要对于自由曲线曲面进行裁剪。在现有的计算机辅助设计(computeraideddesign,cad)模型中,通常包含着大量裁剪曲面的数据信息。如何对于这些数据进行解析并对于裁剪曲面进行渲染显示成为cad模型接口开发的必要工作。此外,渲染引擎中要求输入的数据为一般为三角形单元,如何将裁剪曲面离散为一系列三角形单元也成为裁剪曲面渲染显示关键工作。

目前,通过对于现有裁剪曲面显示的相关文献进行检索和分析,在进行裁剪区域形成三角形单元并渲染显示时,并没有考虑复杂裁剪曲面中的一些复杂情况,这些复杂情况经常出现在裁剪曲面的自适应离散中,若不进行处理将会导致错误的渲染显示结果。此外,文献《冲压有限元分析中网格技术的研究与开发》(北京航空航天大学博士学位论文)中3.6节提出一种参数曲面的结点连元算法,该方法在处理较为复杂的凹多边形时会产生不正确的剖分,产生在凹多边形之外的三角网格。



技术实现要素:

本发明为解决现有技术中存在的不足之处,提出一种具有良好的通用性和稳定性的工业复杂裁剪曲面的渲染显示方法,以期能有效地处理凹多边形和裁剪曲面中的复杂情况,实现裁剪区域分割形成三角形单元并渲染显示的功能,从而提高对于庞大而复杂工业裁剪曲面模型的处理能力和效率。

为了达到上述目的,本发明采用的技术方案为:

本发明一种工业复杂裁剪曲面的渲染显示方法的特点是按如下步骤进行:

步骤一、获取裁剪曲面模型,并判断所述裁剪曲面模型中各个裁剪曲面是否包含三维边界曲线的二维参数曲线?如果包含,则执行步骤二;否则,则执行步骤三;

步骤二、对任意一个裁剪曲面中所包含的二维参数曲线进行自适应离散处理,得到曲线的二维参数离散点集合,并将所述二维参数离散点集合中的离散点按外边界逆时针方向、内边界顺时针方向进行排序,得到排序后的二维参数离散点集合,再执行步骤五;

步骤三、对任意一个裁剪曲面中所包含的三维边界曲线进行自适应离散处理,得到曲线的三维离散点集合;

步骤四、对所述三维离散点集合中的各个三维离散点进行反算,得到与各个三维离散点一一对应的二维参数域上的离散点,从而构成二维参数离散点集合,并将所述二维参数离散点集合中的离散点按外边界逆时针方向、内边界顺时针方向进行排序,得到排序后的二维参数离散点集合;

步骤五、对任意一个裁剪曲面按曲面片和逼近平面片的最大偏离值进行自适应离散处理,得到参数域上若干个矩形块;

步骤六、遍历所有矩形块,并判断任意一个矩形块是否为复杂矩形块?如果为复杂矩形块,则对相应的复杂矩形块进行若干次四叉树细分处理,直到相应的复杂矩形块全部细分为非复杂矩形块后,再执行步骤七;否则,表示相应矩形块为非复杂矩形块,并执行步骤七;

步骤七、将所述排序后的二维参数离散点集合中的所有离散点依次进行连接,形成曲线段,所述曲线段与所述裁剪曲面外边界之内且内边界之外的非复杂矩形块相交所形成的区域作为裁剪区域;由所述排序后的二维参数离散点集合中的所有离散点、所述裁剪区域内的非复杂矩形块的顶点以及所述曲线段与所述非复杂矩形块相交所形成的交点构成裁剪区域的顶点集合;

步骤八、对所述裁剪区域的顶点集合中的所有点按逆时针方向进行重新排序,得到排序后的裁剪区域的顶点集合;

步骤九、利用改进的递归节点连元方法对所述排序后的裁剪区域的顶点集合中的所有点进行连接处理,得到相应的若干个三角形单元并进行渲染显示。

本发明所述的渲染显示方法的特点也在于,所述步骤六中的复杂矩形块包括五种基本结构:

第一种基本结构为:所述曲线段与所述复杂矩形块的四条边中任一条边的交点数大于1个时所形成的结构;

第二种基本结构为:所述曲线段与所述复杂矩形块相交后形成多环结构;

第三种基本结构为:所述曲线段在所述复杂矩形块中存在交点时所形成的结构;

第四种基本结构为:所述曲线段在所述复杂矩形块中的曲率既大于零又小于零时所形成的结构;

第五种基本结构为:所述复杂矩形块的一对对角顶点在所述裁剪区域内而另一对对角顶点在所述裁剪区域外所形成的结构。

所述步骤八是按如下过程进行:

步骤8.1、定义所述裁剪区域内非复杂矩形块的顶点个数为n,定义排序后的二维参数离散点集合中在所述裁剪区域内的离散点所构成的集合为裁剪离散点集合p,定义所述曲线段与所述非复杂矩形块相交所形成的交点以及所述裁剪离散点集合p所构成集合为集合q;

步骤8.2、判断n=4是否成立,若成立,则表示所述非复杂矩形块包含在所述裁剪区域内,并将所述非复杂矩形块的四个顶点对应的三维空间中的四个点连接为四边形单元后,执行步骤九,否则,执行步骤8.3;

步骤8.3、判断n=0是否成立,若成立,则表示所述非复杂矩形块在所述裁剪区域之外,并不渲染显示所述非复杂矩形块;否则,执行步骤8.4;

步骤8.4、判断n=3是否成立,若成立,则表示所述非复杂矩形块的三个顶点在所述裁剪区域之内,另一个顶点在所述裁剪区域之外,将所述裁剪区域的顶点集合中的所有点按照先逆时针排序所述非复杂矩形块的顶点再逆时针排序所述集合q中所有点,从而形成排序后的裁剪区域的顶点集合;否则,执行步骤8.5;

步骤8.5、判断n=2是否成立,若成立,则表示所述非复杂矩形块的两个顶点在所述裁剪区域之内,另两个顶点在所述裁剪区域之外,将所述裁剪区域的顶点集合中的所有点按照先逆时针排序所述非复杂矩形块的顶点再逆时针排序所述集合q中所有点,从而形成排序后的裁剪区域的顶点集合;否则,执行步骤8.6;

步骤8.6、判断n=1是否成立,若成立,则表示所述非复杂矩形块的一个顶点在所述裁剪区域之内,另三个顶点在所述裁剪区域之外,将所述裁剪区域的顶点集合中的所有点按照先逆时针排序所述非复杂矩形块的顶点再逆时针排序所述集合q中所有点,从而形成排序后的裁剪区域的顶点集合。

所述步骤九是按如下过程进行:

步骤9.1、判断所述裁剪区域的顶点集合中所有点的个数是否为3?如果是,则将所述裁剪区域的顶点集合中的3个点所对应的三维空间中的3个点连接为三角形单元并进行渲染显示;否则,执行步骤9.2;

步骤9.2、判断所述裁剪区域的顶点集合中所有点的个数是否为4?如果是,则将所述裁剪区域的顶点集合中的4个点所对应的三维空间中的4个点连接为四角形单元,并将所述四边形单元按照最大内角顶点及其对顶点分割形成两个三角形单元并进行渲染显示;否则,执行步骤9.3;

步骤9.3、在所述集合q中寻找最大内角点,并作为所述裁剪区域的第一分割点m;

步骤9.4、在所述非复杂矩形块的顶点中获取所述裁剪区域的第二分割点n;且所述第一分割点m和第二分割点n所构成的分割线段mn不能与所述裁剪区域内除端点外的曲线段相交;

步骤9.5、利用所述分割线段mn将所述裁剪区域的顶点集合中所有点分割成两个点集,并将每个点集中的所有点按照步骤9.1进行处理,直每个点集中的所有点被分割成三角形单元并进行渲染显示。

与已有技术相比,本发明的有益效果体现在:

1、相比于现有裁剪曲面显示的相关文献没有考虑工业裁剪模型中的复杂情况,本发明提出了一种通用和完整的裁剪曲面模型的渲染显示方法,该方法可以处理任意复杂的裁剪曲面模型,并具有较高的效率、良好的通用性和稳定性,以及对于庞大而复杂工业裁剪曲面模型较强处理能力。

2、本发明全面的考虑了裁剪模型中的复杂情况和非复杂情况,将所有裁剪模型中的复杂情况归纳为五种基本结构,并通过四叉树细分将所有的复杂情况转变为非复杂情况,实现任意复杂裁剪曲面的渲染显示功能,有效的克服了现有文献中对于工业复杂裁剪曲面处理不足的缺陷。

3、针对现有的结点连元算法在处理的凹多边形时存在的缺陷,本发明提出了一种改进的递归节点连元方法,该方法可以有效地处理凹多边形,实现裁剪区域分割形成三角形单元并渲染显示的功能,有效的解决了现有结点连元算法的不足。

附图说明

图1a表示本发明曲线段与所述的复杂矩形块的四条边中任一条边的交点数大于1个时所形成的结构的示意图;

图1b表示本发明曲线段与所述的复杂矩形块相交后形成多环结构的示意图;

图1c表示本发明曲线段在所述复杂矩形块中存在交点时所形成的结构的示意图;

图1d表示本发明曲线段在所述复杂矩形块中的曲率既大于零又小于零时所形成的结构的示意图;

图1e表示本发明所述的复杂矩形块的一对对角顶点在所述裁剪区域内(ac)而另一对对角顶点在所述裁剪区域外(bd)所形成的结构的示意图;

图1f表示本发明所述的复杂矩形块的一对对角顶点在所述裁剪区域内(bd)而另一对对角顶点在所述裁剪区域外(ac)所形成的结构的示意图;

图2为本发明渲染显示方法的总体流程图;

图3为本发明裁剪曲面自适应离散形成参数域上的矩形块的示意图;

图4a表示本发明非复杂矩形块顶点abc在裁剪区域内,d在裁剪区域外的情况;

图4b表示本发明非复杂矩形块顶点bcd在裁剪区域内,a在裁剪区域外的情况;

图4c表示本发明非复杂矩形块顶点cda在裁剪区域内,b在裁剪区域外的情况;

图4d表示本发明非复杂矩形块顶点dab在裁剪区域内,c在裁剪区域外的情况。

图5a表示本发明非复杂矩形块顶点ab在裁剪区域内,cd在裁剪区域外的情况;

图5b表示本发明非复杂矩形块顶点bc在裁剪区域内,da在裁剪区域外的情况;

图5c表示本发明非复杂矩形块顶点cd在裁剪区域内,ab在裁剪区域外的情况;

图5d表示本发明非复杂矩形块顶点da在裁剪区域内,bc在裁剪区域外的情况。

图6a表示本发明非复杂矩形块顶点a在裁剪区域内,bcd在裁剪区域外的情况;

图6b表示本发明非复杂矩形块顶点b在裁剪区域内,cda在裁剪区域外的情况;

图6c表示本发明非复杂矩形块顶点c在裁剪区域内,dab在裁剪区域外的情况;

图6d表示本发明非复杂矩形块顶点d在裁剪区域内,abc在裁剪区域外的情况;

图7为本发明改进的递归节点连元方法的总体流程图;

图8a表示本发明中错误的n点的情况;

图8b表示本发明中正确的n点的情况;

图8c表示本发明改进的递归节点连元方法形成的最终三角形单元的情况。

具体实施方式

为使本发明的技术方案更加明确,下面结合附图以及具体实例对于本发明作进一步说明。

本发明一种工业复杂裁剪曲面的渲染显示方法,如图2所示,该方法包括如下步骤:

步骤一、获取裁剪曲面模型,并判断裁剪曲面模型中各个裁剪曲面是否包含三维边界曲线的二维参数曲线?如果包含,则执行步骤二;否则,则执行步骤三;

步骤二、对任意一个裁剪曲面中所包含的二维参数曲线进行自适应离散处理,得到曲线的二维参数离散点集合,并将二维参数离散点集合中的离散点按外边界逆时针方向、内边界顺时针方向进行排序,得到排序后的二维参数离散点集合,再执行步骤五;

步骤二的具体实施方式为运用文献《冲压有限元分析中网格技术的研究与开发》(北京航空航天大学博士学位论文)中3.3节提出的参数曲线的自适应离散方法将二维参数曲线按曲率自适应离散得到一系列离散点集合,根据模型的规模,设置曲线自适应离散算法的缺省参数为:绝对误差a_tol值为0.01、相对误差r_tol值为0.01、最长边max值为1、最短边min值为0.1,以保证曲线在相邻两个离散点之间足够平坦;接着将集合中的离散点按外边界逆时针方向、内边界顺时针方向进行排序,得到排序后的二维参数离散点集合。

步骤三、对任意一个裁剪曲面中所包含的三维边界曲线进行自适应离散处理,得到曲线的三维离散点集合;

步骤四、对三维离散点集合中的各个三维离散点进行反算,得到与各个三维离散点一一对应的二维参数域上的离散点,从而构成二维参数离散点集合,并将二维参数离散点集合中的离散点按外边界逆时针方向、内边界顺时针方向进行排序,得到排序后的二维参数离散点集合;

步骤四中的“对三维离散点集合中的各个三维离散点进行反算,得到与各个三维离散点一一对应的二维参数域上的离散点,从而构成二维参数离散点集合,并将二维参数离散点集合中的离散点按外边界逆时针方向、内边界顺时针方向进行排序,得到排序后的二维参数离散点集合”,在某些cad系统输出的模型文件中,裁剪曲面不包含三维边界曲线的二维参数曲线,需要将空间中的三维曲线运用步骤三中的方法离散成一系列三维离散点集合,通过牛顿迭代法对三维离散点集合中的各个三维离散点进行反算,得到与各个三维离散点一一对应的二维参数域上的离散点,从而构成二维参数离散点集合。详细的反求算法流程参见施法中所著《计算机辅助设计与非均匀有理b样条》(北京航空航天大学出版社)。

步骤五、对任意一个裁剪曲面按曲面片和逼近平面片的最大偏离值进行自适应离散处理,得到参数域上若干个矩形块;

步骤五的具体实施方式为运用文献《冲压有限元分析中网格技术的研究与开发》(北京航空航天大学博士学位论文)中3.4节提出的参数曲面的自适应离散方法将裁剪曲面按曲面片和逼近平面片的最大偏离值自适应离散得到一系列u向的离散点集合ui(i=0,1,...,upoints)和一系列v向的离散点集合vi(i=0,1,...,vpoints),将空间曲面初步分成upoints×vpoints个矩形块,如图3所示。此时,每个矩形块对应的空间面片可近似表示三维空间中曲面,之后逐个对每个矩形块中的裁剪区域进行处理。

步骤六、遍历所有矩形块,并判断任意一个矩形块是否为复杂矩形块?如果为复杂矩形块,则对相应的复杂矩形块进行若干次四叉树细分处理,直到相应的复杂矩形块全部细分为非复杂矩形块后,再执行步骤七;否则,表示相应矩形块为非复杂矩形块,并执行步骤七;

步骤六中的复杂矩形块包括五种基本结构,如图1a-图1f所示为裁剪模型中复杂情况的五种基本结构的示意图,斜线部分为裁剪区域,空白为被裁剪区域:

第一种基本结构为:曲线段与复杂矩形块的四条边中任一条边的交点数大于1个时所形成的结构,如图1a所示;

第二种基本结构为:曲线段与复杂矩形块相交后形成多环结构,如图1b所示;

第三种基本结构为:曲线段在复杂矩形块中存在交点时所形成的结构,如图1c所示;

第四种基本结构为:曲线段在复杂矩形块中的曲率既大于零又小于零时所形成的结构,如图1d所示;

第五种基本结构为:复杂矩形块的一对对角顶点在裁剪区域内而另一对对角顶点在裁剪区域外所形成的结构,如图1e和图1f所示;

在步骤六中逐个处理矩形块时,裁剪区域会出现不同的情况。本发明将所有可能出现的情况分成复杂情况和非复杂情况,两者依次对应于复杂矩形块和非复杂矩形块,分类的标准是依据改进的递归节点连元方法。如果该裁剪区域的情况可以通过改进的递归节点连元方法连接形成三角形单元,则此情况属于非复杂情况。相反,如果该裁剪区域的情况不可以通过改进的递归节点连元方法连接形成三角形单元,则此情况属于复杂情况。其中复杂情况往往很难直接进行连接形成三角形单元的操作并且容易导致错误的显示结果。通过总结所有的复杂情况,本发明将其归纳为五种基本结构。其他的复杂情况均与这五种基本结构相似或者可以由这五种基本结构推导出。接着,本发明运用四叉树细分的方法将这些复杂情况细分成四个子矩形块,有些时候,需要进行多次四叉树细分,直至每个矩形块都转变成为非复杂矩形块,然后可以通过改进的递归节点连元方法实现连接形成三角形单元并渲染显示的功能。

步骤七、将排序后的二维参数离散点集合中的所有离散点依次进行连接,形成曲线段,曲线段与裁剪曲面外边界之内且内边界之外的非复杂矩形块相交所形成的区域作为裁剪区域;由排序后的二维参数离散点集合中的所有离散点、裁剪区域内的非复杂矩形块的顶点以及曲线段与非复杂矩形块相交所形成的交点构成裁剪区域的顶点集合;

步骤八、对裁剪区域的顶点集合中的所有点按逆时针方向进行重新排序,得到排序后的裁剪区域的顶点集合;

步骤八对裁剪区域的顶点集合中的所有点按逆时针方向进行重新排序,这是下一步利用改进的递归节点连元算法实现裁剪区域顶点集合中的所有点连接形成三角形单元并渲染显示的前提,步骤八的具体实现步骤如下:

步骤8.1、定义裁剪区域内非复杂矩形块的顶点个数为n,定义排序后的二维参数离散点集合中在裁剪区域内的离散点所构成的集合为裁剪离散点集合p,定义曲线段与非复杂矩形块相交所形成的交点以及裁剪离散点集合p所构成集合为集合q;

步骤8.2、判断n=4是否成立,若成立,则表示非复杂矩形块包含在裁剪区域内,并将非复杂矩形块的四个顶点对应的三维空间中的四个点连接为四边形单元后,执行步骤九,否则,执行步骤8.3;

步骤8.3、判断n=0是否成立,若成立,则表示非复杂矩形块在裁剪区域之外,并不渲染显示非复杂矩形块;否则,执行步骤8.4;

步骤8.4、判断n=3是否成立,若成立,则表示非复杂矩形块的三个顶点在裁剪区域之内,另一个顶点在裁剪区域之外,如图4a-图4d所示为当裁剪区域内非复杂矩形块的顶点个数n为3时,裁剪区域存在的四种情况的示意图。实线部分为裁剪区域,虚线部分为被裁剪区域,将裁剪区域的顶点集合中的所有点按照先逆时针排序非复杂矩形块的顶点再逆时针排序集合q中所有点,从而形成排序后的裁剪区域的顶点集合,如图4a排序后的裁剪区域的顶点集合为点a、b、c、e、f、g、h、i、j、k,图4b、图4c、图4d依次类推;否则,执行步骤8.5;

步骤8.5、判断n=2是否成立,若成立,则表示非复杂矩形块的两个顶点在裁剪区域之内,另两个顶点在裁剪区域之外,如图5a-图5d所示为当裁剪区域内非复杂矩形块的顶点个数n为2时,裁剪区域存在的前四种情况。实线部分为裁剪区域,虚线部分为被裁剪区域,将裁剪区域的顶点集合中的所有点按照先逆时针排序非复杂矩形块的顶点再逆时针排序集合q中所有点,从而形成排序后的裁剪区域的顶点集合,如图5a排序后的裁剪区域的顶点集合为点a、b、e、f、g、h、i、j、k,图5b、图5c、图5d依次类推;否则,执行步骤8.6;

步骤8.6、判断n=1是否成立,若成立,则表示非复杂矩形块的一个顶点在裁剪区域之内,另三个顶点在裁剪区域之外,如图6a-图6d所示为当裁剪区域内非复杂矩形块的顶点个数n为1时,裁剪区域存在的四种情况。实线部分为裁剪区域,虚线部分为被裁剪区域,将裁剪区域的顶点集合中的所有点按照先逆时针排序非复杂矩形块的顶点再逆时针排序集合q中所有点,从而形成排序后的裁剪区域的顶点集合,如图6a排序后的裁剪区域的顶点集合为点a、e、f、g、h、i、j、k,图6b、图6c、图6d依次类推。

步骤九、利用改进的递归节点连元方法对排序后的裁剪区域的顶点集合中的所有点进行连接处理,得到相应的若干个三角形单元并进行渲染显示,其具体实现步骤如下,如图7所示:

步骤9.1、判断裁剪区域的顶点集合中所有点的个数是否为3?如果是,则将裁剪区域的顶点集合中的3个点所对应的三维空间中的3个点连接为三角形单元并进行渲染显示;否则,执行步骤9.2;

步骤9.2、判断裁剪区域的顶点集合中所有点的个数是否为4?如果是,则将裁剪区域的顶点集合中的4个点所对应的三维空间中的4个点连接为四角形单元,并将四边形单元按照最大内角顶点及其对顶点分割形成两个三角形单元并进行渲染显示;否则,执行步骤9.3;

步骤9.3、在集合q中寻找最大内角点,并作为裁剪区域的第一分割点m;

步骤9.4、在非复杂矩形块的顶点中获取裁剪区域的第二分割点n;且第一分割点m和第二分割点n所构成的分割线段mn不能与裁剪区域内除端点外的曲线段相交,如图8a和图8b所示;

步骤9.5、利用分割线段mn将裁剪区域的顶点集合中所有点分割成两个点集,并将每个点集中的所有点按照步骤9.1进行处理,直每个点集中的所有点被分割成三角形单元并进行渲染显示,图8c所示。图8a-图8c为改进的递归节点连元方法形成三角形单元的示意图。通过以上步骤,本发明全面的考虑了工业裁剪曲面模型中的复杂情况和非复杂情况,实现了裁剪曲面模型的渲染显示功能,有效的解决了现有文献没有考虑工业裁剪曲面模型中复杂情况的不足。此外,本发明提出改进的递归节点连元方法,其可以处理凹多边形,实现裁剪区域分割形成三角形单元并渲染显示的功能,有效的解决了现有文献在处理形状较为复杂的凹多边形时存在的缺陷。

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