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

模型检测方法、装置、终端设备及存储介质

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



技术领域

本发明涉及数据处理技术领域,具体而言,涉及一种模型检测方法、装置、终端设备及存储介质。

背景技术

随着科学技术的发展,各种各样的应用程序也越来越多,在一些应用程序中,实现时需要用到模型,以便在应用程序运行时,向用户显示模型,基于用户的操作的控制该模型,此类应用程序的开发也成为了研究的热点。

相关技术中,美术人员在模型制作应用程序中制作模型,继而对模型进行提交,继而由研发人员在应用程序中运行模型,若在运行过程中模型出现问题,反馈给美术人员修改。

但是,相关技术中,在游戏应用程序中运行模型时,发现模型存在的问题,再进行修改,降低了模型获取的效率。

发明内容

本发明的目的在于,针对上述现有技术中的不足,提供一种模型检测方法、装置、终端设备及存储介质,以便解决相关技术中在游戏应用程序中运行模型时,发现模型存在的问题,再进行修改,降低了模型获取的效率的问题。

为实现上述目的,本发明实施例采用的技术方案如下:

第一方面,本发明实施例提供了一种模型检测方法,所述方法包括:

在绘制虚拟对象模型的过程中,采用预设的至少一个约束条件对所述虚拟对象模型进行检测,得到检测结果,所述检测结果包括:用于指示所述虚拟对象模型是否存在绘制错误的指示信息;

若所述指示信息指示所述虚拟对象模型存在绘制错误,则根据所述检测结果生成错误提示信息,所述错误提示信息用于指示所述虚拟对象模型所存在的绘制错误。

可选的,在绘制虚拟对象模型的过程中,采用预设的至少一个约束条件对所述虚拟对象模型进行检测,得到检测结果之前,所述方法还包括:

响应输入的约束控件的第一选择操作,确定所述第一选择操作所选中的目标约束控件对应的约束条件为所述至少一个约束条件。

可选的,若所述指示信息指示所述虚拟对象模型存在绘制错误,则所述检测结果中还包括:绘制错误数据;所述根据所述检测结果生成错误提示信息,包括:

根据所述绘制错误数据生成所述错误提示信息。

可选的,所述方法还包括:

若所述指示信息指示所述虚拟对象模型存在绘制错误,在所述虚拟对象模型上显示错误标记,所述错误标记用于指示所述虚拟对象模型中存在绘制错误的位置,以及绘制错误的类型。

可选的,所述方法还包括:

响应输入的错误显示控件的第二选择操作,确定所述第二选择操作所选中的目标错误显示控件;

所述在所述虚拟对象模型上显示错误标记,包括:

根据所述目标错误显示控件对应的错误显示类型,在所述虚拟对象模型上显示错误标记。

可选的,所述至少一个约束条件包括:法线翻转约束条件;所述采用预设的至少一个约束条件对所述虚拟对象模型进行检测,得到检测结果,包括:

采用所述法线翻转约束条件,根据所述虚拟对象模型中各个三角形的顶点绘制顺序,确定所述各个三角形的法线朝向;

若所述各个三角形的法线朝向不一致,则所述指示信息指示所述虚拟对象模型存在碰撞体穿模或者显示错误的问题。

可选的,所述至少一个约束条件包括:重叠约束条件;所述采用预设的至少一个约束条件对所述虚拟对象模型进行检测,得到检测结果,包括:

采用所述重叠约束条件,依次遍历所述虚拟对象模型中的两个三角形,判断所述两个三角形的任意两条边是否存在相交;

若存在相交,则所述指示信息指示所述虚拟对象模型存在重叠的问题;

若不存在相交,则判断所述两个三角形中一个三角形是否在另一个三角形中;

若是,则所述指示信息指示所述虚拟对象模型存在重叠的问题。

可选的,所述至少一个约束条件包括:同一平面约束条件;所述采用预设的至少一个约束条件对所述虚拟对象模型进行检测,得到检测结果,包括:

采用所述同一平面约束条件,确定所述虚拟对象模型中各个平面所对应的三角形;

判断同一目标平面中三角形的法线的点积是否为预设阈值;

若不为预设阈值,则所述指示信息指示所述虚拟对象模型中目标平面中的三角形不在同一平面。

可选的,所述至少一个约束条件包括:虚拟对象模型和碰撞体约束条件;所述采用预设的至少一个约束条件对所述虚拟对象模型进行检测,得到检测结果,包括:

采用所述虚拟对象模型和碰撞体约束条件,确定所述虚拟对象模型的渲染模型的第一包围盒面积,以及所述虚拟对象模型的碰撞体模型的第二包围盒面积;

判断所述第一包围盒面积与所述第二包围盒面积的比值,是否在预设范围内;

若否,则所述指示信息指示所述渲染模型和所述碰撞体模型尺寸存在误差。

第二方面,本发明实施例还提供了一种模型检测装置,所述装置包括:

检测模块,用于在绘制虚拟对象模型的过程中,采用预设的至少一个约束条件对所述虚拟对象模型进行检测,得到检测结果,所述检测结果包括:用于指示所述虚拟对象模型是否存在绘制错误的指示信息;

生成模块,用于若所述指示信息指示所述虚拟对象模型存在绘制错误,则根据所述检测结果生成错误提示信息,所述错误提示信息用于指示所述虚拟对象模型所存在的绘制错误。

可选的,所述装置还包括:

第一确定模块,用于响应输入的约束控件的第一选择操作,确定所述第一选择操作所选中的目标约束控件对应的约束条件为所述至少一个约束条件。

可选的,所述生成模块,还用于根据所述绘制错误数据生成所述错误提示信息。

可选的,所述装置还包括:

显示模块,用于若所述指示信息指示所述虚拟对象模型存在绘制错误,在所述虚拟对象模型上显示错误标记,所述错误标记用于指示所述虚拟对象模型中存在绘制错误的位置,以及绘制错误的类型。

可选的,所述装置还包括:

第二确定模块,用于响应输入的错误显示控件的第二选择操作,确定所述第二选择操作所选中的目标错误显示控件;

所述显示模块,还用于根据所述目标错误显示控件对应的错误显示类型,在所述虚拟对象模型上显示错误标记。

可选的,所述至少一个约束条件包括:法线翻转约束条件;所述检测模块,还用于采用所述法线翻转约束条件,根据所述虚拟对象模型中各个三角形的顶点绘制顺序,确定所述各个三角形的法线朝向;若所述各个三角形的法线朝向不一致,则所述指示信息指示所述虚拟对象模型存在碰撞体穿模或者显示错误的问题。

可选的,所述至少一个约束条件包括:重叠约束条件;所述检测模块,还用于采用所述重叠约束条件,依次遍历所述虚拟对象模型中的两个三角形,判断所述两个三角形的任意两条边是否存在相交;若存在相交,则所述指示信息指示所述虚拟对象模型存在重叠的问题;若不存在相交,则判断所述两个三角形中一个三角形是否在另一个三角形中;

若是,则所述指示信息指示所述虚拟对象模型存在重叠的问题。

可选的,所述至少一个约束条件包括:同一平面约束条件;所述检测模块,还用于采用所述同一平面约束条件,确定所述虚拟对象模型中各个平面所对应的三角形;判断同一目标平面中三角形的法线的点积是否为预设阈值;若不为预设阈值,则所述指示信息指示所述虚拟对象模型中目标平面中的三角形不在同一平面。

可选的,所述至少一个约束条件包括:虚拟对象模型和碰撞体约束条件;所述检测模块,还用于采用所述虚拟对象模型和碰撞体约束条件,确定所述虚拟对象模型的渲染模型的第一包围盒面积,以及所述虚拟对象模型的碰撞体模型的第二包围盒面积;判断所述第一包围盒面积与所述第二包围盒面积的比值,是否在预设范围内;若否,则所述指示信息指示所述渲染模型和所述碰撞体模型尺寸存在误差。

第三方面,本发明实施例还提供了一种终端设备,包括:存储器和处理器,所述存储器存储有所述处理器可执行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面任一项所述的方法。

第四方面,本发明实施例还提供了一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被读取并执行时,实现上述第一方面任一项所述的方法。

本发明的有益效果是:本发明实施例提供一种模型检测方法,包括:在绘制虚拟对象模型的过程中,采用预设的至少一个约束条件对虚拟对象模型进行检测,得到检测结果,检测结果包括:用于指示虚拟对象模型是否存在绘制错误的指示信息;若指示信息指示虚拟对象模型存在绘制错误,则根据检测结果生成错误提示信息,错误提示信息用于指示虚拟对象模型所存在的绘制错误。在绘制虚拟对象模型的过程中,采用约束条件对虚拟对象模型进行检测,在检测结果的指示信息指示虚拟对象模型存在绘制错误时,根据检测结果生成错误提示信息,以提示虚拟对象模型所存在的绘制错误,可以实现在绘制虚拟对象模型的过程中,及时发现虚拟对象模型所存在的错误,便于及时对虚拟对象模型的修改,提高了虚拟对象模型的制作效率。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本发明实施例提供的一种模型检测方法的流程示意图;

图2为本发明实施例提供的一种图形用户界面的显示示意图;

图3为本发明实施例提供的一种模型检测方法的流程示意图;

图4为本发明实施例提供的一种模型检测方法的流程示意图;

图5为本发明实施例提供的一种模型检测方法的流程示意图;

图6为本发明实施例提供的一种模型检测方法的流程示意图;

图7为本发明实施例提供的一种模型检测方法的流程示意图;

图8为本发明实施例提供的一种模型检测装置的结构示意图;

图9为本发明实施例提供的一种终端设备的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。

因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

在本申请的描述中,需要说明的是,若出现术语“上”、“下”、等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该申请产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。

此外,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

需要说明的是,在不冲突的情况下,本申请的实施例中的特征可以相互结合。

以下对本申请实施例涉及的名词进行解释说明。

3ds Max:一个专业的3D(three dimensional,三维)计算机图形程序,用于制作3D动画,模型等。

Bug:程序漏洞。

UI:用户界面(user interface)。

C++SDK:C++(一种编程语言)软件开发工具包(SDK,Software Development Kit),用于自定义和扩展指定的应用程序。

2UV:3D模型的第二套纹理坐标。

随着科学技术的发展,各种各样的应用程序也越来越多,在一些应用程序中,实现时需要用到模型,以便在应用程序运行时,向用户显示模型,基于用户的操作的控制该模型,此类应用程序的开发也成为了研究的热点。

相关技术中,美术人员在模型制作应用程序中制作模型,继而对模型进行提交,继而由研发人员在应用程序中运行模型,若在运行过程中模型出现问题,反馈给美术人员修改。但是,相关技术中,在游戏应用程序中运行模型时,发现模型存在的问题,再进行修改,降低了模型获取的效率。

针对相关技术中所存在的技术问题,本申请实施例提供一种模型检测方法,在绘制虚拟对象模型的过程中,采用约束条件对虚拟对象模型进行检测,在检测结果的指示信息指示虚拟对象模型存在绘制错误时,根据检测结果生成错误提示信息,以提示虚拟对象模型所存在的绘制错误,可以实现在绘制虚拟对象模型的过程中,及时发现虚拟对象模型所存在的错误,便于及时对虚拟对象模型的修改,提高了虚拟对象模型的制作效率。

本申请实施例提供的模型检测方法,其执行主体可以为终端设备,在实际应用中,终端设备可以为下述中的任一项:台式电脑、笔记本电脑、平板电脑、智能手机等等。

以下以终端为执行主体,对本申请实施例提供的模型检测方法进行解释说明。

图1为本发明实施例提供的一种模型检测方法的流程示意图,如图1所示,该方法可以包括:

S101、在绘制虚拟对象模型的过程中,采用预设的至少一个约束条件对虚拟对象模型进行检测,得到检测结果。

其中,检测结果包括:用于指示虚拟对象模型是否存在绘制错误的指示信息。

在一些实施方式中,终端可以响应输入的绘制操作,绘制虚拟对象模型;终端中可以存储有至少一个约束条件,每个约束条件可以用于对应的一种类型的绘制错误进行检测,终端采用预设的至少一个约束条件对虚拟对象模型进行检测,得到检测结果。

在实际应用中,绘制好的虚拟对象模型可以应用在游戏应用程序中,例如,虚拟对象模型可以为游戏应用程序中虚拟对象;可选的,虚拟对象中的虚拟角色、虚拟建筑物、虚拟物品、虚拟武器等等,本申请实施例对此不进行具体限制。当然,虚拟对象模型还可以为类型的应用程序,虚拟对象模型的具体形态可以根据应用程序中的实际需求进行绘制。

另外,若检测结果的指示信息指示虚拟对象模型未出现绘制错误。

需要说明的是,终端可以响应输入的修改操作,对虚拟对象模型进行修改,实现在绘制虚拟对象模型的过程中,及时检查并修改虚拟对象模型。

S102、若指示信息指示虚拟对象模型存在绘制错误,则根据检测结果生成错误提示信息。

其中,错误提示信息可以用于指示虚拟对象模型所存在的绘制错误。

在本申请实施例中,根据检测结果生成的错误提示信息可以用于提示美术人员在绘制虚拟对象模型的过程中发生错误,还可以提示错误的具体位置,以及错误的具体类型。

另外,终端可以呈现图形用户界面,在绘制虚拟对象模型的过程中,图形用户界面有正在绘制的虚拟对象模型,在生成错误提示信息后,图形用户界面上还可以显示有错误提示信息。

需要说明的是,终端可以在图形用户界面中错误提示区域中显示错误提示信息,还可以以弹窗的方式错误提示信息,还可以以其他方式错误提示信息,本申请实施例对此不进行具体限制。

在实际应用中,可以支持多个虚拟对象模型的批量检测处理,可以提高针对多个虚拟对象模型的出错检查效率。

综上所述,本发明实施例提供一种模型检测方法,包括:在绘制虚拟对象模型的过程中,采用预设的至少一个约束条件对虚拟对象模型进行检测,得到检测结果,检测结果包括:用于指示虚拟对象模型是否存在绘制错误的指示信息;若指示信息指示虚拟对象模型存在绘制错误,则根据检测结果生成错误提示信息,错误提示信息用于指示虚拟对象模型所存在的绘制错误。在绘制虚拟对象模型的过程中,采用约束条件对虚拟对象模型进行检测,在检测结果的指示信息指示虚拟对象模型存在绘制错误时,根据检测结果生成错误提示信息,以提示虚拟对象模型所存在的绘制错误,可以实现在绘制虚拟对象模型的过程中,及时发现虚拟对象模型所存在的错误,便于及时对虚拟对象模型的修改,提高了虚拟对象模型的制作效率。

需要说明的是,终端的可扩展约束库中可以存储有各个约束条件对应的约束代码,若约束条件的数量为多个,可以按照预设顺序依次执行各约束条件对应的约束代码。

在上述S101中在绘制虚拟对象模型的过程中,采用预设的至少一个约束条件对虚拟对象模型进行检测,得到检测结果之前,该方法还可以包括:

响应输入的约束控件的第一选择操作,确定第一选择操作所选中的目标约束控件对应的约束条件为至少一个约束条件。

其中,终端的图形用户界面上可以显示有多个约束控件,终端中还可以存储有各个约束控件对应的约束条件。

在一些实施方式中,响应输入针对多个约束控件中至少一个目标约束控件的第一选择操作,确定第一选择操作所选中的至少一个目标约束控件;继而确定至少一个目标约束控件对应的目标约束条件,将目标约束条件作为至少一个约束条件。

图2为本发明实施例提供的一种图形用户界面的显示示意图,如图2所示,各个约束控件可以具有对应的选择框,第一选择操作可以作用于目标约束控件的选择框,以选中目标约束控件。

如图2所示,约束控件上可以显示有约束提示信息,例如,法线翻转约束条件对应的约束控件,其对应的约束提示信息可以为反转法线;重叠约束条件对应的约束控件,其对应的约束提示信息可以为模型重叠面;同一平面约束条件对应的约束控件,其对应的约束提示信息可以为非同一平面的面;虚拟对象模型和碰撞体约束条件对应的约束控件,其对应的约束提示信息可以为原模与碰撞体大小。

在一些实施方式中,如图2所示,图形用户界面中还可以UV通道数控件、面数检查控件、删除废点控件、材质控件、2U反转控件、非四边面和光滑组控件、破面漏面控件、阈值控件、删除未使用材质控件、LOD3,4光滑组控件、模型各级别面数控件、2UV范围控件,以便进行虚拟对象模型的绘制和检查。

可选的,若指示信息指示虚拟对象模型存在绘制错误,则检测结果中还包括:绘制错误数据;上述S102中根据检测结果生成错误提示信息的过程,可以包括:根据绘制错误数据生成错误提示信息。

其中,终端可以从检测结果中提取绘制错误数据,继而根据绘制错误数据生成错误提示信息,可以调用显示点/线/面的接口,对错误提示信息进行显示,继而可以使得美术人员获知错误提示信息。

在本申请实施例中,可以在3ds Max应用程序中绘制虚拟对象模型,并对虚拟对象模型进行检测,上述点/线/面的接口可以为3ds Max中的点/线/面的接口。

可选的,该方法还可以包括:若指示信息指示虚拟对象模型存在绘制错误,在虚拟对象模型上显示错误标记。

其中,错误标记可以用于指示虚拟对象模型中存在绘制错误的位置,以及绘制错误的类型。

在一些实施方式中,虚拟对象模型可以显示在图形用户界面上,若指示信息指示虚拟对象模型存在绘制错误,在虚拟对象模型上显示错误标记,可以更加直观的指示出错误位置以及错误类型,使得美术人员可以快速获知虚拟对象模型中所存在的问题。

可选的,图3为本发明实施例提供的一种模型检测方法的流程示意图,如图3所示,该方法还可以包括:

S301、响应输入的错误显示控件的第二选择操作,确定第二选择操作所选中的目标错误显示控件。

在一些实施方式中,终端所呈现的图形用户界面中显示有多个错误显示控件,响应输入的错误显示控件的第二选择操作,从多个错误显示控件中确定第二选择操作所选中的目标错误显示控件。

上述S102中在虚拟对象模型上显示错误标记的过程,可以包括:

S302、根据目标错误显示控件对应的错误显示类型,在虚拟对象模型上显示错误标记。

其中,每个错误显示控件均具有对应的错误显示类型。

在本申请实施例中,终端可以根据检测结果中的错误数据,在虚拟对象模型上显示与目标错误显示控件的错误显示类型相对应错误标记。可以实现灵活、直观的在虚拟对象模型上显示错误标记,使得美术人员可以快速获知针对特定错误显示类型的绘制错误。

在本申请实施例中,如图2所示,图形用户界面中还额外集成了实用工具,实用工具对应的控件可以为:LOD检查工具控件、重置变换并塌陷控件、FBX导出工具控件。

在本申请实施例中,可以拆分UI界面与检查方法的逻辑,UI界面只调用对应的约束条件或规范的检查接口,不实现逻辑。将不同的检测内容拆分成多个接口,可以根据需要选择不同组合的检查方案,通过统一模块进行调用。针对部分难以通过文字内容复查的检查,提供出错位置显示的功能。针对高开销的检查方法,使用C++SDK辅助开发。

例如,检查方法的实现代码可以如下所示:

+check function 1()

+check function 2()

+check function 3()

+check function 4()

+check function n()

+button function 1()

+button function 2()

+button function 3()

相应的,UI界面的实现代码可以如下所示:

+check:Button

+button 1:Button

+button 2:Button

+button n:Button

+function 1:checkbox

+function 2:checkbox

+function 3:checkbox

+function 4:checkbox

+on_check_presson()

+on buttoni presson()

可选的,至少一个约束条件包括:法线翻转约束条件。图4为本发明实施例提供的一种模型检测方法的流程示意图,如图4所示,上述S101中采用预设的至少一个约束条件对虚拟对象模型进行检测,得到检测结果的过程,可以包括:

S401、采用法线翻转约束条件,根据虚拟对象模型中各个三角形的顶点绘制顺序,确定各个三角形的法线朝向。

其中,若各个三角形的顶点绘制顺序均为逆时针或者顺时针,则说明各个三角形的法线朝向是同一个方向。

在一些实施方式中,终端可以采用法线翻转约束条件,根据三角形的顶点绘制顺序,计算各个三角形相邻两条边的叉乘结果,根据叉乘结果确定各个三角形的法线朝向;若两个三角形为具有公共边的三角形,终端可以根据各个三角形的顶点绘制顺序,确定公共边的绘制顺序,继而确定各三角形的法线朝向。

需要说明的是,在虚拟对象模型制作过程中可能存在距离十分相近的点,这类点很有可能把两个相邻的三角形拆分成了两个不相邻的三角形,导致在检测时跳过了这两个三角形的检测,导致结果出现错误。因此在初始时需要把这类顶点合成同一个顶点,保证结果的准确。

S402、若各个三角形的法线朝向不一致,则指示信息指示虚拟对象模型存在碰撞体穿模或者显示错误的问题。

在本申请实施例中,若各个三角形的法线朝向不一致,会出现穿模问题,在一些三角形的法线朝向朝外时,可以实现正确阻挡,而一些三角形的法线朝向朝里时,无法正确阻挡,从而导致穿模的情况。而且,三角形的法线朝向与光照相关。法线朝向正确的三角形能够正常的被光照亮,而法线朝向不正确的三角行无法被光照亮,导致出现显示错误,存在穿帮的情况。

可选的,至少一个约束条件包括:重叠约束条件。图5为本发明实施例提供的一种模型检测方法的流程示意图,如图5所示,上述S101中采用预设的至少一个约束条件对虚拟对象模型进行检测,得到检测结果的过程,可以包括:

S501、采用重叠约束条件,依次遍历虚拟对象模型中的两个三角形,判断两个三角形的任意两条边是否存在相交。

S502、若存在相交,则指示信息指示虚拟对象模型存在重叠的问题。

S503、若不存在相交,则判断两个三角形中一个三角形是否在另一个三角形中。

S504、若是,则指示信息指示虚拟对象模型存在重叠的问题。

需要说明的是,上述S501至S504的过程中,可以检测虚拟对象模型的2UV模块的三角形是否存在重叠的情况,在存在重叠时,会出现两个三角形显示同样内容的错误。

需要说明的是,上述S501至S504的过程的算法的时间复杂度为O(n^2),该算法的实现过程也采用了c++实现。

可选的,至少一个约束条件包括:同一平面约束条件;图6为本发明实施例提供的一种模型检测方法的流程示意图,如图6所示,上述S101中采用预设的至少一个约束条件对虚拟对象模型进行检测,得到检测结果的过程,可以包括:

S601、采用同一平面约束条件,确定虚拟对象模型中各个平面所对应的三角形。

S602、判断同一目标平面中三角形的法线的点积是否为预设阈值。

S603、若不为预设阈值,则指示信息指示虚拟对象模型中目标平面中的三角形不在同一平面。

在实际应用中,模型的构建在3DS MAX中更多的是使用多边形的模式,因此在制作的过程中,多边形在一些误操作的情况下,会导致拆分出来三角形不在同一平面,因此需要单独检测每个平面的三角形是否在同一平面,在每个平面的三角形不在同一平面时,会有概率出现穿模的情况。

在一些实施方式中,终端计算同一目标平面中各个三角形的法线数据,并对法线数据进行归一处理,得到归一处理后的法线数据,计算同一目标平面中三角形的归一处理后的法线数据的点积,并判断点积是否为预设阈值,若不为预设阈值,则指示信息指示虚拟对象模型中目标平面中的三角形不在同一平面。

可选的,预设阈值可以为0或者0.1。

可选的,至少一个约束条件包括:虚拟对象模型和碰撞体约束条件;图7为本发明实施例提供的一种模型检测方法的流程示意图,如图7所示,上述S101中采用预设的至少一个约束条件对虚拟对象模型进行检测,得到检测结果的过程,可以包括:

S701、采用虚拟对象模型和碰撞体约束条件,确定虚拟对象模型的渲染模型的第一包围盒面积,以及虚拟对象模型的碰撞体模型的第二包围盒面积。

S702、判断第一包围盒面积与第二包围盒面积的比值,是否在预设范围内。

S703、若否,则指示信息指示渲染模型和碰撞体模型尺寸存在误差。

其中,虚拟对象模型可以拆分为渲染模型和碰撞体模型,在面数上碰撞体模型的面数会远小于渲染模型,而碰撞体模型在游戏内是一个不可见的物体,但是会阻挡和限制虚拟角色的移动,因此需要保证两者大小,形状大体一致。

在一些实施方式中,终端可以针对三视图,分别计算第一包围盒面积和第二包围盒面积,即,分别针对主视图、俯视图以及侧视图分别计算第一包围盒面积和第二包围盒面积,计算主视图的第一包围盒面积和第二包围盒面积的第一比值,俯视图的第一包围盒面积和第二包围盒面积的第二比值,侧视图的第一包围盒面积和第二包围盒面积的第三比值;若第一比值、第二比值、第三比值均在预设范围内,则指示信息指示渲染模型和碰撞体模型尺寸不存在误差;若第一比值、第二比值、第三比值任一比值不在预设范围内,则指示信息指示渲染模型和碰撞体模型尺寸存在误差。

综上所述,本发明实施例提供一种模型检测方法,包括:在绘制虚拟对象模型的过程中,采用预设的至少一个约束条件对虚拟对象模型进行检测,得到检测结果,检测结果包括:用于指示虚拟对象模型是否存在绘制错误的指示信息;若指示信息指示虚拟对象模型存在绘制错误,则根据检测结果生成错误提示信息,错误提示信息用于指示虚拟对象模型所存在的绘制错误。在绘制虚拟对象模型的过程中,采用约束条件对虚拟对象模型进行检测,在检测结果的指示信息指示虚拟对象模型存在绘制错误时,根据检测结果生成错误提示信息,以提示虚拟对象模型所存在的绘制错误,可以实现在绘制虚拟对象模型的过程中,及时发现虚拟对象模型所存在的错误,便于及时对虚拟对象模型的修改,提高了虚拟对象模型的制作效率。

而且,还减少了美术人员和程序员之间的沟通成本,提高了美术人员和程序员的工作效率,而且检查可以进行扩展,具有低耦合的特点,针对一些绘制错误还可以进行自动修复功能。

下述对用以执行本申请所提供的模型检测方法的模型检测装置、终端设备及存储介质等进行说明,其具体的实现过程以及技术效果参见上述方法的相关内容,下述不再赘述。

图8为本发明实施例提供的一种模型检测装置的结构示意图,如图8所示,该装置可以包括:

检测模块801,用于在绘制虚拟对象模型的过程中,采用预设的至少一个约束条件对所述虚拟对象模型进行检测,得到检测结果,所述检测结果包括:用于指示所述虚拟对象模型是否存在绘制错误的指示信息;

生成模块802,用于若所述指示信息指示所述虚拟对象模型存在绘制错误,则根据所述检测结果生成错误提示信息,所述错误提示信息用于指示所述虚拟对象模型所存在的绘制错误。

可选的,所述装置还包括:

第一确定模块,用于响应输入的约束控件的第一选择操作,确定所述第一选择操作所选中的目标约束控件对应的约束条件为所述至少一个约束条件。

可选的,所述生成模块802,还用于根据所述绘制错误数据生成所述错误提示信息。

显示模块,用于若所述指示信息指示所述虚拟对象模型存在绘制错误,在所述虚拟对象模型上显示错误标记,所述错误标记用于指示所述虚拟对象模型中存在绘制错误的位置,以及绘制错误的类型。

可选的,所述装置还包括:

第二确定模块,用于响应输入的错误显示控件的第二选择操作,确定所述第二选择操作所选中的目标错误显示控件;

所述显示模块,还用于根据所述目标错误显示控件对应的错误显示类型,在所述虚拟对象模型上显示错误标记。

可选的,所述至少一个约束条件包括:法线翻转约束条件;所述检测模块801,还用于采用所述法线翻转约束条件,根据所述虚拟对象模型中各个三角形的顶点绘制顺序,确定所述各个三角形的法线朝向;若所述各个三角形的法线朝向不一致,则所述指示信息指示所述虚拟对象模型存在碰撞体穿模或者显示错误的问题。

可选的,所述至少一个约束条件包括:重叠约束条件;所述检测模块801,还用于采用所述重叠约束条件,依次遍历所述虚拟对象模型中的两个三角形,判断所述两个三角形的任意两条边是否存在相交;若存在相交,则所述指示信息指示所述虚拟对象模型存在重叠的问题;若不存在相交,则判断所述两个三角形中一个三角形是否在另一个三角形中;

若是,则所述指示信息指示所述虚拟对象模型存在重叠的问题。

可选的,所述至少一个约束条件包括:同一平面约束条件;所述检测模块801,还用于采用所述同一平面约束条件,确定所述虚拟对象模型中各个平面所对应的三角形;判断同一目标平面中三角形的法线的点积是否为预设阈值;若不为预设阈值,则所述指示信息指示所述虚拟对象模型中目标平面中的三角形不在同一平面。

可选的,所述至少一个约束条件包括:虚拟对象模型和碰撞体约束条件;所述检测模块801,还用于采用所述虚拟对象模型和碰撞体约束条件,确定所述虚拟对象模型的渲染模型的第一包围盒面积,以及所述虚拟对象模型的碰撞体模型的第二包围盒面积;判断所述第一包围盒面积与所述第二包围盒面积的比值,是否在预设范围内;若否,则所述指示信息指示所述渲染模型和所述碰撞体模型尺寸存在误差。

上述装置用于执行前述实施例提供的方法,其实现原理和技术效果类似,在此不再赘述。

以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital singnal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(CentralProcessing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。

图9为本发明实施例提供的一种终端设备的结构示意图,如图9所示,该终端设备可以包括:处理器901、存储器902。

其中,存储器902用于存储程序,处理器901调用存储器902存储的程序,以执行上述方法实施例。

示例的,该方法可以包括:

在绘制虚拟对象模型的过程中,采用预设的至少一个约束条件对所述虚拟对象模型进行检测,得到检测结果,所述检测结果包括:用于指示所述虚拟对象模型是否存在绘制错误的指示信息;

若所述指示信息指示所述虚拟对象模型存在绘制错误,则根据所述检测结果生成错误提示信息,所述错误提示信息用于指示所述虚拟对象模型所存在的绘制错误。

可选的,在绘制虚拟对象模型的过程中,采用预设的至少一个约束条件对所述虚拟对象模型进行检测,得到检测结果之前,所述方法还包括:

响应输入的约束控件的第一选择操作,确定所述第一选择操作所选中的目标约束控件对应的约束条件为所述至少一个约束条件。

可选的,若所述指示信息指示所述虚拟对象模型存在绘制错误,则所述检测结果中还包括:绘制错误数据;所述根据所述检测结果生成错误提示信息,包括:

根据所述绘制错误数据生成所述错误提示信息。

可选的,所述方法还包括:

若所述指示信息指示所述虚拟对象模型存在绘制错误,在所述虚拟对象模型上显示错误标记,所述错误标记用于指示所述虚拟对象模型中存在绘制错误的位置,以及绘制错误的类型。

可选的,所述方法还包括:

响应输入的错误显示控件的第二选择操作,确定所述第二选择操作所选中的目标错误显示控件;

所述在所述虚拟对象模型上显示错误标记,包括:

根据所述目标错误显示控件对应的错误显示类型,在所述虚拟对象模型上显示错误标记。

可选的,所述至少一个约束条件包括:法线翻转约束条件;所述采用预设的至少一个约束条件对所述虚拟对象模型进行检测,得到检测结果,包括:

采用所述法线翻转约束条件,根据所述虚拟对象模型中各个三角形的顶点绘制顺序,确定所述各个三角形的法线朝向;

若所述各个三角形的法线朝向不一致,则所述指示信息指示所述虚拟对象模型存在碰撞体穿模或者显示错误的问题。

可选的,所述至少一个约束条件包括:重叠约束条件;所述采用预设的至少一个约束条件对所述虚拟对象模型进行检测,得到检测结果,包括:

采用所述重叠约束条件,依次遍历所述虚拟对象模型中的两个三角形,判断所述两个三角形的任意两条边是否存在相交;

若存在相交,则所述指示信息指示所述虚拟对象模型存在重叠的问题;

若不存在相交,则判断所述两个三角形中一个三角形是否在另一个三角形中;

若是,则所述指示信息指示所述虚拟对象模型存在重叠的问题。

可选的,所述至少一个约束条件包括:同一平面约束条件;所述采用预设的至少一个约束条件对所述虚拟对象模型进行检测,得到检测结果,包括:

采用所述同一平面约束条件,确定所述虚拟对象模型中各个平面所对应的三角形;

判断同一目标平面中三角形的法线的点积是否为预设阈值;

若不为预设阈值,则所述指示信息指示所述虚拟对象模型中目标平面中的三角形不在同一平面。

可选的,所述至少一个约束条件包括:虚拟对象模型和碰撞体约束条件;所述采用预设的至少一个约束条件对所述虚拟对象模型进行检测,得到检测结果,包括:

采用所述虚拟对象模型和碰撞体约束条件,确定所述虚拟对象模型的渲染模型的第一包围盒面积,以及所述虚拟对象模型的碰撞体模型的第二包围盒面积;

判断所述第一包围盒面积与所述第二包围盒面积的比值,是否在预设范围内;

若否,则所述指示信息指示所述渲染模型和所述碰撞体模型尺寸存在误差。

综上所述,在绘制虚拟对象模型的过程中,采用约束条件对虚拟对象模型进行检测,在检测结果的指示信息指示虚拟对象模型存在绘制错误时,根据检测结果生成错误提示信息,以提示虚拟对象模型所存在的绘制错误,可以实现在绘制虚拟对象模型的过程中,及时发现虚拟对象模型所存在的错误,便于及时对虚拟对象模型的修改,提高了虚拟对象模型的制作效率。

可选地,本发明还提供一种程序产品,例如计算机可读存储介质,包括程序,该程序在被处理器执行时用于执行上述方法实施例。

示例的,该方法可以包括:

在绘制虚拟对象模型的过程中,采用预设的至少一个约束条件对所述虚拟对象模型进行检测,得到检测结果,所述检测结果包括:用于指示所述虚拟对象模型是否存在绘制错误的指示信息;

若所述指示信息指示所述虚拟对象模型存在绘制错误,则根据所述检测结果生成错误提示信息,所述错误提示信息用于指示所述虚拟对象模型所存在的绘制错误。

可选的,在绘制虚拟对象模型的过程中,采用预设的至少一个约束条件对所述虚拟对象模型进行检测,得到检测结果之前,所述方法还包括:

响应输入的约束控件的第一选择操作,确定所述第一选择操作所选中的目标约束控件对应的约束条件为所述至少一个约束条件。

可选的,若所述指示信息指示所述虚拟对象模型存在绘制错误,则所述检测结果中还包括:绘制错误数据;所述根据所述检测结果生成错误提示信息,包括:

根据所述绘制错误数据生成所述错误提示信息。

可选的,所述方法还包括:

若所述指示信息指示所述虚拟对象模型存在绘制错误,在所述虚拟对象模型上显示错误标记,所述错误标记用于指示所述虚拟对象模型中存在绘制错误的位置,以及绘制错误的类型。

可选的,所述方法还包括:

响应输入的错误显示控件的第二选择操作,确定所述第二选择操作所选中的目标错误显示控件;

所述在所述虚拟对象模型上显示错误标记,包括:

根据所述目标错误显示控件对应的错误显示类型,在所述虚拟对象模型上显示错误标记。

可选的,所述至少一个约束条件包括:法线翻转约束条件;所述采用预设的至少一个约束条件对所述虚拟对象模型进行检测,得到检测结果,包括:

采用所述法线翻转约束条件,根据所述虚拟对象模型中各个三角形的顶点绘制顺序,确定所述各个三角形的法线朝向;

若所述各个三角形的法线朝向不一致,则所述指示信息指示所述虚拟对象模型存在碰撞体穿模或者显示错误的问题。

可选的,所述至少一个约束条件包括:重叠约束条件;所述采用预设的至少一个约束条件对所述虚拟对象模型进行检测,得到检测结果,包括:

采用所述重叠约束条件,依次遍历所述虚拟对象模型中的两个三角形,判断所述两个三角形的任意两条边是否存在相交;

若存在相交,则所述指示信息指示所述虚拟对象模型存在重叠的问题;

若不存在相交,则判断所述两个三角形中一个三角形是否在另一个三角形中;

若是,则所述指示信息指示所述虚拟对象模型存在重叠的问题。

可选的,所述至少一个约束条件包括:同一平面约束条件;所述采用预设的至少一个约束条件对所述虚拟对象模型进行检测,得到检测结果,包括:

采用所述同一平面约束条件,确定所述虚拟对象模型中各个平面所对应的三角形;

判断同一目标平面中三角形的法线的点积是否为预设阈值;

若不为预设阈值,则所述指示信息指示所述虚拟对象模型中目标平面中的三角形不在同一平面。

可选的,所述至少一个约束条件包括:虚拟对象模型和碰撞体约束条件;所述采用预设的至少一个约束条件对所述虚拟对象模型进行检测,得到检测结果,包括:

采用所述虚拟对象模型和碰撞体约束条件,确定所述虚拟对象模型的渲染模型的第一包围盒面积,以及所述虚拟对象模型的碰撞体模型的第二包围盒面积;

判断所述第一包围盒面积与所述第二包围盒面积的比值,是否在预设范围内;

若否,则所述指示信息指示所述渲染模型和所述碰撞体模型尺寸存在误差。

综上所述,在绘制虚拟对象模型的过程中,采用约束条件对虚拟对象模型进行检测,在检测结果的指示信息指示虚拟对象模型存在绘制错误时,根据检测结果生成错误提示信息,以提示虚拟对象模型所存在的绘制错误,可以实现在绘制虚拟对象模型的过程中,及时发现虚拟对象模型所存在的错误,便于及时对虚拟对象模型的修改,提高了虚拟对象模型的制作效率。

在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

技术分类

06120114722714