掌桥专利:专业的专利平台
掌桥专利
首页

一种路径导出方法及终端

文献发布时间:2023-06-19 16:06:26



技术领域

本发明涉及图像处理领域,尤其涉及一种路径导出方法及终端。

背景技术

在游戏制作中常出现需要在3D场景中确定2D路径的情况,如跑酷类游戏或体育运动类游戏,其任务主要基于3D场景中的某一平面上进行移动,但是3D场景的制作人员在制作3D场景时,不一定会将对应平面上的路径点导出,而生成3D场景之后再获取所需要的路径点较为复杂,为后续游戏的制作造成不便。

发明内容

本发明所要解决的技术问题是:提供一种路径导出方法及终端,实现在3D场景中一面上路径点的快速生成。

为了解决上述技术问题,本发明采用的一种技术方案为:

一种路径导出方法,包括步骤:

S1、获取预设平面及预设3D场景,求取所述预设平面及所述预设3D场景中目标面的第一交点集合及所述第一交点集合中每一第一交点所对应的第一法线组成的第一法线集合;

S2、根据预设的法线约束范围筛选所述第一法线集合中的第一法线得到第二法线集合,根据所述第二法线集合筛选所述第一交点集合得到第二交点集合;

S3、获取起始点值,根据所述起始点值设定所述第二交点集合中的一个第二交点为起始点,根据所述起始点及所述第二交点集合中其余每一个第二交点生成带方向的目标路径。

为了解决上述技术问题,本发明采用的另一种技术方案为:

一种路径导出终端,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

S1、获取预设平面及预设3D场景,求取所述预设平面及所述预设3D场景中目标面的第一交点集合及所述第一交点集合中每一第一交点所对应的第一法线组成的第一法线集合;

S2、根据预设的法线约束范围筛选所述第一法线集合中的第一法线得到第二法线集合,根据所述第二法线集合筛选所述第一交点集合得到第二交点集合;

S3、获取起始点值,根据所述起始点值设定所述第二交点集合中的一个第二交点为起始点,根据所述起始点及所述第二交点集合中其余每一个第二交点生成带方向的目标路径。

本发明的有益效果在于:预设平面,获取预设平面与预设3D场景中目标面的交点及交点对应的法线,通过对法线的约束实现对交点的筛选,通过获取起始点值对无需的交点集合进行排序生成带方向的目标路径,只需预设平面就能实现预设3D场景中目标面上路径的自动生成,无需开发人员手动设置路径点,根据需要可以调整预设平面的位置,提高了在3D场景中2D路径的生成效率。

附图说明

图1为本发明实施例的一种路径导出方法的步骤流程图;

图2为本发明实施例的一种路径导出终端的结构示意图;

图3为本发明实施例的一种切点及第一法向量示意图;

图4为本发明实施例的预设切面和预设3D场景的第一交点示意图;

图5-图7为本发明实施例的一种目标路径调整方式示意图;

图8为本发明实施例的一种目标路径示意图。

标号说明:

1、一种路径导出终端;2、处理器;3、存储器。

具体实施方式

为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。

请参照图1及图3至图8,一种路径导出方法,包括步骤:

S1、获取预设平面及预设3D场景,求取所述预设平面及所述预设3D场景中目标面的第一交点集合及所述第一交点集合中每一第一交点所对应的第一法线组成的第一法线集合;

S2、根据预设的法线约束范围筛选所述第一法线集合中的第一法线得到第二法线集合,根据所述第二法线集合筛选所述第一交点集合得到第二交点集合;

S3、获取起始点值,根据所述起始点值设定所述第二交点集合中的一个第二交点为起始点,根据所述起始点及所述第二交点集合中其余每一个第二交点生成带方向的目标路径。

从上述描述可知,本发明的有益效果在于:预设平面,获取预设平面与预设3D场景中目标面的交点及交点对应的法线,通过对法线的约束实现对交点的筛选,通过获取起始点值对无需的交点集合进行排序生成带方向的目标路径,只需预设平面就能实现预设3D场景中目标面上路径的自动生成,无需开发人员手动设置路径点,根据需要可以调整预设平面的位置,提高了在3D场景中2D路径的生成效率。

进一步地,所述S1具体为:

S11、通过Unity3D获取所述预设3D场景中所有模型的与所述目标面对应的三角面索引,获取所述三角面索引中每一三角面所对应的三角面点,对所有所述三角面点进行去重得到三角面点集合,并标记三角面与三角面点的对应关系;

S12、获取预设切点,并获取所述预设平面的第一法向量;

S13、将每一所述三角面点的坐标与所述切点的坐标相减得到第一向量,将所述第一向量点乘所述第一法向量得到待判值,若一三角面所对应的所述三角面点的所述待判值符号不同,则标记所述三角面为目标三角面;

S14、根据所述目标三角面所对应的目标三角面点获取所述第一交点,所述目标三角面的第二法线即为所述第一交点的第一法线。

由上述描述可知,利用Unity3D的特性,获取三角面的三点坐标,与切点坐标相减得到第一向量,若三个点所对应的第一向量点乘第一法向量得到的待判值符号不同,则说明该三角面的三个点分别位于预设平面的两侧,及预设平面与目标面的交点在该三角面上,通过此方式求取交点提高了计算效率。

进一步地,所述S2及所述S3之间还包括:

S31、获取所述第二交点集合中相邻两个所述第二交点的距离;

S32若所述距离大于阈值,则随机剔除相邻两个所述第二交点中一个所述第二交点。

由上述描述可知,删除第二交点集合中距离过近的两点中的一点,减小了最终生成的目标路径所对应的文件大小,在需要高精度路径的情况下,可以使用插值算法等得到点密度高的路径,在节约存储空间的同时不同影响目标路径的应用效果。

进一步地,所述S3具体为:

获取起始点值,根据所述起始点值使用Unity中交换点位置功能将所述第二交点集合中一第二交点设置到索引为0的位置,并使用Unity中路径点排序功能根据所述起始点及所述第二交点集合中其余每一第二交点生成带方向的目标路径;

将所述目标路径以JSON数据格式导出。

由上述描述可知,通过Unity中的索引进行排序确定第二交点集合中各个点的顺序,最终确定出带有方向的目标路径,并且能够接收输入的起始点值进行起始点的自由设定,提高了生成目标路径的灵活度。

进一步地,所述S14中所述根据所述目标三角面所对应的目标三角面点获取所述第一交点具体为:

S141、获取一个第一目标三角面所对应的第一目标三角面点v0、v1及v2;所述v0位于所述预设平面一侧,所述v1及v2位于所述预设平面另一侧,获取所述切点v3;

S142、求第一方向向量d1=v1-v0;第二方向向量d2=v2-v0,第三方向向量d3=v3-v0;

S143、将所述第一方向向量点乘所述第一法向量得到第一投影p1;将所述第二方向向量点乘所述第二法向量得到第二投影p2,并将所述第三方向向量点乘所述第一法向量得到第三投影p0;

S144、则与所述第一目标三角面对应的所述第一交点pv1为:pv1=v0+d1*(p0/p1);pv2=v0+d2*(p0/p2);

S145、循环所述S141至所述S144,直至所有所述目标三角面计算完成,所有所述目标三角面所对应的所述第一交点组成所述第一交点集合。

由上述描述可知,确定目标三角面之后,通过其与预设平面之间的关系获取到每个目标三角面所对应的第一交点最终计算得到第一交点集合。

请参照图2,一种路径导出终端,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

S1、获取预设平面及预设3D场景,求取所述预设平面及所述预设3D场景中目标面的第一交点集合及所述第一交点集合中每一第一交点所对应的第一法线组成的第一法线集合;

S2、根据预设的法线约束范围筛选所述第一法线集合中的第一法线得到第二法线集合,根据所述第二法线集合筛选所述第一交点集合得到第二交点集合;

S3、获取起始点值,根据所述起始点值设定所述第二交点集合中的一个第二交点为起始点,根据所述起始点及所述第二交点集合中其余每一个第二交点生成带方向的目标路径。

本发明的有益效果在于:预设平面,获取预设平面与预设3D场景中目标面的交点及交点对应的法线,通过对法线的约束实现对交点的筛选,通过获取起始点值对无需的交点集合进行排序生成带方向的目标路径,只需预设平面就能实现预设3D场景中目标面上路径的自动生成,无需开发人员手动设置路径点,根据需要可以调整预设平面的位置,提高了在3D场景中2D路径的生成效率。

进一步地,所述S1具体为:

S11、通过Unity3D获取所述预设3D场景中所有模型的与所述目标面对应的三角面索引,获取所述三角面索引中每一三角面所对应的三角面点,对所有所述三角面点进行去重得到三角面点集合,并标记三角面与三角面点的对应关系;

S12、获取预设切点,并获取所述预设平面的第一法向量;

S13、将每一所述三角面点的坐标与所述切点的坐标相减得到第一向量,将所述第一向量点乘所述第一法向量得到待判值,若一三角面所对应的所述三角面点的所述待判值符号不同,则标记所述三角面为目标三角面;

S14、根据所述目标三角面所对应的目标三角面点获取所述第一交点,所述目标三角面的第二法线即为所述第一交点的第一法线。

由上述描述可知,利用Unity3D的特性,获取三角面的三点坐标,与切点坐标相减得到第一向量,若三个点所对应的第一向量点乘第一法向量得到的待判值符号不同,则说明该三角面的三个点分别位于预设平面的两侧,及预设平面与目标面的交点在该三角面上,通过此方式求取交点提高了计算效率。

进一步地,所述S2及所述S3之间还包括:

S31、获取所述第二交点集合中相邻两个所述第二交点的距离;

S32若所述距离大于阈值,则随机剔除相邻两个所述第二交点中一个所述第二交点。

由上述描述可知,删除第二交点集合中距离过近的两点中的一点,减小了最终生成的目标路径所对应的文件大小,在需要高精度路径的情况下,可以使用插值算法等得到点密度高的路径,在节约存储空间的同时不同影响目标路径的应用效果。

进一步地,所述S3具体为:

获取起始点值,根据所述起始点值使用Unity中交换点位置功能将所述第二交点集合中一第二交点设置到索引为0的位置,并使用Unity中路径点排序功能根据所述起始点及所述第二交点集合中其余每一第二交点生成带方向的目标路径;

将所述目标路径以JSON数据格式导出。

由上述描述可知,通过Unity中的索引进行排序确定第二交点集合中各个点的顺序,最终确定出带有方向的目标路径,并且能够接收输入的起始点值进行起始点的自由设定,提高了生成目标路径的灵活度。

进一步地,所述S14中所述根据所述目标三角面所对应的目标三角面点获取所述第一交点具体为:

S141、获取一个第一目标三角面所对应的第一目标三角面点v0、v1及v2;所述v0位于所述预设平面一侧,所述v1及v2位于所述预设平面另一侧,获取所述切点v3;

S142、求第一方向向量d1=v1-v0;第二方向向量d2=v2-v0,第三方向向量d3=v3-v0;

S143、将所述第一方向向量点乘所述第一法向量得到第一投影p1;将所述第二方向向量点乘所述第二法向量得到第二投影p2,并将所述第三方向向量点乘所述第一法向量得到第三投影p0;

S144、则与所述第一目标三角面对应的所述第一交点pv1为:pv1=v0+d1*(p0/p1);pv2=v0+d2*(p0/p2);

S145、循环所述S141至所述S144,直至所有所述目标三角面计算完成,所有所述目标三角面所对应的所述第一交点组成所述第一交点集合。

由上述描述可知,确定目标三角面之后,通过其与预设平面之间的关系获取到每个目标三角面所对应的第一交点最终计算得到第一交点集合。

请参照图1、图3至图8,本发明的实施例一为:

一种路径导出方法,包括步骤:

S1、获取预设平面及预设3D场景,求取所述预设平面及所述预设3D场景中目标面的第一交点集合及所述第一交点集合中每一第一交点所对应的第一法线组成的第一法线集合;

在一种可选的实施方式中,接收选点请求,根据所述选点请求获取目标面上的一个目标点,根据目标点和目标面的法线确定预设平面;将第一交点集合及第一法线集合存入数组中;

S2、根据预设的法线约束范围筛选所述第一法线集合中的第一法线得到第二法线集合,根据所述第二法线集合筛选所述第一交点集合得到第二交点集合;

在一种可选的实施方式中,法线约束范围为法线角度约束范围:在图4所示坐标中朝向Z轴正向(0度)至朝向Y轴正向内的法线进行剔除得到第二交点集合;

根据法线角度进行点的剔除,实现剔除冗余点,如图4所示的滑道,在滑道上的三角面的法线是趋近向上的,而滑道下面的三角面的法线是趋近向下的,这样就能剔除切割出来向下的点,得到期望路径;

S3、获取所述第二交点集合中相邻两个所述第二交点的距离,若所述距离大于阈值,则随机剔除相邻两个所述第二交点中一个所述第二交点得到新的第二交点集合;

S4、获取起始点值,根据所述起始点值使用Unity中交换点位置功能将所述第二交点集合中一第二交点设置到索引为0的位置,并使用Unity中路径点排序功能根据所述起始点及所述第二交点集合中其余每一第二交点的位置生成带方向的目标路径;

请参照图4,其中的路径线为点通过绘制线条连接起来的表现,在做这个表现的时候需要固定其第一个点,否则就能从图4中的部分线条的表现中看出来它的端点不在坡道上方,影响路径的使用;

具体的,若第二交点集合中每一第二交点有记录导出顺序,则将第二交点集合中与起始点值对应的一个第二交点与导出的第一个点进行位置交换;若无记录导出顺序,则接收交换请求,根据交换请求将与起始点值对应的一个第二交点与预设位置上的点进行交换;如图4,将起始点值对应的一个第二交点与位于坡顶的点进行交换;

在一种可选的实施方式中,请参照图5-图7,生成目标路径之后还包括:对目标路径中的部分目标路径点进行位移或旋转;通过对目标路径点进行插值计算得到新增点,将新增点加入目标路径;接收新增请求,根据新增请求得到新增点,将新增点加入目标路径;

请参照图8,为处理之后的目标路径,处理之后使得连接目标路径点生成的线条更加平滑;

将所述目标路径以JSON数据格式导出;

具体的,将目标路径点、预设平面、及目标路径点对应的第一发现以JSON数据格式导出。

请参照图1、图3至图8,本发明的实施例二为:

一种路径导出方法,其与实施例一的不同之处在于:

S1具体为:

S11、通过Unity3D获取所述预设3D场景中所有模型的与所述目标面对应的三角面索引,获取所述三角面索引中每一三角面所对应的三角面点,对所有所述三角面点进行去重得到三角面点集合,并标记三角面与三角面点的对应关系;

S12、获取预设切点,并获取所述预设平面的第一法向量;

请参照图3,在一种可选的实施方式中,接收切点坐标,根据切点预设切点,根据切点及切点所在三角面的法线确定预设平面;

切点坐标可由开发人员自行设置,在一种可选的实施方式中,限定角度范围为0-360°;

请参照图4,矩形边框为预设平面,朝向屏幕外的箭头为预设平面的法向量;

请参照图3,为预设平面的法向量的坐标;

S13、将每一所述三角面点的坐标与所述切点的坐标相减得到第一向量,将所述第一向量点乘所述第一法向量得到待判值,若一三角面所对应的所述三角面点的所述待判值符号不同,则标记所述三角面为目标三角面;

S14、根据所述目标三角面所对应的目标三角面点获取所述第一交点,所述目标三角面的第二法线即为所述第一交点的第一法线,具体为:

S141、获取一个第一目标三角面所对应的第一目标三角面点v0、v1及v2;所述v0位于所述预设平面一侧,所述v1及v2位于所述预设平面另一侧,获取所述切点v3;

S142、求第一方向向量d1=v1-v0;第二方向向量d2=v2-v0,第三方向向量d3=v3-v0;

S143、将所述第一方向向量点乘所述第一法向量得到第一投影p1;将所述第二方向向量点乘所述第二法向量得到第二投影p2,并将所述第三方向向量点乘所述第一法向量得到第三投影p0;

S144、则与所述第一目标三角面对应的所述第一交点pv1为:pv1=v0+d1*(p0/p1);pv2=v0+d2*(p0/p2);

S145、循环所述S141至所述S144,直至所有所述目标三角面计算完成,所有所述目标三角面所对应的所述第一交点组成所述第一交点集合。

请参照图2,本发明的实施例三为:

一种路径导出终端1,包括处理器2、存储器3及存储在存储器3上并可在所述处理器2上运行的计算机程序,所述处理器2执行所述计算机程序时实现实施例一或实施例二中的各个步骤。

综上所述,本发明提供了一种路径导出方法及终端,预设平面及3D场景的目标面,获取预设平面及目标面的交点,求取交点对应的法线,通过筛选法线的角度对交点进行筛选、并剔除距离过近的两个相邻交点其中一个得到第二交点集合,再根据接收的起始点值确定第二交点集合中的一个对应的第二交点作为起始点,得到带方向的目标路径,并且对目标路径中的点进行位移、旋转等操作并添加新增点,实现对目标路径的优化;通过预设平面并利用Unity中三角面特性求取交点,实现了目标路径的自动生成,提高了开发速度。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

相关技术
  • 一种路径导出方法及终端
  • 一种用于导出路径损耗改变的方法和用户设备
技术分类

06120114708083