一种弧面模型生成方法及装置与流程

文档序号:12675807阅读:519来源:国知局
一种弧面模型生成方法及装置与流程

本申请涉及模型生成技术领域,更具体地说,涉及一种弧面模型生成方法及装置。



背景技术:

随着3D技术的发展,3D应用业务也如雨后春笋般得到广泛普及。比较常见的如VR游戏等。

3D应用业务场景内一般存在多种对象模型。传统做法是将平面对象模型放置于3D场景中,与场景融合在一起。但是,这种处理方式存在3D化不足,表现力不强等问题。而如果将平面对象模型替换为弧面对象模型,则能够大大提升对象模型在3D场景内的表现力,对于VR类游戏而言,能够大大提升用户的沉浸感。

现有的弧面模型生成方法,一般需要用户提供大量的三维点云,进而利用三维点云生成弧面模型。对于用户而言,其需要提供的数据过多,且无法有效控制所生成弧面模型的弧度和大小,灵活性不足。



技术实现要素:

有鉴于此,本申请提供了一种弧面模型生成方法及装置,用于解决现有弧面模型生成方法所存在的需要用户提供大量三维点云数据,且无法控制所生成弧面模型的弧度、大小的问题。

为了实现上述目的,现提出的方案如下:

一种弧面模型生成方法,包括:

获取输入的待生成的弧面模型的弧度、高度和弧弦长度,所述弧弦长度为弧面模型的径向截面中弧对应的弦的长度;

获取若干采样点的二维坐标,采样点的第一维度方向为所述径向截面中弧对应的弦所在维度方向,采样点的第二维度方向为所述待生成的弧面模型的高度方向,各采样点在第一维度方向上的坐标值属于0至所述弧弦长度,在第二维度方向上的坐标属于0至所述高度;

针对每一所述采样点,确定所述采样点在第三维度方向上的坐标值,所述第三维度方向垂直于所述第一维度方向和所述第二维度方向;

根据各采样点的第一维度方向、第二维度方向和第三维度方向上的坐标值,生成弧面模型。

一种弧面模型生成装置,包括:

参数获取单元,用于获取输入的待生成的弧面模型的弧度、高度和弧弦长度,所述弧弦长度为弧面模型的径向截面中弧对应的弦的长度;

采样点获取单元,用于获取若干采样点的二维坐标,采样点的第一维度方向为所述径向截面中弧对应的弦所在维度方向,采样点的第二维度方向为所述待生成的弧面模型的高度方向,各采样点在第一维度方向上的坐标值属于0至所述弧弦长度,在第二维度方向上的坐标属于0至所述高度;

采样点三维坐标确定单元,用于针对每一所述采样点,确定所述采样点在第三维度方向上的坐标值,所述第三维度方向垂直于所述第一维度方向和所述第二维度方向;

弧面模型生成单元,用于根据各采样点的第一维度方向、第二维度方向和第三维度方向上的坐标值,生成弧面模型。

本申请实施例提供的弧面模型生成方法,终端仅需要输入待生成的弧面模型的弧度、高度和弧弦长度,该弧弦长度为弧面模型的径向截面中弧对应的弦的长度。在此基础上,本申请获取若干采样点的二维坐标,采样点的第一维度方向为所述径向截面中弧对应的弦所在维度方向,采样点的第二维度方向为所述待生成的弧面模型的高度方向,各采样点在第一维度方向上的坐标值属于0至所述弧弦长度,在第二维度方向上的坐标属于0至所述高度;针对每一所述采样点,确定所述采样点在第三维度方向上的坐标值,所述第三维度方向垂直于所述第一维度方向和所述第二维度方向;根据各采样点的第一维度方向、第二维度方向和第三维度方向上的坐标值,生成弧面模型。由此可见,仅需要提供待生成的弧面模型的弧度、高度和弧弦长度即可,本申请自动获取若干采样点,并通过几何关系,确定采样点在第三维度方向上的坐标值,据此得到各采样点的三维坐标值,根据采样点的三维坐标生成弧面模型。本申请不需要提供大量点云数据,并且能够生成所需弧度、高度和弧弦长度的弧面模型。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例公开的一种弧面模型生成方法流程图;

图2a示例了一种弧面模型;

图2b示例了一种弧面模型的径向截面;

图2c示例了一种弧面模型的径向截面中弧的弧度;

图3示例了一种采样点在YOZ平面内投影分布示意图;

图4示例了一种采样点弧面高度求解示意图;

图5示例了另一种采样点弧面高度求解示意图;

图6示例了在UE4引擎中开发的生成弧面模型的界面示意图;

图7为本申请实施例公开的另一种弧面模型生成方法流程图;

图8示例了一种UI元素编辑工作界面示意图;

图9示例了一种VR游戏3D场景示意图;

图10为本申请实施例公开的一种弧面模型生成装置结构示意图;

图11为本申请实施例提供的一种3D引擎服务器硬件结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请实施例公开了一种弧面模型生成方案,其生成的弧面模型可以用于在3D场景中进行展示等。本申请的弧面模型生成方案可以指定待生成的弧面模型的弧度、高度和弧弦长度,且无需输入其它数据,弧面模型的生成过程更加简单,且所生成的弧面模型的弧度和大小可控。

接下来,对本申请的弧面模型生成方法进行介绍,如图1所示,该方法包括:

步骤S100、获取输入的待生成的弧面模型的弧度、高度和弧弦长度,所述弧弦长度为弧面模型的径向截面中弧对应的弦的长度;

参见图2a-2c,其中图2a示例了一种弧面模型,弧面模型的四个角分别为A、B、C、D。弧面模型的高度为h。

图2b示例了弧面模型的径向截面。径向截面包含一条弧AEB,弧AEB对应的弦AB的长度为d,该弦AB的长度又可以称之为弧弦长度。

图2c示例了弧面模型的径向截面中弧的弧度。以弧AEB所在圆的圆心O,向弧AEB的两端连线,OA和OB组成的夹角Θ为弧面模型的弧度。

通过弧度、高度和弧弦长度可以控制弧面模型的弧度和大小。本步骤中,用户根据自己的需要,输入所要生成的弧面模型的弧度、高度和弧弦长度。

步骤S110、获取若干采样点的二维坐标,采样点的第一维度方向为所述径向截面中弧对应的弦所在维度方向,采样点的第二维度方向为所述待生成的弧面模型的高度方向;

为了便于理解,本申请假设在空间三维坐标系中,X坐标固定为0,在YOZ平面上绘制一个平面矩形,平面矩形的宽度为所述弧弦长度d,平面矩形的高度为待生成的弧面模型的高度h。平面矩形的宽度方向为第一维度方向,假设为Y轴方向,平面矩形的高度方向为第二维度方向,假设为Z轴方向。在该平面矩形中获取若干采样点。采样点在第一维度方向上的坐标值属于0至所述弧弦长度d,在第二维度方向上的坐标属于0至所述高度h。

显然,如果各采样点的YZ坐标取值保持不变,而X坐标不再固定为0,各采样点的X坐标取值均匀对应出一个弧形线段,从而各采样点构成一个弧面。

因此,本申请根据输入的待生成弧面模型的高度和弧弦长度,获取若干采样点的二维坐标值。

步骤S120、针对每一所述采样点,确定所述采样点在第三维度方向上的坐标值,所述第三维度方向垂直于所述第一维度方向和所述第二维度方向;

具体地,在确定了采样点的二维坐标值之后,通过几何关系推导,确定所述采样点在第三维度方向上的坐标值。

基于此,可以确定每个采样点的三维坐标值。

步骤S130、根据各采样点的第一维度方向、第二维度方向和第三维度方向上的坐标值,生成弧面模型。

在确定了各采样点的三维坐标值之后,可以根据各采样点的三维坐标值来生成弧面模型。

本申请实施例提供的弧面模型生成方法,仅需要提供待生成的弧面模型的弧度、高度和弧弦长度即可,本申请自动获取若干采样点,并通过几何关系,确定采样点在第三维度方向上的坐标值,据此得到各采样点的三维坐标值,根据采样点的三维坐标生成弧面模型。本申请不需要提供大量点云数据,并且能够生成所需弧度、高度和弧弦长度的弧面模型。

可选的,上述步骤S110,获取若干采样点的二维坐标的过程,具体可以按照如下方式实施:

在由所述径向截面中弧对应的弦所在第一维度方向,以及所述待生成的弧面模型的高度方向所在第二维度方向组成的二维平面内,均匀采样得到若干采样点的投影点。

其中,在第一维度方向和第二维度方向上,相邻投影点的坐标值之差相同,且投影点在第一维度方向上的坐标值属于0至所述弧弦长度d,在第二维度方向上的坐标属于0至所述高度h。

参见图3,其示例了一种采样点在YOZ平面内投影分布示意图。

从图3中可以看出,采样点的投影点的第一维度坐标(即Y轴坐标)属于[0,d];第二维度坐标(即Z轴坐标)属于[0,h]。并且,投影点在Y轴、Z轴方向上的分布都是均匀的。

当然,图3仅仅示例了一种可选的实施方式,采样点在YOZ平面内的投影点分布方式还可以存在其它方式,如非均匀分布等。

进一步地,对上述步骤S120,针对每一所述采样点,确定所述采样点在第三维度方向上的坐标值的过程进行介绍。

具体地,针对每一所述采样点,可以根据所述采样点的第一维度方向上的坐标值、所述弦的长度以及所述弧度,确定所述采样点在第三维度方向上的坐标值。

该过程可以分为两步执行:

S1、根据所述弦的长度以及所述弧度,确定所述弧所在圆形的半径长度;

其中,S1的实现过程,可以参考图2c:

在图2c中从O点向AB作垂线,则由垂线、OA(或OB)以及AB组成垂直三角形。根据正弦值定理可以求得半径长度:

S11、确定所述弧度的一半的正弦值sin(Θ/2);

S12、确定所述弦的长度的一半d/2与所述正弦值的比值(d/2)/sin(Θ/2),比值结果确定为所述弧所在圆形的半径长度。

S2、根据所述采样点的第一维度方向上的坐标值、所述弦的长度以及所述半径长度,确定所述采样点在第三维度方向上的坐标值。

其中,S2的实现过程可以转换为一个数学问题,参见图4所示:

如图4所示的圆中,求取该圆上任意一段圆弧AEB上任意一采样点M的弧面高度x。x可以看作采样点在第三维度方向上的坐标值。

其中,圆弧AEB对应弦AB长度为d,任意一采样点M对应弦AB上的M′点。M′点可以看作采样点M在YOZ平面内的投影点。因此,已知参量为:圆的半径长度r,弦AB的长度d,A M'的长度L,AM′的长度可以看作是采样点M的第一维度方向上的坐标值。

则上述数学求解过程具体实现过程可以包括:

S21、根据相交弦定理,利用采样点的第一维度方向和第三维度方向上的坐标值以及弦的长度,确定所述弧所在圆形中经过所述采样点且垂直于所述弦的另一条弦的长度;

S22、确定所述弧所在圆形的圆心至所述另一条弦的垂线距离为,所述弦的长度的一半减去采样点的第一维度方向上的坐标值;

S23、根据勾股定理,确定如下等式:所述另一条弦的长度的一半的平方与所述圆心至所述另一条弦的垂线距离的平方的和值等于所述半径长度的平方,求解该等式以得到采样点的第三维度方向上的坐标值。

上述数学求解过程可以参照图5所示:

如图5所示,AM′的长度为采样点M的第一维度方向上的坐标值L,M′B的长度为d-L,采样点M在第三维度方向上的坐标值为x。

定义M′F的长度为y。

由相交弦定理可得:

从图5可以看出,圆心O向MF作的垂线与MF和OM组成一个直角三角形。根据勾股定理可得:

求解上述公式,可以确定x的值:

可以看出x值共有两个解,这一点在数学上是完备的,因为除了有小圆弧AEB之外,还存在大圆弧AFB。

具体选择哪一个解可以由用户设定,如选择生成小的弧面模型,则可以选择第二个解,如果选择生成大的弧面模型,可以选择第一个解。

上述介绍了根据采样点的第一维度方向上的坐标值、所述弦的长度以及所述弧度,确定所述采样点在第三维度方向上的坐标值的过程。基于此,仅需要输入待生成的弧面模型的弧度、高度和弧弦长度,本申请即可自动生成若干采样点的三维坐标,进而利用采样点的三维坐标生成弧面模型。

本申请的弧面模型生成方法可以应用于3D引擎中,如UE4引擎等。传统的3D引擎不支持生成弧面模型,因此在创建用对象模型时,仅能够生成平面的对象模型。本申请通过在3D引擎中应用上述弧面模型生成方法,能够在3D引擎中创建弧面模型,添加至3D场景后能够增强表现力。

参见图6,其示例了在UE4引擎中开发的生成弧面模型的界面。其中,HalfAngle选项供使用者指定弧度。Widget Class选项供使用者指定所生成弧面模型的资源路径。Draw Size选项供使用者指定弧弦长度和弧面高度。

在上述实施例的基础上,本申请进一步公开了另一种弧面模型生成方法,参见图7所示,该方法包括:

步骤S200、获取输入的待生成的弧面模型的弧度、高度和弧弦长度,所述弧弦长度为弧面模型的径向截面中弧对应的弦的长度;

步骤S210、获取若干采样点的二维坐标,采样点的第一维度方向为所述径向截面中弧对应的弦所在维度方向,采样点的第二维度方向为所述待生成的弧面模型的高度方向;

步骤S220、针对每一所述采样点,根据所述采样点的第一维度方向上的坐标值、所述弦的长度以及所述弧度,确定所述采样点在第三维度方向上的坐标值,所述第三维度方向垂直于所述第一维度方向和所述第二维度方向;

其中,各采样点在第一维度方向上的坐标值属于0至所述弧弦长度,在第二维度方向上的坐标属于0至所述高度。

步骤S230、根据各采样点的第一维度方向、第二维度方向和第三维度方向上的坐标值,生成弧面模型;

上述步骤S200-S230与前述步骤S100-S130一一对应,此处不再赘述。

步骤S240、响应对目标UI元素的编辑整合操作,利用所述目标UI元素编辑生成UI界面;

具体地,引擎提供了UI元素编辑界面。用户可以在界面中对各类元素进行编辑整合。本步骤中利用用户编辑整合的目标UI元素,编辑生成UI界面。参见图8所示,其示例了一种UI元素编辑工作界面。在界面左侧列表中展示有各种类型的UI元素,界面右侧为编辑面板,可以在该编辑面板中对各种UI元素进行编辑处理。

步骤S250、获取所述UI界面的贴图;

具体地,上一步骤中已经获取到UI界面,本步骤中获取该UI界面的贴图。一般3D引擎中均提供了获取UI界面的贴图的方式,可以根据引擎提供的方法来获取UI界面的贴图。

步骤S260、将所述贴图覆盖至所述弧面模型上,覆盖贴图后的弧面模型用于在3D场景中进行展示。

具体地,该步骤的实现方式可以包括:

S1、将所述弧面模型上各采样点的三维坐标转换为UV坐标;

具体地,弧面模型是三维坐标确定。每一个三维坐标相当于一个顶点。而每一个顶点上面都会包含UV坐标信息用来定位所对应的贴图元素。

其中,假设采样点(顶点)的第一维度方向为Y轴方向,第二维度方向为Z轴方向。则顶点的UV坐标和YZ坐标的关系如下:

Y坐标取值范围为0~d,线性对应U坐标为0~1,如Y取值为0.5*d时,对应的U坐标为0.5;

Z坐标为0~h,线性对应V坐标为0~1,如Z取值为0.8*h时,对应的V坐标为0.8。

基于上述对应关系,可以将弧面模型上各采样点的三维坐标转换为UV坐标。

S2、针对每一采样点,在所述贴图中确定采样点的UV坐标对应的贴图元素;

具体地,贴图为二维图像。因此,贴图中每一贴图元素均可以通过UV坐标来表示。针对每一采样点,根据采样点的UV坐标,在贴图中确定该UV坐标对应的贴图元素。

S3、按照确定的采样点的UV坐标对应的贴图元素,在所述弧面模型的采样点位置处绘制采样点的UV坐标对应的贴图元素。

通过上述处理过程,可以将贴图覆盖在弧面模型上。覆盖了贴图的弧面模型用于加载至3D场景中进行展示。在3D场景中,该弧面模型可以调整位置、朝向等。

弧面模型在3D场景中展示时,能够提升3D表现力,对于VR类游戏而言,能够大大加强用户的沉浸感。参见图9,图9示例了一种VR游戏3D场景,场景中加载的对象模型100为按照本申请方案生成的弧面模型,通过与3D场景融合,大大提升了3D表现力。

下面对本申请实施例提供的弧面模型生成装置进行描述,下文描述的弧面模型生成装置与上文描述的弧面模型生成方法可相互对应参照。

参见图10,图10为本申请实施例公开的一种弧面模型生成装置结构示意图,如图10所示,该装置包括:

参数获取单元11,用于获取输入的待生成的弧面模型的弧度、高度和弧弦长度,所述弧弦长度为弧面模型的径向截面中弧对应的弦的长度;

采样点获取单元12,用于获取若干采样点的二维坐标,采样点的第一维度方向为所述径向截面中弧对应的弦所在维度方向,采样点的第二维度方向为所述待生成的弧面模型的高度方向,各采样点在第一维度方向上的坐标值属于0至所述弧弦长度,在第二维度方向上的坐标属于0至所述高度;

采样点三维坐标确定单元13,用于针对每一所述采样点,确定所述采样点在第三维度方向上的坐标值,所述第三维度方向垂直于所述第一维度方向和所述第二维度方向;

弧面模型生成单元14,用于根据各采样点的第一维度方向、第二维度方向和第三维度方向上的坐标值,生成弧面模型。

应用本实施例的弧面模型生成装置,仅需要提供待生成的弧面模型的弧度、高度和弧弦长度即可,本申请装置自动获取若干采样点,并通过几何关系,确定采样点在第三维度方向上的坐标值,据此得到各采样点的三维坐标值,根据采样点的三维坐标生成弧面模型。本申请不需要提供大量点云数据,并且能够生成所需弧度、高度和弧弦长度的弧面模型。

可选的,所述采样点三维坐标确定单元可以包括:

第一采样点三维坐标确定子单元,用于根据所述采样点的第一维度方向上的坐标值、所述弦的长度以及所述弧度,确定所述采样点在第三维度方向上的坐标值。

可选的,所述第一采样点三维坐标确定子单元可以包括:

半径长度确定单元,用于根据所述弦的长度以及所述弧度,确定所述弧所在圆形的半径长度;

第三维度坐标值确定单元,用于根据所述采样点的第一维度方向上的坐标值、所述弦的长度以及所述半径长度,确定所述采样点在第三维度方向上的坐标值。

可选的,所述半径长度确定单元可以包括:

正弦值确定单元,用于确定所述弧度的一半的正弦值;

比值确定单元,用于确定所述弦的长度的一半与所述正弦值的比值,比值结果确定为所述弧所在圆形的半径长度。

可选的,所述第三维度坐标值确定单元可以包括:

另一弦长确定单元,用于根据相交弦定理,利用采样点的第一维度方向和第三维度方向上的坐标值以及弦的长度,确定所述弧所在圆形中经过所述采样点且垂直于所述弦的另一条弦的长度;

垂线距离确定单元,用于确定所述弧所在圆形的圆心至所述另一条弦的垂线距离为,所述弦的长度的一半减去采样点的第一维度方向上的坐标值;

公式求解单元,用于根据勾股定理,确定如下等式:所述另一条弦的长度的一半的平方与所述圆心至所述另一条弦的垂线距离的平方的和值等于所述半径长度的平方,求解该等式以得到采样点的第三维度方向上的坐标值。

可选的,所述采样点获取单元可以包括:

均匀采样单元,用于在由所述径向截面中弧对应的弦所在第一维度方向,以及所述待生成的弧面模型的高度方向所在第二维度方向组成的二维平面内,均匀采样得到若干采样点在该二维平面内的投影点;

其中,在第一维度方向和第二维度方向上,相邻投影点的坐标值之差相同,且投影点在第一维度方向上的坐标值属于0至所述弧弦长度,在第二维度方向上的坐标属于0至所述高度。

可选的,所述弧面模型生成装置可以应用于3D引擎,本申请的弧面模型生成装置还可以包括:

UI界面生成单元,用于响应对目标UI元素的编辑整合操作,利用所述目标UI元素编辑生成UI界面;

贴图获取单元,用于获取所述UI界面的贴图;

贴图覆盖单元,用于将所述贴图覆盖至所述弧面模型上,覆盖贴图后的弧面模型用于在3D场景中进行展示。

可选的,所述贴图覆盖单元可以包括:

UV坐标转换单元,用于将所述弧面模型上各采样点的三维坐标转换为UV坐标;

贴图元素确定单元,用于针对每一采样点,在所述贴图中确定采样点的UV坐标对应的贴图元素;

贴图元素绘制单元,用于按照确定的采样点的UV坐标对应的贴图元素,在所述弧面模型的采样点位置处绘制采样点的UV坐标对应的贴图元素。

本申请的弧面模型生成装置可以应用于3D引擎服务器,如UE4引擎服务器等。接下来的实施例中,对实现本申请的弧面模型生成装置的3D引擎服务器的硬件结构进行介绍,参见图11,图11为本申请实施例提供的一种3D引擎服务器硬件结构示意图。

如图11所示,3D引擎服务器可以包括:

处理器1,通信接口2,存储器3,通信总线4,和显示屏5;

其中处理器1、通信接口2、存储器3和显示屏5通过通信总线4完成相互间的通信;

可选的,通信接口2可以为通信模块的接口,如GSM模块的接口;

处理器1,用于执行程序;

存储器3,用于存放程序;

程序可以包括程序代码,所述程序代码包括处理器的操作指令。

处理器1可能是一个中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路。

存储器3可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。

其中,程序具体用于:

获取输入的待生成的弧面模型的弧度、高度和弧弦长度,所述弧弦长度为弧面模型的径向截面中弧对应的弦的长度;

获取若干采样点的二维坐标,采样点的第一维度方向为所述径向截面中弧对应的弦所在维度方向,采样点的第二维度方向为所述待生成的弧面模型的高度方向,各采样点在第一维度方向上的坐标值属于0至所述弧弦长度,在第二维度方向上的坐标属于0至所述高度;

针对每一所述采样点,确定所述采样点在第三维度方向上的坐标值,所述第三维度方向垂直于所述第一维度方向和所述第二维度方向;

根据各采样点的第一维度方向、第二维度方向和第三维度方向上的坐标值,生成弧面模型。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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