CN116943216A - 一种贴合关系检测方法、装置、设备及存储介质 - Google Patents

一种贴合关系检测方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN116943216A
CN116943216A CN202211456693.6A CN202211456693A CN116943216A CN 116943216 A CN116943216 A CN 116943216A CN 202211456693 A CN202211456693 A CN 202211456693A CN 116943216 A CN116943216 A CN 116943216A
Authority
CN
China
Prior art keywords
target
target object
collision body
collision
search result
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211456693.6A
Other languages
English (en)
Inventor
王凯
刘子强
校莹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202211456693.6A priority Critical patent/CN116943216A/zh
Publication of CN116943216A publication Critical patent/CN116943216A/zh
Pending legal-status Critical Current

Links

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/55Controlling game characters or game objects based on the game progress
    • A63F13/57Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game
    • A63F13/577Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game using determination of contact between game characters or objects, e.g. to avoid collision between virtual racing cars
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/64Methods for processing data by generating or executing the game program for computing dynamical parameters of game objects, e.g. motion determination or computation of frictional forces for a virtual car

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本申请提供一种贴合关系检测方法、装置、设备及存储介质;在本申请中,响应于贴合关系检测指令,获取游戏场景中目标对象对应的目标数据;其中,目标数据包括:目标对象的建模网格信息;基于建模网格信息,构建目标对象在任意一个视图角度的模型面片,并确定模型面片的法线;基于法线的方向进行碰撞体查找,获取第一查找结果,第一查找结果表征:目标对象是否与相应的目标碰撞体发生碰撞;基于第一查找结果,获得目标对象和目标碰撞体之间的贴合关系;贴合关系为:目标对象包覆目标碰撞体,目标碰撞体包覆目标对象,或针对目标对象未设置目标碰撞体。实现目标对象和目标碰撞体之间的贴合关系检测,提升效率和准确性。

Description

一种贴合关系检测方法、装置、设备及存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种贴合关系检测方法、装置、设备及存储介质。
背景技术
随着科技的发展,手游端游已成为生活娱乐中的主要部分。游戏场景中的对象在被控移动的过程中,为了提升画面视觉效果,游戏体验,以及游戏真实性,该对象会与其他对象产生物理接触或碰撞。故此,针对游戏场景中的对象设置能够实现物理表现的碰撞体,以便模拟物理碰撞。
然而,对象与相应碰撞体之间的贴合关系并不好,存在碰撞体大于对象的情况,以及碰撞体小于对象的情况。当碰撞体大于对象时,游戏场景中会出现浮空问题,当碰撞体小于对象时,游戏场景中出现穿模问题。因此,不论碰撞体大于对象,还是对象大于碰撞体,均导致游戏画面显示异常、视觉感受不真实,降低游戏体验。因此,在手游端游正式上线之前需要进行对象和碰撞体贴合关系检测。
相关技术中,主要依赖测试人员在三维场景内控制对象移动、跳跃等行为,实现对象间发生碰撞、交互,并通过观察来判断是否存在穿模问题和浮空问题。整个测试过程费时费力,且不同测试人员由于经验的差异和主观感受的不同,对同一个问题的判断结论也会不同,导致测试结果不稳定,且还会出现遗漏、判断错误等问题。
因此,如何自动进行目标对象和目标碰撞体贴合关系检测,提升检测效率和准确性是目前需要解决的技术问题。
发明内容
本申请提供一种贴合关系检测方法、装置、设备及存储介质,用以自动进行目标对象和目标碰撞体贴合关系检测,提升检测效率和准确性。
第一方面,本申请实施例提供一种贴合关系检测方法,该方法包括:
响应于贴合关系检测指令,获取游戏场景中目标对象对应的目标数据;其中,目标数据包括:目标对象的建模网格信息;
基于建模网格信息,构建目标对象在任意一个视图角度的模型面片,并确定模型面片的法线;
基于法线的方向进行碰撞体查找,获取第一查找结果;其中,第一查找结果表征:目标对象是否与相应的目标碰撞体发生碰撞;
基于第一查找结果,获得目标对象和目标碰撞体之间的贴合关系;其中,贴合关系为:目标对象包覆目标碰撞体,目标碰撞体包覆目标对象,或者,针对目标对象未设置目标碰撞体。
第二方面,本申请实施例提供一种贴合关系检测装置,该装置包括:
获取单元,用于响应于贴合关系检测指令,获取游戏场景中目标对象对应的目标数据;其中,目标数据包括:目标对象的建模网格信息;
构建单元,用于基于建模网格信息,构建目标对象在任意一个视图角度的模型面片,并确定模型面片的法线;
查找单元,用于基于法线的方向进行碰撞体查找,获取第一查找结果;其中,第一查找结果表征:目标对象是否与相应的目标碰撞体发生碰撞;
获得单元,用于基于第一查找结果,获得目标对象和目标碰撞体之间的贴合关系;其中,贴合关系为:目标对象包覆目标碰撞体,目标碰撞体包覆目标对象,或者,针对目标对象未设置目标碰撞体。
在一种可能的实现方式中,建模网格信息,包括:目标对象的顶点位置坐标集合和至少一个顶点索引数组;其中,每个顶点索引数组包含多个顶点的索引值;
构建单元具体用于:
针对至少一个顶点索引数组中的每个顶点索引数组,基于每个顶点索引数据中多个顶点的索引值,在顶点位置坐标集合中,选取多个顶点的索引值各自对应的顶点位置坐标;
基于选取的顶点位置坐标,构建目标对象在任意一个视图角度的模型面片。
在一种可能的实现方式中,构建单元具体用于:
检测到顶点位置坐标为模型坐标系下的值时,将顶点位置坐标转换为世界坐标系下的目标位置坐标;
基于转换后的目标位置坐标,构建目标对象在任意一个视图角度的模型面片。
在一种可能的实现方式中,查找单元具体用于:
以模型面片的中心位置为起点,沿法线的方向进行碰撞体查找;其中,中心位置是基于模型面片中所有顶点的顶点位置坐标的平均值确定的。
在一种可能的实现方式中,获得单元具体用于:
确定第一查找结果用于表征:目标对象与目标碰撞体发生碰撞,则获取模型面片的中心位置和第一碰撞点位置的第一距离;
在第一距离大于设定的第一阈值时,获得贴合关系为目标碰撞体包覆目标对象,并在游戏场景对应的帧数据中,标记模型面片的各个顶点位置。
在一种可能的实现方式中,获得单元具体用于:
确定第一查找结果用于表征:目标对象未与目标碰撞体发生碰撞,则基于法线的反方向查找第二碰撞体,获取第二查找结果;其中,第二查找结果用于表征:目标对象是否与目标碰撞体发生碰撞;
基于第二查找结果,获得目标对象和目标碰撞体之间的贴合关系。
在一种可能的实现方式中,获得单元还用于:
确定第二查找结果用于表征:目标对象与目标碰撞体发生碰撞,则获取模型面片的中心位置和第二碰撞点位置的第二距离;
在第二距离大于设定的第二阈值时,获得贴合关系为目标对象包覆目标碰撞体,并在游戏场景对应的帧数据中,标记模型面片的各个顶点位置。
在一种可能的实现方式中,获得单元还用于:
确定第二查找结果用于表征:目标对象未与目标碰撞体发生碰撞,获得贴合关系为针对目标对象未设置目标碰撞体,并在游戏场景对应的帧数据中,标记目标对象的包围盒。
在一种可能的实现方式中,获得单元还用于:
基于第一查找结果,获得目标对象和目标碰撞体之间的贴合关系之后,将贴合关系检测的检测记录存储到数据库中。
在一种可能的实现方式中,获得单元还用于:
基于第一查找结果,获得目标对象和目标碰撞体之间的贴合关系之后,采用列表的形式呈现检测记录;其中,列表中,包括:目标对象的位置、目标对象的名称、顶点数量中的至少一种。
在一种可能的实现方式中,获取单元具体用于:
调用迭代器,获取游戏场景中目标对象的静态网格模型;
从静态网格模型的静态网格部件中,提取目标对象的目标数据。
第三方面,本申请实施例提供一种电子设备,包括:存储器和处理器,其中,存储器,用于存储计算机指令;处理器,用于执行计算机指令以实现本申请实施例提供的贴合关系检测方法的步骤。
第四方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,计算机指令被处理器执行时实现本申请实施例提供的贴合关系检测方法的步骤。
第五方面,本申请实施例提供一种计算机程序产品,其包括计算机指令,计算机指令存储在计算机可读存储介质中;当电子设备的处理器从计算机可读存储介质读取计算机指令时,处理器执行计算机指令,使得电子设备执行本申请实施例提供的贴合关系检测方法的步骤。
本申请有益效果如下:
本申请实施例提供一种贴合关系检测方法、装置、设备及存储介质,涉及计算机技术领域;在本申请中,在确定需要进行贴合关系检测时,首先获取游戏场景中目标对象对应的目标数据,目标数据包括:目标对象的建模网格信息;然后,基于建模网格信息,构建目标对象在任意一个视图角度的模型面片,并确定模型面片的法线;接着,基于法线的方向进行碰撞体查找,获取用于表征是否与相应的目标碰撞体发生碰撞的第一查找结果;最后,基于第一查找结果,获得目标对象和目标碰撞体之间的贴合关系。提出一种自动检测目标对象和目标碰撞体之间的贴合关系的实现方式,有效避免了人工识别导致的低效、错漏问题,提升检测效率和准确性。进一步,当贴合关系为目标对象包覆目标碰撞体,或者,针对目标对象未设置目标碰撞体时,确定存在穿模问题,或者,当贴合关系为目标碰撞体包覆目标对象时,确定存在碰撞体设置过大导致的浮空问题;有效检测碰撞体设置的合理性。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以基于这些附图获得其他的附图。
图1为一种设置简单碰撞体时游戏人物下落的示意图;
图2为一种设置复杂碰撞体时游戏人物下落的示意图;
图3为一种游戏人物浮空的示意图;
图4为一种游戏人物穿模的示意图;
图5为一种对象和碰撞体贴合时游戏人物正常表现的示意图;
图6为本申请实施例提供的一种应用场景示意图;
图7为本申请实施例提供的一种基于游戏编辑器进行贴合关系检测的示意图;
图8为本申请实施例提供的一种贴合关系检测方法流程图;
图9为本申请实施例提供的一种构建目标对象的模型面片的示意图;
图10为本申请实施例提供的一种确定用于碰撞体查找的法线的示意图;
图11为本申请实施例提供的一种进行射线检测的示意图;
图12为本申请实施例提供的一种检测碰撞体过大的示意图;
图13为本申请实施例提供的一种标记碰撞体设置过大的示意图;
图14为本申请实施例提供的一种检测碰撞体过小的示意图;
图15为本申请实施例提供的一种穿模标记示意图;
图16为本申请实施例提供的一种检测记录显示方式示意图;
图17为本申请实施例提供的一种贴合关系检测的具体实施方法流程图;
图18为本申请实施例提供的一种贴合关系检测装置结构图;
图19为本申请实施例提供的一种电子设备结构图;
图20为本申请实施例提供另一种电子设备结构图。
具体实施方式
为了使本申请的目的、技术方案及有益效果更加清楚明白,以下将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请部分实施例,并不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了便于本领域技术人员更好地理解本申请的技术方案,下面对本申请涉及的部分概念进行介绍。
碰撞体:是对象之间的一触碰、碰撞的基础。任意两个对象之间的接触碰撞实际上都是碰撞体的接触。若两两对象中一个对象没有碰撞体,则两两对象在触碰、碰撞时将产生穿透效果。且碰撞发生的效果是由碰撞体的形状大小决定的。
对象:游戏场景中出现的任意物件,比如房子、车子、树木、石头、游戏人物等,该对象具有三维模型,也可称为对象模型。而本申请实施例中的目标对象,是游戏场景中任一物件,且目标对象和目标碰撞体是相对而言的,比如目标对象为房子,则目标碰撞体为针对房子设置的碰撞体。
贴合关系:是目标对象和目标碰撞体之间的贴合程度;包括:目标对象大于目标碰撞体(即目标对象包覆目标碰撞体),目标对象小于目标碰撞体(即目标碰撞体包覆目标对象),目标对象和目标碰撞体正好贴合(即目标对象和目标碰撞体的大小体积一致)。
下文中所用的词语“示例性”的意思为“用作例子、实施例或说明性”。作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
文中的术语“第一”、“第二”仅用于描述目的,而不能理解为明示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个特征,在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
下面对本申请实施例的设计思想进行简要介绍:
随着科技的发展,手游端游已成为生活娱乐中的主要部分。为了提升游戏场景中的画面视觉效果,提升游戏体验以及游戏真实性,会针对游戏场景中出现的各种对象设置能够实现物理表现的碰撞体,以模拟对象之间产生的物理碰撞或物理接触。
在相关技术中,碰撞体主要分为简单碰撞体和复杂碰撞体;其中,简单碰撞体主要使用胶囊体,盒体等;复杂碰撞体利用三角形网格的形式来设置。
其中,简单碰撞体设置方式简单,计算量低,但是精度低,且游戏场景内表现能力差。具体参考图1,图1为一种设置简单碰撞体时游戏人物下落的示意图,从图1中可知游戏人物和游戏座椅都设置了简单碰撞体,当游戏人物下落时,并没有落到游戏座椅上,而是落在了游戏座椅旁边。
而复杂碰撞体设置方式复杂,计算量大,但是精度高,且游戏场景内表现能力强。具体参考图2,图2为一种设置复杂碰撞体时游戏人物下落的示意图,从图2中可知游戏人物设置了简单碰撞体,而游戏座椅设置了复杂碰撞体,当游戏人物下落时,游戏人物正好可以落到游戏座椅上。
但是,不管设置复杂碰撞体还是设置简单碰撞体,都会存在对象与目标碰撞体之间的贴合关系不好的问题;例如:存在碰撞体覆盖不全,即碰撞体小于对象的情况,或者,存在碰撞体设置过大,即碰撞体大于对象的情况。
当碰撞体大于对象时,游戏场景中会出现浮空问题;参考图3,图3为本申请实施例提供的一种游戏人物浮空的示意图,从图3中可知基台(图3中所示实线正方体)的碰撞体(图3中所示虚线正方体)大于基台本身,此时游戏人物触碰到碰撞体时,即认为游戏人物已落在基台上,但是实际显示时,游戏人物并未落到基台上,而是呈现浮空问题。
当碰撞体小于对象时,游戏场景中出现穿模问题;参考图4,图4为本申请实施例提供的一种游戏人物穿模的示意图,从图4中可知基台(图4中所示实线正方体)的碰撞体(图4中所示虚线正方体)小于基台本身,此时,在游戏人物接触到碰撞体时,游戏人物已有一部分位与基台内部,呈现游戏人物穿模问题。
因此,仅有在对象和碰撞体完全贴合时,游戏人物才可以在游戏场景中正常表现,参考图5,图5为本申请实施例中对象和碰撞体贴合时游戏人物正常表现的示意图。故,不论碰撞体大于对象,还是对象大于碰撞体,均导致游戏画面显示异常、视觉感受不真实,降低游戏体验。因此,需要在手游端游正式上线之前,进行对象和碰撞体贴合关系检测。
相关技术中,主要依赖测试人员在三维场景内控制对象移动、跳跃等行为,实现对象间发生碰撞、交互,并通过观察来判断是否存在穿模问题和浮空问题。整个测试过程费时费力,且不同测试人员由于经验的差异和主观感受的不同,对同一个问题的判断结论也会不同,导致测试结果不稳定,且还会出现遗漏、判断错误等问题。
因此,如何自动进行目标对象和目标碰撞体贴合关系检测,提升检测效率和准确性是目前需要解决的技术问题。
有鉴于此,本申请实施例提供一种贴合关系检测方法、装置、设备及存储介质,用以自动进行目标对象和目标碰撞体贴合关系检测,提升检测效率和准确性。
在本申请实施例中,响应于贴合关系检测指令,确定需要进行目标对象和目标碰撞体之间的贴合关系检测,且在确定需要进行贴合关系检测时,首先获取游戏场景中目标对象对应的目标数据,目标数据包括:目标对象的建模网格信息;然后,基于建模网格信息,构建目标对象在任意一个视图角度的模型面片,并确定模型面片的法线;接着,基于法线的方向进行碰撞体查找,获取用于表征是否与目标碰撞体发生碰撞的第一查找结果;最后,基于第一查找结果,获得目标对象和目标碰撞体之间的贴合关系。
提出一种自动检测目标对象和目标碰撞体之间的贴合关系的实现方式,有效避免了人工识别导致的低效、错漏问题,提升检测效率和准确性。且在检测过程中,根据目标对象的建模网格信息,确定的模型面片,并沿模型面片的法线方向进行碰撞体检测时,不论是针对目标对象设置的是复杂碰撞体还是简单碰撞体,本申请均可以实现目标对象和碰撞之间的贴合度检测,无需分别适配简单碰撞体和复杂碰撞体,具有通用性。进一步,当获得贴合关系为目标对象包覆目标碰撞体,或者贴合关系为针对目标对象未设置目标碰撞体时,确定存在穿模问题,或者,当获得贴合关系为目标碰撞体包覆目标对象时,确定存在碰撞体设置过大导致的浮空问题;有效检测碰撞体设置的合理性。
以下结合说明书附图对本申请的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本申请,并不用于限定本申请,并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
参见图6,图6为本申请实施例的应用场景示意图。该应用场景中包括终端设备610和服务器620,终端设备610与服务器620之间可以通过通信网络进行通信。
在一种可选的实施方式中,通信网络可以是有线网络或无线网络。因此,终端设备610和服务器620可以通过有线或无线通信方式进行直接或间接地连接。比如,终端设备610可以通过无线接入点与服务器620间接地连接,或发终端设备610通过因特网与服务器620直接地连接,本申请在此不做限制。
在本申请实施例中,终端设备610包括但不限于手机、平板电脑、笔记本电脑、台式电脑、电子书阅读器、智能语音交互设备、智能家电、车载终端等设备;终端设备上可以安装有各种客户端,该客户端可以是支持贴合关系检测功能的应用程序(例如浏览器、游戏软件等),也可以是网页、插件、小程序等;
服务器620是与终端设备610中安装的客户端相对应的后台服务器。服务器620可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
需要说明的是,本申请实施例中的贴合关系检测方法可以由电子设备执行,该电子设备可以为服务器620或者终端设备610,即,该方法可以由服务器620或者终端设备610单独执行,也可以由服务器620和终端设备610共同执行。
在终端设备610单独执行时,比如,可由终端设备610响应于贴合关系检测指令,获取游戏场景中目标对象对应的建模网格信息;基于建模网格信息,构建目标对象在任意一个视图角度的模型面片,并确定模型面片的法线;基于法线的方向进行碰撞体查找,获取用于表征是否与目标碰撞体发生碰撞的第一查找结果;基于第一查找结果,获得目标对象和目标碰撞体之间的贴合关系。
在服务器620单独执行时,比如,可由服务器620响应于贴合关系检测指令,获取游戏场景中目标对象对应的建模网格信息,以及与目标对象存在包覆关系的目标碰撞体的属性信息;基于建模网格信息,构建目标对象在任意一个视图角度的模型面片,并确定模型面片的法线;基于法线的方向进行碰撞体查找,获取用于表征是否与目标碰撞体发生碰撞的第一查找结果;基于第一查找结果,获得目标对象和目标碰撞体之间的贴合关系。
在服务器620和终端设备610共同执行时,比如,可由终端设备610响应于贴合关系检测指令,获取游戏场景中目标对象对应的目标数据,然后将目标数据传输给服务器。由服务器基于目标数据中的建模网格信息,构建目标对象在任意一个视图角度的模型面片,并确定模型面片的法线;基于法线的方向进行碰撞体查找,获取用于表征是否与目标碰撞体发生碰撞的第一查找结果;基于第一查找结果,获得目标对象和目标碰撞体之间的贴合关系。
需要说明的是,在下文中,主要是以服务器单独执行为例进行举例说明的,在此不做具体限定。
在具体实施中,可以在终端设备610中输入贴合关系检测指令,终端设备610将贴合关系检测指令发送至服务器620,服务器620在接收到贴合关系检测指令后,可以采用本申请实施例的贴合关系检测方法,确定目标对象和目标碰撞体之间的贴合关系。
需要说明的是,图6所示只是举例说明,实际上终端设备610和服务器620的数量不受限制,在本申请实施例中不做具体限定。
本申请实施例中,当服务器620的数量为多个时,多个服务器620可组成为一区块链,而服务器620为区块链上的节点;且本申请实施例所公开的贴合关系检测方法中所涉及的目标数据等可保存于区块链上。
下面,以支持贴合关系检测功能的应用程序以插件形式嵌入在游戏编辑器内,以在游戏编辑器内快速的进行贴合关系检测的场景为例,对本申请实施例中贴合关系检测进行简单说明。
参考图7,图7为本申请实施例提供的一种基于游戏编辑器进行贴合关系检测的示意图;其中,该游戏编辑器中包括:游戏运行实例和以插件形式嵌入的贴合关系检测工具;且贴合关系检测工具中包括:贴合关系检测模块和结果展示模块。
示例性的,在编辑器中启动游戏后,使用贴合关系检测工具对游戏场景中的目标对象和目标碰撞体之间的贴合关系进行检测。此时,贴合关系检测模块会读取运行游戏实例内的所有目标对象的目标数据,基于目标数据对相应的目标对象和目标碰撞体的贴合关系进行检测,并且会在游戏场景中将有问题的顶点标识出。在检测完成后,结果展示模块会在编辑内以列表形式,在窗口内展示检测的结果,同时检测结果会被存储到数据库中。
本申请中,以插件的形式实现贴合关系检测,可在不同项目上进行移植,适用性强。且可以高效的对游戏场景内模型的碰撞贴合关系进行检测,对于10平方公里内大型游戏场景内的所有对象检测时间不超过10分钟,可以大大节省测试人力和测试时间。同时对游戏场景内设置了碰撞体的对象进行全量检测,可以覆盖到游戏场景内山洞中的对象,建筑物顶部等人工测试中容易忽略的位置,可以有效提升测试的精度。
需要说明的是,项目不限于游戏,可以是任何具有三维模型,且针对三维模型设置碰撞体的项目。
下面结合上述描述的应用场景,基于附图来描述本申请示例性实施方式提供的贴合关系检测方法,需要注意的是,上述应用场景仅是为了便于理解本申请的精神和原理而示出,本申请的实施方式在此方面不受任何限制。
参考图8,图8为本申请实施例提供的一种贴合关系检测方法流程图,包括如下步骤:
步骤S800,响应于贴合关系检测指令,获取游戏场景中目标对象对应的目标数据;其中,目标数据包括:目标对象的建模网格信息。
在一种可能的实现方式中,响应于贴合关系检测指令后,确定需要进行目标对象和目标碰撞体之间的贴合关系检测。在确定需要进行贴合关系检测时,调用迭代器,获取游戏场景中目标对象的静态网格模型;并从静态网格模型的静态网格部件中,提取目标对象的目标数据。
以虚幻引擎(Unreal Engine)为例:
Unreal Engine中包含游戏场景中所有对象各自对应的静态网格模型(StaticMeshActor);其中,每个StaticMeshActor中会包含一个或多个静态网格部件(StaticMeshComponent),StaticMeshComponent中会存储有相应目标对象的建模网格信息,以及与目标对象存在包覆关系的目标碰撞体的属性信息。
因此,在另一可能的实现方式中,获取游戏场景中目标对象对应的目标数据中,还包括:与目标对象存在包覆关系的目标碰撞体的属性信息。
示例性的,在确定需要进行贴合关系检测时,首先,调用迭代器TAactorIterator<AStaticMeshActor>,通过迭代器遍历游戏场景中的所有StaticMeshActor;然后,从StaticMeshActor的StaticMeshComponent中获取目标数据,以通过获取的目标数据进行后续贴合关系检测。
可选的,从StaticMeshComponent->GetStaticMesh()->Renderdata中获取目标数据。Renderdata中存储了建模网格信息以及与目标对象存在包覆关系的目标碰撞体的属性信息;其中,建模网格信息,包括:目标对象的顶点位置数组(PositionVertexBuffer),和至少一个顶点索引数组(IndexBuffer);顶点位置数组为顶点位置坐标集合,每个索引数组中包含至少三个数据,每个数据用于表征顶点在PositionVertexBuffer数组中对应的索引值,即每个数据用于表征一个顶点的索引值。
步骤S801,基于建模网格信息,构建目标对象在任意一个视图角度的模型面片,并确定模型面片的法线。
由于建模网格信息,包括:目标对象的顶点位置坐标集合和至少一个顶点索引数组;且每个顶点索引数组包含多个顶点的索引值。因此,基于至少一个顶点索引数组和顶点位置坐标集合,可以构建出目标对象所有视图角度的模型面片。
以构建一个视图角度的模型面片为例:
在构建模型面片时,首先,确定建模网格信息中的一个顶点索引数组,并确定该顶点索引数组中包含的所有索引值;然后,基于索引值,在顶点位置坐标集合中,获取所有索引值各自对应的顶点位置坐标;最后,基于获取的所有顶点位置坐标,构建目标对象的一个模型面片。
在一种可能的实现方式中,由于PositionVertexBuffer中存储的顶点位置坐标是模型坐标系下的值,因此在基于顶点位置坐标,构建目标对象的一个模型面片时,需要将模型坐标系下的顶点位置坐标转换为世界坐标系下的目标位置坐标;并基于转换后的目标位置坐标,构建目标对象的一个模型面片。
示例性的,通过StaticMeshComponent的ComponentLocation和ComponentTransform,将模型坐标系下的顶点位置坐标转换为世界坐标系下的目标位置坐标。并利用Unreal Engine中提供的FPlane结构和顶点位置坐标构建模型面片所在的平面。
以一个顶点索引数组中包括三个数据为例:
参考图9,图9为本申请实施例中一种构建模型面片的示意图。设模型面片为三角形面片,该三角形面片的三个顶点对应一个顶点索引数组。若三个顶点在顶点索引数组中对应的索引值分别为2,1,0;则三个顶点的位置坐标分别对应顶点位置坐标集合中第2个位置的pos2的坐标信息,第一个位置的pos1的坐标信息和第0个位置的pos0的坐标信息。在获得三个顶点的位置坐标后,根据该三个顶点位置坐标即可构建一个模型面片。
需要说明的是,三个点即可构成一个平面,因此顶点索引数组中至少包括三个索引值,但并本申请实施例中,顶点索引数组中包含的索引值并不限于三个,还可以是四个、五个等等。
步骤S802,基于法线的方向进行碰撞体查找,获取第一查找结果;其中,第一查找结果表征:目标对象是否与目标碰撞体发生碰撞。
在本申请实施例中,为了提升检测结果的准确性,提出一种沿模型面片的法线方向,利用射线检测方法,检测模型面片的前面或者后面是否存在碰撞体,并确定模型面片和其前面或者后面的碰撞体之间的距离,以基于检测结果,确定目标对象和目标碰撞体之间的贴合关系。
在一种可能的实现方式中,以模型面片的中心位置为起点,沿法线的方向,使用射线检测方法进行碰撞体查找;其中,中心位置是基于模型面片中所有顶点的顶点位置坐标的平均值确定的。
参考图10,图10为本申请实施例提供的一种确定用于碰撞体查找的法线的示意图。设模型面片为三角形面片,确定三角形面片的三个顶点分别为pos0、pos1、pos2后,采用(pos0+pos1+pos2)/3的位置作为模型面片的中心位置;然后,然后使用FPlane的GetNormal方法获取穿过模型面片的中心位置的法线,并以中心位置为起点,沿法线的方向,使用射线检测方法进行贴合关系检测。
其中,第一查找结果中至少包括:法线的方向上是否存在碰撞体,方向上的第一碰撞体的属性信息,以及与第一碰撞体之间的第一距离信息中的至少一种。
示例性的,在Unreal Engine中使用LineTraceByObjectType方法,在法线的方向上进行射线检测,参考图11,图11为本申请实施例提供的一种进行射线检测的示意图。
当射线被第一个对象阻挡后,确定射线检测的过程中发生碰撞,则LinetraceByObjectType会返回true以指示存在碰撞体,并且会返回FHitResult结构,该结构中会存储碰撞体的位置信息、与碰撞体之间的距离、碰撞体的属性信息等详细信息。当射线检测的过程中未发生碰撞,则LinetraceByObjectType会直接返回false。
因此,在发生碰撞时,第一查找结果包括发生碰撞指示,以及碰撞体的属性信息,以根据碰撞体的属性信息确定碰撞体是否为目标碰撞体;在未发生碰撞时,第一查找结果包括未发生碰撞指示,故一定不存在与目标碰撞体发生碰撞。
需要说明的是,StaticMeshActor的ObjectType一般设置为WorldStatic,因此第一个阻挡射线的对象为WorldStatic物件。
步骤S803,基于第一查找结果,获得目标对象和目标碰撞体之间的贴合关系。
其中,贴合关系为:目标对象包覆目标碰撞体,目标碰撞体包覆目标对象,或者,针对目标对象未设置目标碰撞体。
由于第一查找结果用于表征是否与目标碰撞体发生碰撞,因此会存在两种情况,分别为与目标碰撞体发生碰撞,和未与目标碰撞体发生碰撞。下面,针对这两种情况分别进行详细说明。
情况一:第一查找结果表征与目标碰撞体发生碰撞。
在一种可能的实现方式中,确定第一查找结果用于表征与目标碰撞体发生碰撞时,说明模型面片处于目标碰撞体内,此时存在目标碰撞体包覆目标对象,目标碰撞体设置过大而导致的浮空问题。
因此,为了保证检测准确性,在确定第一查找结果用于表征与目标碰撞体发生碰撞时,获取模型面片的中心位置和第一碰撞点位置的第一距离;并确定第一距离大于设定的第一阈值时,获得贴合关系为目标碰撞体包覆目标对象,即目标碰撞体设置过大。
示例性的,参考图12,图12为本申请实施例提供的一种检测碰撞体设置过大的示意图。在射线检测产生碰撞且碰撞体为检测的目标对象对应的目标碰撞体时,说明模型面片处于目标碰撞体内,此时需进一步确定模型面片和法线的方向上碰撞面的第一距离,以基于第一距离确定碰撞体是否设置过大。此时,从模型面片中心,沿法线的方向在碰撞体外选取一个起点,从该起点向模型面片中心发射线,该射线会和碰撞体产生交点,即第一碰撞点,确定第一碰撞点位置和模型面片中心位置的第一距离,若第一距离大于设定的第一阈值,说明碰撞体设置过大。
在另一种可能的实现方式中,确定第一距离小于等于设定的第一阈值时,获得贴合关系为目标碰撞体与目标对象正常贴合,此时游戏场景中,对象之间碰撞表现正常。
在本申请实施例中,为了便于后续修改和查看,在确定贴合关系为目标碰撞体包覆目标对象时,在游戏场景对应的帧数据中,标记模型面片的各个顶点位置;参考图13,为本申请实施例提供的一种标记碰撞体设置过大的示意图。从图13中可知,对模型面片的顶点位置进行特殊标记,如图13中所示的网格填充部分,该网格填充部分对应模型面片的顶点位置。
情况二:第一查找结果表征未与目标碰撞体发生碰撞。
在一种可能的实现方式中,确定第一查找结果用于表征未与目标碰撞体发生碰撞时,说明模型面片处于目标碰撞体外,此时存在穿模问题。但是导致穿模问题的情况分为:目标对象包覆目标碰撞体,即目标碰撞体设置过小导致的穿模问题;还存在未设置碰撞体导致的穿模问题。
在本申请实施例中,未与目标碰撞体发生碰撞,包括:不存在碰撞体,存在不是目标碰撞体的其他碰撞体中的至少一种。
因此,为了保证检测准确性,以及确定导致穿模问题的主要原因,在确定第一查找结果用于表征未与目标碰撞体发生碰撞时,基于法线的反方向查找第二碰撞体,获取第二查找结果;其中,第二查找结果用于表征:目标对象是否与目标碰撞体发生碰撞。
由于第二查找结果用于表征是否与目标碰撞体发生碰撞,因此会存在两种情况,分别为与目标碰撞体发生碰撞,和未与目标碰撞体发生碰撞。下面,针对这两种情况分别进行详细说明。
情况A:第二查找结果用于表征与目标碰撞体发生碰撞。
在一种可能的实现方式中,确定第二查找结果用于表征与目标碰撞体发生碰撞时,获取模型面片的中心位置和第二碰撞点位置的第二距离;并确定第二距离大于设定的第二阈值时,获得贴合关系为目标对象包覆目标碰撞体;即目标碰撞体设置过小。
示例性的,参考图14,图14为本申请实施例提供的一种检测碰撞体设置过小的示意图。在反方向上进行射线检测时,确定产生碰撞且碰撞体为检测的目标对象对应的目标碰撞体时,说明模型面片处于目标碰撞体外,此时需进一步确定模型面片和法线的反方向上碰撞面的第二距离,以基于第二距离确定碰撞体是否设置过小。
此时,确定模型面片中心位置和第二碰撞点之间第二距离,若第二距离大于设定的第二阈值,说明碰撞体设置过小。
在另一种可能的实现方式中,确定第二距离小于等于设定的第二阈值时,获得贴合关系为目标碰撞体与目标对象正常贴合,此时游戏场景中,对象之间碰撞表现正常。
在本申请实施例中,为了便于后续修改和查看,在确定贴合关系为目标对象包覆目标碰撞体时,在游戏场景对应的帧数据中,标记模型面片的各个顶点位置;参考图15,为本申请实施例提供的一种标记碰撞体设置过小的示意图。从图15中可知,对模型面片的顶点位置进行特殊标记,如图15中所示的斜线填充部分,该斜线填充部分对应模型面片的顶点位置。
情况B:第二查找结果用于表征未与目标碰撞体发生碰撞。
在一种可能的实现方式中,确定第二查找结果用于表征未与目标碰撞体发生碰撞,获得贴合关系为针对目标对象未设置目标碰撞体,并在游戏场景对应的帧数据中,标记目标对象的包围盒。
示例性的,以三角形中心为起点,沿法线反方向发送射线,若产生碰撞且碰撞体为目标碰撞体,确定模型面片中心位置和第二碰撞点位置的第二距离,该第二距离为模型面片的穿模距离,若该穿模距离大于设定的第二阈值,则将该模型面片的顶点在模型表面用标记点标出;若仍没有产生碰撞或产生碰撞的碰撞体不是目标碰撞体,则确定目标对象未设置碰撞体,该种可能为碰撞未设置的漏洞,此时将该目标对象的包围盒标记出。
为了便于制作人员进行后续问题回溯,快速的定位和修复模型碰撞体不贴合问题,本申请实施例,在基于第一查找结果,获得目标对象和目标碰撞体之间的贴合关系之后,将贴合关系检测的检测记录和相应的帧数据存储到数据库中;并采用列表的形式在界面中呈现检测记录;其中,列表中,包括:目标对象的位置、目标对象的名称、顶点数量中的至少一种。参考图16,图16示例性提供本申请实施例中一种列表存储结果示意图。
参考图17,为本申请实施例提供的一种贴合关系检测的具体实施方式示意图,包括如下步骤:
步骤S1700,响应于贴合关系检测指令,调用迭代器,获取游戏场景中目标对象的静态网格模型;
步骤S1701,从静态网格模型的静态网格部件中,提取目标对象的目标数据;
步骤S1702,基于目标数据中的建模网格信息,构建目标对象在任意一个视图角度的模型面片;
步骤S1703,基于模型面片的顶点位置坐标,确定模型面片的中心位置;
步骤S1704,以模型面片的中心位置,沿模型面片的法线的方向进行射线检测,以进行碰撞体查找,并获取用于表征是否与目标碰撞体发生碰撞的第一查找结果;
步骤S1705,基于第一查找结果,判断是否与目标碰撞体发生碰撞,若是,则执行步骤S1706,否则执行步骤S1708;
步骤S1706,获取模型面片的中心位置和第一碰撞点位置的第一距离;
步骤S1707,在第一距离大于设定的第一阈值时,获得贴合关系为目标碰撞体包覆目标对象,并在游戏场景对应的帧数据中,标记模型面片的各个顶点位置;
步骤S1708,以模型面片的中心位置,沿模型面片的法线的反方向进行射线检测,以进行碰撞体查找,并获取用于表征是否与目标碰撞体发生碰撞的第二查找结果;
步骤S1709,基于第二查找结果,判断是否与目标碰撞体发生碰撞,若是,则执行步骤S1710,否则执行步骤S1712;
步骤S1710,获取模型面片的中心位置和第二碰撞点位置的第二距离;
步骤S1711,确定第二距离大于设定的第二阈值时,获得贴合关系为目标对象包覆目标碰撞体,并在游戏场景对应的帧数据中,标记模型面片的各个顶点位置;
步骤S1712,获得贴合关系为针对目标对象未设置目标碰撞体,在游戏场景对应的帧数据中,标记目标对象的包围盒;
步骤S1713,将贴合关系检测过程中产生的检测结果存入数据库,以及呈现到编辑器的结果列表内。
在本申请中,针对目标对象设置的复杂碰撞体,或者,简单碰撞体,均可自动检测目标对象和目标碰撞体之间的贴合关系,有效避免了人工识别导致的低效、错漏问题,提升检测效率和准确性,且具有通用性。进一步,当获得贴合关系为目标对象包覆目标碰撞体时,确定目标对象和目标碰撞体之间存在穿模问题,或者,当获得贴合关系为目标碰撞体包覆目标对象时,确定存在碰撞体设置过大的问题;可针对穿模问题和碰撞体设置过大问题进行检测,有效检测碰撞体设置的合理性。
与本申请上述方法实施例基于同一发明构思,本申请实施例中还提供了一种贴合关系检测装置,装置解决问题的原理与上述实施例的方法相似,因此装置的实施可以参见上述方法的实施,重复之处不再赘述。
参考图18,图18为本申请实施例提供的一种贴合关系检测装置1800,该贴合关系检测装置1800,包括:
获取单元1801,用于响应于贴合关系检测指令,获取游戏场景中目标对象对应的目标数据;其中,目标数据包括:目标对象的建模网格信息;
构建单元1802,用于基于建模网格信息,构建目标对象在任意一个视图角度的模型面片,并确定模型面片的法线;
查找单元1803,用于基于法线的方向进行碰撞体查找,获取第一查找结果;其中,第一查找结果表征:目标对象是否与相应的目标碰撞体发生碰撞;
获得单元1804,用于基于第一查找结果,获得目标对象和目标碰撞体之间的贴合关系;其中,贴合关系为:目标对象包覆目标碰撞体,目标碰撞体包覆目标对象,或者,针对目标对象未设置目标碰撞体。
在一种可能的实现方式中,建模网格信息,包括:目标对象的顶点位置坐标集合和至少一个顶点索引数组;其中,每个顶点索引数组包含多个顶点的索引值;
构建单元1802具体用于:
针对至少一个顶点索引数组中的每个顶点索引数组,基于每个顶点索引数据中多个顶点的索引值,在顶点位置坐标集合中,选取多个顶点的索引值各自对应的顶点位置坐标;
基于选取的顶点位置坐标,构建目标对象在任意一个视图角度的模型面片。
在一种可能的实现方式中,构建单元1802具体用于:
检测到顶点位置坐标为模型坐标系下的值时,将顶点位置坐标转换为世界坐标系下的目标位置坐标;
基于转换后的目标位置坐标,构建目标对象在任意一个视图角度的模型面片。
在一种可能的实现方式中,查找单元1803具体用于:
以模型面片的中心位置为起点,沿法线的方向进行碰撞体查找;其中,中心位置是基于模型面片中所有顶点的顶点位置坐标的平均值确定的。
在一种可能的实现方式中,获得单元1804具体用于:
确定第一查找结果用于表征:目标对象与目标碰撞体发生碰撞,则获取模型面片的中心位置和第一碰撞点位置的第一距离;
在第一距离大于设定的第一阈值时,获得贴合关系为目标碰撞体包覆目标对象,并在游戏场景对应的帧数据中,标记模型面片的各个顶点位置。
在一种可能的实现方式中,获得单元1804具体用于:
确定第一查找结果用于表征:目标对象未与目标碰撞体发生碰撞,则基于法线的反方向查找第二碰撞体,获取第二查找结果;其中,反方向为方向的反方向,第二查找结果用于表征:目标对象是否与目标碰撞体发生碰撞;
基于第二查找结果,获得目标对象和目标碰撞体之间的贴合关系。
在一种可能的实现方式中,获得单元1804还用于:
确定第二查找结果用于表征:目标对象与目标碰撞体发生碰撞,则获取模型面片的中心位置和第二碰撞点位置的第二距离;
在第二距离大于设定的第二阈值时,获得贴合关系为目标对象包覆目标碰撞体,并在游戏场景对应的帧数据中,标记模型面片的各个顶点位置。
在一种可能的实现方式中,获得单元1804还用于:
确定第二查找结果用于表征:目标对象未与目标碰撞体发生碰撞,获得贴合关系为针对目标对象未设置目标碰撞体,并在游戏场景对应的帧数据中,标记目标对象的包围盒。
在一种可能的实现方式中,获得单元1804还用于:
基于第一查找结果,获得目标对象和目标碰撞体之间的贴合关系之后,将贴合关系检测的检测记录存储到数据库中。
在一种可能的实现方式中,获得单元1804还用于:
基于第一查找结果,获得目标对象和目标碰撞体之间的贴合关系之后,采用列表的形式呈现检测记录;其中,列表中,包括:目标对象的位置、目标对象的名称、顶点数量中的至少一种。
在一种可能的实现方式中,获取单元1804具体用于:
调用迭代器,获取游戏场景中目标对象的静态网格模型;
从静态网格模型的静态网格部件中,提取目标对象的目标数据。
为了描述的方便,以上各部分按照功能划分为各单元(或模块)分别描述。当然,在实施本申请时可以把各单元(或模块)的功能在同一个或多个软件或硬件中实现。
所属技术领域的技术人员能够理解,本申请的各个方面可以实现为***、方法或程序产品。因此,本申请的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“***”。
在介绍了本申请示例性实施方式的场景图生成方法和装置之后,接下来,介绍根据本申请的另一示例性实施方式的用于贴合关系检测的电子设备。
与本申请上述方法实施例基于同一发明构思,本申请实施例中还提供了一种电子设备,该电子设备可以是服务器。在该实施例中,电子设备的结构可以如图19所示,包括存储器1901,通讯模块1903以及一个或多个处理器1902。
存储器1901,用于存储处理器1902执行的计算机程序。存储器1901可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***,以及运行即时通讯功能所需的程序等;存储数据区可存储各种即时通讯信息和操作指令集等。
存储器1901可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器1901也可以是非易失性存储器(non-volatilememory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);或者存储器1901是能够用于携带或存储具有指令或数据结构形式的期望的计算机程序并能够由计算机存取的任何其他介质,但不限于此。存储器1901可以是上述存储器的组合。
处理器1902,可以包括一个或多个中央处理单元(central processing unit,CPU)或者为数字处理单元等等。处理器1902,用于调用存储器1901中存储的计算机程序时实现上述贴合关系检测方法。
通讯模块1903用于与终端设备和其他服务器进行通信。
本申请实施例中不限定上述存储器1901、通讯模块1903和处理器1902之间的具体连接介质。本申请实施例在图19中以存储器1901和处理器1902之间通过总线1904连接,总线1904在图19中以粗线描述,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线1904可以分为地址总线、数据总线、控制总线等。为便于描述,图19中仅用一条粗线描述,但并不描述仅有一根总线或一种类型的总线。
存储器1901中存储有计算机存储介质,计算机存储介质中存储有计算机可执行指令,计算机可执行指令用于实现本申请实施例的场景图生成方法。处理器1902用于执行上述的场景图生成方法。
在另一种实施例中,电子设备也可以是其他电子设备,如终端设备。在该实施例中,电子设备的结构可以如图20所示,包括:通信组件2010、存储器2020、显示单元2030、摄像头2040、传感器2050、音频电路2060、蓝牙模块2070、处理器2080等部件。
通信组件2010用于与服务器进行通信。在一些实施例中,可以包括电路无线保真(Wireless Fidelity,WiFi)模块,WiFi模块属于短距离无线传输技术,电子设备通过WiFi模块可以帮助用户收发信息。
存储器2020可用于存储软件程序及数据。处理器2080通过运行存储在存储器2020的软件程序或数据,从而执行终端设备的各种功能以及数据处理。存储器2020可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一类磁盘存储器件、闪存器件、或其他易失性固态存储器件。存储器2020存储有使得终端设备能运行的操作***。本申请中存储器2020可以存储操作***及各种应用程序,还可以存储执行本申请实施例贴合关系检测方法的代码。
显示单元2030还可用于显示由用户输入的信息或提供给用户的信息以及终端设备的各种菜单的图形用户界面(graphical user interface,GUI)。具体地,显示单元2030可以包括设置在终端设备正面的显示屏2032。其中,显示屏2032可以采用液晶显示器、发光二极管等形式来设置。显示单元2030可以用于显示本申请实施例中的游戏场景示意图、带有错误标记的帧数据等。
显示单元2030还可用于接收输入的数字或字符信息,产生与终端设备的用户设置以及功能控制有关的信号输入,具体地,显示单元2030可以包括设置在终端设备正面的触摸屏2031,可收集用户在其上或附近的触摸操作,例如点击按钮,拖动滚动框等。
其中,触摸屏2031可以覆盖在显示屏2032之上,也可以将触摸屏2031与显示屏2032集成而实现终端设备的输入和输出功能,集成后可以简称触摸显示屏。本申请中显示单元2030可以显示应用程序以及对应的操作步骤。
摄像头2040可用于捕获静态图像。摄像头2040可以是一个,也可以是多个。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupleddevice,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给处理器2080转换成数字图像信号。
终端设备还可以包括至少一种传感器2050,比如加速度传感器2051、距离传感器2052、指纹传感器2053、温度传感器2054。终端设备还可设置有陀螺仪、气压计、湿度计、温度计、红外线传感器、光传感器、运动传感器等其他传感器。
音频电路2060、扬声器2061、传声器2062可提供用户与终端设备之间的音频接口。音频电路2060可将接收到的音频数据转换后的电信号,传输到扬声器2061,由扬声器2061转换为声音信号输出。终端设备还可设置音量按钮,用于调节声音信号的音量。另一方面,传声器2062将收集的声音信号转换为电信号,由音频电路2060接收后转换为音频数据,再将音频数据输出至通信组件2010以发送给比如另一终端设备,或者将音频数据输出至存储器2020以便进一步处理。
蓝牙模块2070用于通过蓝牙协议来与其他具有蓝牙模块的蓝牙设备进行信息交互。例如,终端设备可以通过蓝牙模块2070与同样具备蓝牙模块的可穿戴电子设备(例如智能手表)建立蓝牙连接,从而进行数据交互。
处理器2080是终端设备的控制中心,利用各种接口和线路连接整个终端的各个部分,通过运行或执行存储在存储器2020内的软件程序,以及调用存储在存储器2020内的数据,执行终端设备的各种功能和处理数据。在一些实施例中,处理器2080可包括一个或多个处理单元;处理器2080还可以集成应用处理器和基带处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,基带处理器主要处理无线通信。可以理解的是,上述基带处理器也可以不集成到处理器2080中。本申请中处理器2080可以运行操作***、应用程序、用户界面显示及触控响应,以及本申请实施例的贴合关系检测方法。另外,处理器2080与显示单元2030耦接。
在一些可能的实施方式中,本申请提供的贴合关系检测方法的各个方面还可以实现为一种程序产品的形式,其包括计算机程序,当程序产品在电子设备上运行时,计算机程序用于使电子设备执行本说明书上述描述的根据本申请各种示例性实施方式的贴合关系检测方法中的步骤。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本申请的实施方式的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括计算机程序,并可以在计算装置上运行。然而,本申请的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被命令执行***、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由命令执行***、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
此外,尽管在附图中以特定顺序描述了本申请方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
本领域内的技术人员应明白,本申请实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用计算机程序的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (15)

1.一种贴合关系检测方法,其特征在于,所述方法包括:
响应于贴合关系检测指令,获取游戏场景中目标对象对应的目标数据;其中,所述目标数据包括:所述目标对象的建模网格信息;
基于所述建模网格信息,构建所述目标对象在任意一个视图角度的模型面片,并确定所述模型面片的法线;
基于所述法线的方向进行碰撞体查找,获取第一查找结果;其中,所述第一查找结果表征:所述目标对象是否与相应的目标碰撞体发生碰撞;
基于所述第一查找结果,获得所述目标对象和所述目标碰撞体之间的贴合关系;其中,所述贴合关系为:所述目标对象包覆所述目标碰撞体,所述目标碰撞体包覆所述目标对象,或者,针对所述目标对象未设置所述目标碰撞体。
2.如权利要求1所述的方法,其特征在于,所述建模网格信息,包括:所述目标对象的顶点位置坐标集合和至少一个顶点索引数组;其中,每个顶点索引数组包含多个顶点的索引值;
所述基于各个所述建模网格信息,构建所述目标对象在任意一个视图角度的模型面片,包括:
针对所述至少一个顶点索引数组中的每个顶点索引数组,基于所述每个顶点索引数据中多个顶点的索引值,在所述顶点位置坐标集合中,选取所述多个顶点的索引值各自对应的顶点位置坐标;
基于选取的所述顶点位置坐标,构建所述目标对象在任意一个视图角度的模型面片。
3.如权利要求2所述的方法,其特征在于,所述基于选取的所述顶点位置坐标,构建所述目标对象在任意一个视图角度的模型面片,包括:
检测到所述顶点位置坐标为模型坐标系下的值时,将所述顶点位置坐标转换为世界坐标系下的目标位置坐标;
基于转换后的目标位置坐标,构建所述目标对象在所述任意一个视图角度的模型面片。
4.如权利要求1所述的方法,其特征在于,所述基于所述法线的方向进行碰撞体查找,包括:
以所述模型面片的中心位置为起点,沿所述法线的方向进行碰撞体查找;其中,所述中心位置是基于所述模型面片中所有顶点的顶点位置坐标的平均值确定的。
5.如权利要求1-4任一所述的方法,其特征在于,所述基于所述第一查找结果,获得所述目标对象和所述目标碰撞体之间的贴合关系,包括:
确定所述第一查找结果用于表征:所述目标对象与所述目标碰撞体发生碰撞,则获取所述模型面片的中心位置和第一碰撞点位置的第一距离;
在所述第一距离大于设定的第一阈值时,获得所述贴合关系为所述目标碰撞体包覆所述目标对象,并在所述游戏场景对应的帧数据中,标记所述模型面片的各个顶点位置。
6.如权利要求1-4任一项所述的方法,其特征在于,所述基于所述查找结果,获得所述目标对象和所述目标碰撞体之间的贴合关系,包括:
确定所述第一查找结果用于表征:所述目标对象未与所述目标碰撞体发生碰撞,则基于所述法线的反方向查找第二碰撞体,获取第二查找结果;其中,所述第二查找结果用于表征:所述目标对象是否与所述目标碰撞体发生碰撞;
基于所述第二查找结果,获得所述目标对象和所述目标碰撞体之间的贴合关系。
7.如权利要求6所述的方法,其特征在于,所述基于所述第二查找结果,获得所述目标对象和所述目标碰撞体之间的贴合关系,包括:
确定所述第二查找结果用于表征:所述目标对象与所述目标碰撞体发生碰撞,则获取所述模型面片的中心位置和第二碰撞点位置的第二距离;
在所述第二距离大于设定的第二阈值时,获得贴合关系为所述目标对象包覆所述目标碰撞体,并在所述游戏场景对应的帧数据中,标记所述模型面片的各个顶点位置。
8.如权利要求6所述的方法,其特征在于,所述基于所述第二查找结果,获得所述目标对象和所述目标碰撞体之间的贴合关系,包括:
确定所述第二查找结果用于表征:所述目标对象未与所述目标碰撞体发生碰撞,获得贴合关系为针对所述目标对象未设置所述目标碰撞体,并在所述游戏场景对应的帧数据中,标记所述目标对象的包围盒。
9.如权利要求1~4任一所述的方法,其特征在于,所述基于所述第一查找结果,获得所述目标对象和所述目标碰撞体之间的贴合关系之后,还包括:
将贴合关系检测的检测记录存储到数据库中。
10.如权利要求1~4任一所述的方法,其特征在于,所述基于所述第一查找结果,获得所述目标对象和所述目标碰撞体之间的贴合关系之后,还包括:
采用列表的形式呈现检测记录;其中,所述列表中,包括:目标对象的位置、目标对象的名称、顶点数量中的至少一种。
11.如权利要求1~4任一所述的方法,其特征在于,所述获取游戏场景中目标对象各自对应的目标数据,包括:
调用迭代器,获取所述游戏场景中目标对象的静态网格模型;
从所述静态网格模型的静态网格部件中,提取所述目标对象的目标数据。
12.一种贴合关系检测装置,其特征在于,所述装置包括:
获取单元,用于响应于贴合关系检测指令,获取游戏场景中目标对象对应的目标数据;其中,所述目标数据包括:所述目标对象的建模网格信息;
构建单元,用于基于所述建模网格信息,构建所述目标对象在任意一个视图角度的模型面片,并确定所述模型面片的法线;
查找单元,用于基于所述法线的方向进行碰撞体查找,获取第一查找结果;其中,所述第一查找结果表征:所述目标对象是否与相应的目标碰撞体发生碰撞;
获得单元,用于基于所述第一查找结果,获得所述目标对象和所述目标碰撞体之间的贴合关系;其中,所述贴合关系为:所述目标对象包覆所述目标碰撞体,所述目标碰撞体包覆所述目标对象,或者,针对所述目标对象未设置所述目标碰撞体。
13.一种电子设备,其特征在于,该电子设备包括:存储器和处理器,其中:
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序,实现权利要求1~11任一所述方法的步骤。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,当所述计算机程序被处理器执行时,实现如权利要求1~11任一所述方法的步骤。
15.一种计算机程序产品,其特征在于,包括计算机指令,该计算机指令被处理器执行时实现权利要求1~11任一所述方法的步骤。
CN202211456693.6A 2022-11-21 2022-11-21 一种贴合关系检测方法、装置、设备及存储介质 Pending CN116943216A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211456693.6A CN116943216A (zh) 2022-11-21 2022-11-21 一种贴合关系检测方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211456693.6A CN116943216A (zh) 2022-11-21 2022-11-21 一种贴合关系检测方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN116943216A true CN116943216A (zh) 2023-10-27

Family

ID=88457019

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211456693.6A Pending CN116943216A (zh) 2022-11-21 2022-11-21 一种贴合关系检测方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN116943216A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117710368A (zh) * 2024-02-05 2024-03-15 腾讯科技(深圳)有限公司 图像处理方法、装置、设备、介质及程序产品

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117710368A (zh) * 2024-02-05 2024-03-15 腾讯科技(深圳)有限公司 图像处理方法、装置、设备、介质及程序产品
CN117710368B (zh) * 2024-02-05 2024-04-30 腾讯科技(深圳)有限公司 图像处理方法、装置、设备、介质及程序产品

Similar Documents

Publication Publication Date Title
US8660362B2 (en) Combined depth filtering and super resolution
US9182812B2 (en) Virtual sensor systems and methods
CN109947886B (zh) 图像处理方法、装置、电子设备及存储介质
JP2022504704A (ja) ターゲット検出方法、モデル訓練方法、装置、機器及びコンピュータプログラム
CN110473293B (zh) 虚拟对象处理方法及装置、存储介质和电子设备
CN111295234A (zh) 用于经由玩游戏生成环境的详细数据集的方法和***
CN103105926A (zh) 多传感器姿势识别
KR20140117369A (ko) 사운드 및 기하학적 분석을 갖는 증강 현실
JP2014106681A5 (zh)
KR101181967B1 (ko) 고유식별 정보를 이용한 3차원 실시간 거리뷰시스템
CN111968247B (zh) 三维房屋空间的构建方法、装置、电子设备及存储介质
CN111311757B (zh) 一种场景合成方法、装置、存储介质及移动终端
CN104081307A (zh) 图像处理装置、图像处理方法和程序
US20200265627A1 (en) Method of controlling display of avatar and electronic device therefor
CN108564274B (zh) 一种客房的预订方法、装置及移动终端
US20190340317A1 (en) Computer vision through simulated hardware optimization
KR102566300B1 (ko) 실내 측위 방법, 장치, 장비 및 저장 매체
JP7043601B2 (ja) 環境モデルを生成するための方法および装置ならびに記憶媒体
KR102337209B1 (ko) 주변 상황 정보를 통지하기 위한 방법, 전자 장치 및 저장 매체
CN116943216A (zh) 一种贴合关系检测方法、装置、设备及存储介质
US10295403B2 (en) Display a virtual object within an augmented reality influenced by a real-world environmental parameter
CN111338933A (zh) 埋点验证方法、装置、设备及存储介质
WO2019196871A1 (zh) 建模方法及相关装置
CN112818733B (zh) 信息处理方法、装置、存储介质及终端
CN115713616B (zh) 一种房源空间模型生成方法、装置、终端设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication