首页> 中国专利> 一种面向3D场景的导航网格地图表示方法

一种面向3D场景的导航网格地图表示方法

摘要

本发明提供的一种面向3D场景的导航网格地图表示方法,抽取3D场景中的可行走层次平面,得到可行走层次平面集合,将孤立的平面以及不可行走的平面去除;抽象可行走层次平面内寻路角色的初始不可通过区域,能够实现将3D场景中的模型抽象为不可通过区域;对初始不可通过区域中的多边形进行区域合并得到最终不可通过区域;合并初始不可通过区域中相交的区域,形成最终不可通过区域。对层次平面内的约束进行约束Delaunay三角形剖分,形成一个三角形集合;所有可行走层次平面内的三角形集合共同构成了最终的导航网格。最终的导航网格能够将障碍物和可行走区域充分分离。本发明是应用在数字媒体技术领域中,有效地保证了障碍物与可行走区域的分离。

著录项

  • 公开/公告号CN106600697A

    专利类型发明专利

  • 公开/公告日2017-04-26

    原文格式PDF

  • 申请/专利权人 东北大学;

    申请/专利号CN201611143856.X

  • 发明设计人 高天寒;刘文成;

    申请日2016-12-13

  • 分类号G06T17/30(20060101);

  • 代理机构沈阳东大知识产权代理有限公司;

  • 代理人胡晓男

  • 地址 110819 辽宁省沈阳市和平区文化路3号巷11号

  • 入库时间 2023-06-19 02:02:25

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-07-01

    专利权的转移 IPC(主分类):G06T17/30 专利号:ZL201611143856X 登记生效日:20220621 变更事项:专利权人 变更前权利人:东北大学 变更后权利人:沈阳新松虚拟现实产业技术研究院有限公司 变更事项:地址 变更前权利人:110819 辽宁省沈阳市和平区文化路3号巷11号 变更后权利人:110000 辽宁省沈阳市浑南区上深沟村860-3号

    专利申请权、专利权的转移

  • 2019-10-11

    授权

    授权

  • 2017-05-24

    实质审查的生效 IPC(主分类):G06T17/30 申请日:20161213

    实质审查的生效

  • 2017-04-26

    公开

    公开

说明书

技术领域

本发明属于数字媒体技术领域,特别涉及一种面向3D场景的导航网格地图表示方法。

背景技术

3D大型场景给用户带来的视觉冲击和体验是2D场景难以比拟的,随着近几年显卡等硬件的不断升级,越来越多的大型3D场景游戏不断涌现,与此同时,人工智能技术大量应用于游戏中,对提高游戏逼真性起着至关重要的作用,而智能寻路技术又是游戏人工智能的重要组成部分。然而,传统的寻路技术无法适应3D场景的复杂性,迫切需要能够在3D场景下高效完成智能寻路的相关技术。

3D场景是由一系列的美术模型组合而成,模型之间没有特定关系,因而需要将场景用一种数据结构来抽象表示其相互之间的关系。搜索技术大都是基于图的搜索,因而可以将场景抽象成图结构,将一些模型抽象成图中的结点,这样便于之后的路径搜索,场景地图的表示方法是智能寻路技术中必不可少的一步。

目前的传统的场景表示方法,分为栅格法、四叉树法、八叉树法、可见点法以及导航网格法。栅格法是最简便的表示方法,但是仅能够适应早期的二维场景,不能适应三维场景。四叉树法是早期基于二维场景下的栅格法的改进,同样不能适应三维场景。八叉树法则是基于三维场景下的四叉树法的推广,该表示方法符合三维模型的空间结构,但是这种地图表示方案对于复杂的三维场景会消耗较多的存储空间。可见点法需要在场景中人工设置经过的路径点,因为需要较多的人工操作,所以此方法适用于较小的室内场景,在大型的3D场景很难应用此方法。导航网格表示方法与可见点法的不同点在于,导航网格可以铺满整个场景的可行走区域,并且仅需要很少量的人工操作,行走路线更加逼真,增加游戏体验,所以能够适应3D场景。导航网格的表示方法采用凸多边形集合,可以是三角形,也可以是六边形等,但是目前的研究最多的就是三角形集合,因为三角形是边数最少的凸多边形,划分粒度较小,能够完全铺满整个行走区域,降低不规则凸多边形的个数,但是导航网格表示也有一些缺点,一是需要消耗大量内存存储结点。二是难以适应动态场景。可见上述的传统的场景地图表示方法仅仅能够适应2D场景以及早期的简单3D场景,不能适应大型3D场景。

发明内容

针对现有技术存在的问题,本发明提供一种面向3D场景的导航网格地图表示方法。

本发明的技术方案如下:

一种面向3D场景的导航网格地图表示方法,包括:

步骤1、抽取3D场景中的可行走层次平面,得到可行走层次平面集合;

步骤2、抽象可行走层次平面内寻路角色的初始不可通过区域;

步骤3、对初始不可通过区域中相交区域进行区域合并得到最终不可通过区域;

步骤4、对层次平面内的约束进行约束Delaunay三角剖分;

步骤5、层次平面集合内所有层次平面的三角形构成了最终的3D场景导航网格。

所述步骤1,包括:

步骤1.1、将3D场景中Y轴为0的层次平面F0作为初始可行走层次平面,将层次平面F0添加到可行走层次平面集合F中,接着执行步骤1.2;

步骤1.2、选择可行走层次平面集合F中第一个未遍历的层次平面Fi,循环遍历与层次平面Fi相连的未加入层次平面集合F的层次平面:若存在满足距离层次平面Fi的高度小于寻路角色能够跨过的最大高度H或者坡度β小于寻路角色能够行走的最大坡度α的层次平面Fj,并且层次平面Fj的宽度和长度均大于2R时,层次平面Fj为可行走层次平面,初始化层次平面Fj的边界,并将可行走层次平面Fj添加到可行走层次平面集合F中,接着执行步骤1.3;R为寻路角色能够通过的最小狭窄区域的宽度;

步骤1.3、不断循环执行步骤1.2,直至所有层次平面被遍历,遍历结束后,执行步骤1.4;

步骤1.4、输出可行走层次平面集合F={F0,F1,…,Fi}。

所述步骤2,包括:

步骤2.1、抽象出可行走层次平面内的静态障碍物不可通过区域:将3D场景中静态障碍物模型与可行走层次平面进行交运算得到多个交点,这些交点组成的闭合多边形区域即是障碍物不可通过区域;

步骤2.2、抽象出可行走层次平面内的低门洞不可通过区域:可行走层次平面与静态障碍物模型相交得到多个交点,再将层次平面向上平移一个阈值H得到新的层次平面,将新的层次平面与当前静态障碍物模型的交点向平移前的层次平面投影得到投影点,平移前的层次平面与静态障碍物模型得到的交点与所述投影点组成的闭合多边形区域即低门洞不可通过区域;

步骤2.3、抽象出可行走层次平面内的狭窄不可通过区域:通过作垂线计算两个不可通过区域中的一个不可通过区域的每个顶点到另一个不可通过区域的各边的距离,当距离的最小值小于寻路角色能够通过的最小狭窄区域的宽度R时,则此时这两个不可通过区域之间的两个最短距离对应的垂线与两条边组成的闭合多边形区域作为狭窄不可通过区域;

步骤2.4、可行走层次平面内的静态障碍物不可通过区域、低门洞不可通过区域、狭窄不可通过区域共同构成了初始不可通过区域。

所述步骤2.2,包括:

步骤2.2.1、将层次平面F0与静态障碍物模型相交得到M个交点,层次平面F0向上平移一个阈值H得到的层次平面F0h与当前静态障碍物模型相交得到N个交点;如果M和N均为0,则执行步骤2.2.6;否则,将这M+N个交点以Y轴为轴进行顺时针排序;从第一个交点开始,将第一个交点作为当前点开始循环执行步骤2.2.2,直至遍历结束,遍历结束后执行步骤2.2.5;

步骤2.2.2、获得当前点,以及当前点的下一个点,如果当前点和下一个点均是在层次平面F0内,则增加一个不可通过线段,接着选择下一个点作为当前点,继续执行步骤2.2.2;否则,如果当前点和下一个点这两个点中有一个在层次平面F0内,假定当前点在层次平面F0内,下一个点不在层次平面F0内,则执行步骤2.2.3;如果当前点和下一个点均在层次平面F0h内,则执行步骤2.2.4;

步骤2.2.3、查找静态障碍物模型中是否存在一个点(x,y,z)在当前点f和下一个点g之间,即满足f.x<x<g.x,f.y<y<g.y,f.z<z<g.z,如果存在这样的点,则将g点向层次平面F0做投影得到g’点,新增加不可通过线段fg’,接着选择g点作为当前点,继续执行步骤2.2.2;如果不存在这样的点则不做处理,直接选择g点作为当前点,继续执行步骤2.2.2;

步骤2.2.4、查找静态障碍物模型中是否存在一个点(x,y,z)满足该点在层次平面F0h的下方,并且f.x<x<g.x,f.z<z<g.z,如果存在这样的点则将f、g两点均向层次平面F0做投影得到f’、g’两点,新增加不可通过线段f’g’,接着选择g点作为当前点,继续执行步骤2.2.2;如果不存在这样的点则不做处理,直接选择g点作为当前点,继续执行步骤2.2.2;

步骤2.2.5、遍历结束后,得到若干不可通过线段,继续遍历与层次平面F0h相交的N个交点,将这N个交点按顺时针排序,依次遍历相邻的两个点k、m,查找静态障碍物模型中是否存在一个点(x,y,z)满足该点在层次平面F0h的下方,并且k.x<x<m.x,k.z<z<m.z,如果存在这样的点则将k、m两点均向层次平面F0做投影得到k’、m’两点,新增加不可通过线段k’m’,直至遍历结束,若干不可通过线段及约束边组成的闭合多边形区域作为低门洞不可通过区域;

步骤2.2.6、获得不与层次平面F0、层次平面F0h相交的静态障碍物模型中Y值最高的点和Y值最低的点,如果两个点均在两个层次平面F0和F0h之间,则获得该静态障碍物模型在层次平面F0的投影区域,将这个投影区域作为一个低门洞不可通过区域,否则不作处理。

所述步骤3中采用Weiler-Atherton多边形裁剪算法对初始不可通过区域中的多边形进行区域合并得到最终不可通过区域,包括:

步骤3.1、将初始不可通过区域中的多边形的顶点顺时针处理,保证相邻顶点的连线为多边形的边;

步骤3.2、从初始不可通过区域中的多边形P1中的任一不在多边形P2内的顶点A出发,沿着多边形P1的顶点A顺时针方向检测多边形P1每一条边:如果顶点A与下一顶点B所构成的边是与多边形P2不相交的,则顶点B作为合并后的区域中一个顶点;如果顶点B与下一顶点C所构成的边是与多边形P2相交的,则交点V1为合并后的区域中一个顶点;然后顺时针方向继续检测多边形P2的约束边,直至返回到多边形P1中的顶点A,找到的所有合并后的区域中的顶点,依次连接形成最终不可通过区域。

所述步骤4中采用增量式约束Delaunay三角剖分方法对层次平面内的约束进行约束Delaunay三角形剖分,层次平面Fi边界的顶点以及最终不可通过区域的顶点为约束顶点,层次平面Fi边界的边以及最终不可通过区域的边为约束边,约束顶点和约束边合称为约束,所述步骤4包括:

步骤4.1、求得能包含层次平面Fi的所有约束的Delaunay三角形,形成一个约束Delaunay三角形集合Ti,此时约束Delaunay三角形集合Ti中只包含一个三角形;

步骤4.2、利用增量式约束Delaunay三角剖分方法向约束Delaunay三角形集合Ti中插入约束顶点和约束边,直至插入结束执行步骤4.3;

步骤4.3、删除掉层次平面Fi边界之外的三角形,以及最终不可通过区域内的三角形,从而得到层次平面Fi的最终约束Delaunay三角形集合Ti

所述步骤4.2包括:

步骤4.2.1、向约束Delaunay三角形集合Ti中插入约束顶点P;

步骤4.2.1.1、在约束Delaunay三角形集合Ti中,定位约束顶点P所在的三角形t;

步骤4.2.1.2、连接约束顶点P及其所在三角形t的三个顶点,将三角形t分成三个三角形t1、t2、t3;

步骤4.2.1.3、分别判断三角形t1、t2、t3中约束顶点P的对边是否为约束边:是,则约束边不做更改,否则进行步骤4.2.1.4;

步骤4.2.1.4、根据Lawson局部优化算法优化三角形t1、t2、t3,形成新的约束Delaunay三角形集合Ti,执行步骤4.2.1.1,直到所有约束顶点均已插入完成,得到新的约束Delaunay三角形集合Ti,执行步骤4.2.2;

步骤4.2.2、向约束Delaunay三角形集合Ti中插入约束边:插入约束边ab到约束Delaunay三角形集合Ti中;

步骤4.2.2.1、删除约束Delaunay三角形集合Ti中被约束边ab切割的三角形t1、t2、…、tk,从而形成新的约束Delaunay三角形集合Ti和一个多边形区域;

步骤4.2.2.2、将约束边ab添加到这个多边形区域中,将多边形区域分割成了约束边ab的左右两个多边形区域;

步骤4.2.2.3、分别在约束边ab的左右两个多边形区域内,利用外接圆准则重新对这两个多边形区域进行约束Delaunay三角形剖分,分别得到两个约束Delaunay三角形集合,将这两个约束Delaunay三角形集合添加到步骤4.2.2.1中的约束Delaunay三角形集合Ti中得到新的约束Delaunay三角集合Ti,执行步骤4.2.2.1,直到所有约束边均已插入完成,得到新的约束Delaunay三角形集合Ti,即得到当前层次平面的三角形。

有益效果:

本发明提供的一种面向3D场景的导航网格地图表示方法,首先抽取3D场景中的可行走层次平面,得到可行走层次平面集合,将孤立的平面以及不可行走的平面去除;抽象可行走层次平面内寻路角色的初始不可通过区域,能够实现将3D场景中的模型抽象为不可通过区域;对初始不可通过区域中的多边形进行区域合并得到最终不可通过区域;合并初始不可通过区域中相交的区域,形成最终不可通过区域,提高效率。对层次平面内的约束进行约束Delaunay三角形剖分,形成一个三角形集合;最终导航网格的构建,所有可行走层次平面内的三角形集合共同构成了最终的导航网格。最终的导航网格能够将障碍物和可行走区域充分分离。本发明是应用在数字媒体技术领域中,将增量式约束Delaunay三角剖分方法应用到3D场景中,从而达到对3D场景利用导航网格进行地图表示的目的。本发明有效地保证了障碍物与可行走区域的分离。

附图说明

图1为本发明具体实施方式的面向3D场景的导航网格地图表示方法的流程图;

图2为本发明具体实施方式的静态障碍物不可通过区域示意图;

图3为本发明具体实施方式的低门洞不可通过区域识别示意图;

图4为本发明具体实施方式的狭窄不可通过区域识别示意图;

图5为本发明具体实施方式的区域合并算法描述示意图,其中(a)为合并之前的区域示意图,(b)为合并之后的区域示意图;

图6为本发明具体实施方式的图4进行区域合并之后的结果图。

图7为本发明具体实施方式的获得包含平面内所有约束的大三角形示意图。

图8为本发明具体实施方式的Lawson局部优化示意图,其中(a)为Lawson局部优化前的示意图,(b)为Lawson局部优化后的示意图;

图9为本发明具体实施方式的插入约束边示意图,其中(a)为被ab切割的三角形集合示意图,(b)为构成PL和PR两个多边形区域示意图,(c)为重新对PL和PR多边形区域进行剖分之后的结果图;

图10为本发明具体实施方式的构成最终导航网格示意图;

图11为本发明具体实施方式的步骤1的流程图;

图12为本发明具体实施方式的步骤2的流程图;

图13为本发明具体实施方式的步骤4的流程图。

具体实施方式

下面结合附图对本发明的具体实施方式做详细说明。

一种面向3D场景的导航网格地图表示方法,方法的流程图如图1所示,包括:

步骤1、抽取3D场景中的可行走层次平面,得到可行走层次平面集合;

所述步骤1,如图11所示,包括:

步骤1.1、将3D场景中Y轴为0的层次平面F0(地面)作为初始可行走层次平面,将层次平面F0添加到可行走层次平面集合F中,接着执行步骤1.2;

3D场景可能有多个层次平面,寻路角色可以在不同层次平面上行走,但是层次平面与层次平面之间是连通的,可以通过斜坡连接,没有孤立的层次平面,即所有的层次平面是连通的。要抽取当前场景的层次平面。

步骤1.2、选择可行走层次平面集合F中第一个未遍历的层次平面Fi,循环遍历与层次平面Fi相连的未加入层次平面集合F的层次平面:若存在满足距离层次平面Fi的高度小于寻路角色能够跨过的最大高度H或者坡度β小于寻路角色能够行走的最大坡度α的层次平面Fj,并且层次平面Fj的宽度和长度均大于2R时,层次平面Fj为可行走层次平面,初始化层次平面Fj的边界,并将可行走层次平面Fj添加到可行走层次平面集合F中,接着执行步骤1.3;R为寻路角色能够通过的最小狭窄区域的宽度;

步骤1.3、不断循环执行步骤1.2,直至所有层次平面被遍历,遍历结束后,执行步骤1.4;

步骤1.4、输出可行走层次平面集合F={F0,F1,…,Fi}。

步骤2、抽象可行走层次平面内寻路角色的初始不可通过区域;

所述步骤2,如图12所示,包括:

步骤2.1、抽象出可行走层次平面内的静态障碍物不可通过区域:将3D场景中静态障碍物模型与可行走层次平面进行交运算得到多个交点,这些交点组成的闭合多边形区域即是障碍物不可通过区域,图2为一个层次平面内的障碍物不可通过区域示意图,两个多边形A、B为两个静态障碍物不可通过区域;

步骤2.2、抽象出可行走层次平面内的低门洞不可通过区域:可行走层次平面与静态障碍物模型相交得到多个交点,再将层次平面向上平移一个阈值H得到新的层次平面,将新的层次平面与当前静态障碍物模型的交点向平移前的层次平面投影得到投影点,平移前的层次平面与静态障碍物模型得到的交点与所述投影点组成的闭合多边形区域即低门洞不可通过区域;

所述步骤2.2,包括:

步骤2.2.1、将层次平面F0与静态障碍物模型相交得到M=4个交点,如图3所示,分别是x1、x2、x3、x4,层次平面F0向上平移一个阈值H得到的层次平面F0h与当前静态障碍物模型相交得到N=4个交点,分别是y1、y2、y3、y4;如果M和N均为0,则执行步骤2.2.6;否则,将这M+N=8个交点以Y轴为轴进行顺时针排序,排序的结果为x1、x2、y2、y4、x4、x3、y3、y1;从第一个交点x1开始,将第一个交点x1作为当前点开始循环执行步骤2.2.2,直至遍历结束,遍历结束后执行步骤2.2.5;

步骤2.2.2、获得当前点f,以及当前点的下一个点g,如果点f和点g均是在层次平面F0内,则增加一个不可通过线段fg,接着选择g点作为当前点,继续执行步骤2.2.2;否则,如果f点和g点两个点中有一个在层次平面F0内,假定f点在层次平面F0内,g点不在层次平面F0内,则执行步骤2.2.3;如果f点和g点均在层次平面F0h内,则执行步骤2.2.4;

步骤2.2.3、查找静态障碍物模型中是否存在一个点(x,y,z)在f点和g点之间,即满足f.x<x<g.x,f.y<y<g.y,f.z<z<g.z,如果存在这样的点,则将g点向层次平面F0做投影得到g’点,新增加不可通过线段fg’,接着选择g点作为当前点,继续执行步骤2.2.2;如果不存在这样的点则不做处理,直接选择g点作为当前点,继续执行步骤2.2.2;

步骤2.2.4、查找静态障碍物模型中是否存在一个点(x,y,z)满足该点在层次平面F0h的下方,并且f.x<x<g.x,f.z<z<g.z,如果存在这样的点则将f、g两点均向层次平面F0做投影得到f’、g’两点,新增加不可通过线段f’g’,接着选择g点作为当前点,继续执行步骤2.2.2;如果不存在这样的点则不做处理,直接选择g点作为当前点,继续执行步骤2.2.2;

步骤2.2.5、遍历结束后,得到若干不可通过线段,如图3所示,新增加线段x1y1’,y3’x3,x3x4,x4y4’,y2’x2,x2x1共6条线段。继续遍历与层次平面F0h相交的N个交点,将这N个交点按顺时针排序,依次遍历相邻的两个点k、m,查找静态障碍物模型中是否存在一个点(x,y,z)满足该点在层次平面F0h的下方,并且k.x<x<m.x,k.z<z<m.z,如果存在这样的点则将k、m两点均向层次平面F0做投影得到k’、m’两点,新增加不可通过线段k’m’,直至遍历结束,若干不可通过线段及约束边组成的闭合多边形区域作为低门洞不可通过区域,如图3所示,遍历结束后新增加两条约束边y1’y2’以及y3’y4’,由此这8条组成两个闭合多边形区域x1x2y1’y2’以及x3x4y3’y4’;

步骤2.2.6、获得不与层次平面F0、层次平面F0h相交的静态障碍物模型中Y值最高的点和Y值最低的点,如果两个点均在两个层次平面F0和F0h之间,则获得该静态障碍物模型在层次平面F0的投影区域,将这个投影区域作为一个低门洞不可通过区域,否则不作处理。

步骤2.3、抽象出可行走层次平面内的狭窄不可通过区域:通过作垂线计算两个不可通过区域中的一个不可通过区域的每个顶点到另一个不可通过区域的各边的距离,当距离的最小值小于寻路角色能够通过的最小狭窄区域的宽度R时,则此时这两个不可通过区域之间的两个最短距离对应的垂线与两条边组成的闭合多边形区域作为狭窄不可通过区域;如图4所示,区域B的顶点c和顶点d到区域A的距离小于R,则垂线ce和df与边ab和cd共同构成的闭合多边形cefd为一个狭窄不可通过区域。

步骤2.4、可行走层次平面内的静态障碍物不可通过区域、低门洞不可通过区域、狭窄不可通过区域共同构成了初始不可通过区域。

步骤3、对初始不可通过区域中相交区域进行区域合并得到最终不可通过区域;

所述步骤3中采用Weiler-Atherton多边形裁剪算法对初始不可通过区域中的相交区域进行区域合并得到最终不可通过区域,包括:

步骤3.1、将初始不可通过区域中的多边形的顶点顺时针处理,保证相邻顶点的连线为多边形的边;如图5(a)的区域P1的顶点逆时针处理后的顶点顺序为ABCDE;

步骤3.2、如图5(a)所示,从初始不可通过区域中的多边形P1中的任一不在多边形P2内的顶点A出发,沿着多边形P1的顶点A顺时针方向检测多边形P1每一条边:如果顶点A与下一顶点B所构成的边是与多边形P2不相交的,则顶点B作为合并后的区域中一个顶点;如果顶点B与下一顶点C所构成的边是与多边形P2相交的,则交点V1为合并后的区域中一个顶点;然后顺时针方向继续检测多边形P2的约束边,直至返回到多边形P1中的顶点A,找到的所有合并后的区域中的顶点,依次连接形成最终不可通过区域。如图5(b)为图5(a)的区域合并后构成的区域即最终不可通过区域。如图6为图4的三个初始不可通过区域进行合并之后的最终不可通过区域,图4中区域A、B以及cefd,三个区域合并之后构成了图6中一个最终不可通过区域。

步骤4、对层次平面内的约束进行约束Delaunay三角剖分;

所述步骤4中采用增量式约束Delaunay三角剖分方法对层次平面内的约束进行约束Delaunay三角形剖分,层次平面Fi边界的顶点以及最终不可通过区域的顶点为约束顶点,层次平面Fi边界的边以及最终不可通过区域的边为约束边,约束顶点和约束边合称为约束,

如图13所示,所述步骤4具体步骤包括:

步骤4.1、求得能包含层次平面Fi的所有约束的Delaunay三角形,形成一个约束Delaunay三角形集合Ti,此时约束Delaunay三角形集合Ti中只包含一个三角形,如图7所示,最外围的大三角形即为包含所有约束的三角形;

步骤4.2、利用增量式约束Delaunay三角剖分方法向约束Delaunay三角形集合Ti中插入约束顶点和约束边,直至插入结束执行步骤4.3;

所述步骤4.2包括:

步骤4.2.1、向约束Delaunay三角形集合Ti中插入约束顶点P;

如图13所示,步骤4.2.1具体步骤如下:

步骤4.2.1.1、在约束Delaunay三角形集合Ti中,定位约束顶点P所在的三角形t;

步骤4.2.1.2、连接约束顶点P及其所在三角形t的三个顶点,将三角形t分成三个三角形t1、t2、t3,如图8(a)所示;

步骤4.2.1.3、分别判断三角形t1、t2、t3中约束顶点P的对边是否为约束边:是,则约束边不做更改,否则进行步骤4.2.1.4;

步骤4.2.1.4、根据Lawson局部优化算法优化三角形t1、t2、t3,形成新的约束Delaunay三角形集合Ti,如图8(a)所示为Lawson局部优化前示意图,图8(b)为Lawson局部优化后示意图。执行步骤4.2.1.1,直到所有约束顶点均已插入完成,得到新的约束Delaunay三角形集合Ti,执行步骤4.2.2;

步骤4.2.2、向约束Delaunay三角形集合Ti中插入约束边:插入约束边ab到约束Delaunay三角形集合Ti中;

步骤4.2.2.1、删除约束Delaunay三角形集合Ti中被约束边ab切割的三角形t1、t2、…、t5,如图9(a)所示,从而形成新的约束Delaunay三角形集合Ti和一个多边形区域;

步骤4.2.2.2、将约束边ab添加到这个多边形区域中,将多边形区域分割成了约束边ab的左右两个多边形区域,如图9(b)所示的PL和PR两个多边形区域;

步骤4.2.2.3、分别在约束边ab的左右两个多边形区域内,利用外接圆准则重新对这两个多边形区域进行约束Delaunay三角形剖分,分别得到两个约束Delaunay三角形集合,将这两个约束Delaunay三角形集合添加到步骤4.2.2.1中的约束Delaunay三角形集合Ti中得到新的约束Delaunay三角集合Ti,如图9(c)所示为重新剖分之后构成的三角形集合示意图,执行步骤4.2.2.1,直到所有约束边均已插入完成,得到新的约束Delaunay三角形集合Ti,即得到当前层次平面的三角形。

步骤4.3、删除掉层次平面Fi边界之外的三角形,以及最终不可通过区域内的三角形,从而得到层次平面Fi的最终约束Delaunay三角形集合Ti

步骤5、层次平面集合内所有层次平面的三角形构成了最终的3D场景导航网格。如图10所示,为最终的3D场景导航网格示意图,图中的所有三角形组成的集合即为最终的导航网格。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号