一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

碰撞检测方法、装置、计算机设备和计算机可读存储介质与流程

2021-11-15 16:12:00 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,特别是涉及一种碰撞检测方法、装置、计算机设备和计算机可读存储介质。


背景技术:

2.随着计算机技术的发展,虚拟场景在游戏,或者利用虚拟现实进行环境模拟、换装等场景的应用越来越广泛。传统方法中,为了确认虚拟场景中物体发生碰撞的结果与场景的设计需求相符合,场景开发者需要在完成场景开发之后,通过人体模型或者其他物体模型与虚拟场景中的物体进行碰撞,以观察虚拟场景中的物体是否产生碰撞。然而,目前的碰撞检测方法存在检测效率低的问题。


技术实现要素:

3.基于此,有必要针对上述技术问题,提供一种能够提高碰撞检测效率的碰撞检测方法、装置、计算机设备和计算机可读存储介质。
4.一种碰撞检测方法,所述方法包括:
5.获取虚拟场景中包含的第一物体及对应的碰撞类型;
6.当所述碰撞类型符合预设碰撞类型时,获取所述碰撞类型包含的碰撞通道;其中,所述碰撞通道用于保存第一物体与带碰撞的物体之间的碰撞信息;
7.确定所述第一物体在不同的碰撞通道所对应的碰撞响应;
8.当存在与所述碰撞类型对应的碰撞规则不匹配的碰撞响应时,则输出所述第一物体的碰撞异常指示。
9.一种碰撞检测装置,所述装置包括:
10.类型获取模块,用于获取虚拟场景中包含的第一物体及对应的碰撞类型;
11.通道获取模块,用于当所述碰撞类型符合预设碰撞类型时,获取所述碰撞类型包含的碰撞通道;其中,所述碰撞通道用于保存第一物体与带碰撞的物体之间的碰撞信息;
12.响应确定模块,用于确定所述第一物体在不同的碰撞通道所对应的碰撞响应;
13.异常输出模块,用于当存在与所述碰撞类型对应的碰撞规则不匹配的碰撞响应时,则输出所述第一物体的碰撞异常指示。
14.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如下步骤:
15.获取虚拟场景中包含的第一物体及对应的碰撞类型;
16.当所述碰撞类型符合预设碰撞类型时,获取所述碰撞类型包含的碰撞通道;其中,所述碰撞通道用于保存第一物体与带碰撞的物体之间的碰撞信息;
17.确定所述第一物体在不同的碰撞通道所对应的碰撞响应;
18.当存在与所述碰撞类型对应的碰撞规则不匹配的碰撞响应时,则输出所述第一物体的碰撞异常指示。
19.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现如下步骤:
20.获取虚拟场景中包含的第一物体及对应的碰撞类型;
21.当所述碰撞类型符合预设碰撞类型时,获取所述碰撞类型包含的碰撞通道;其中,所述碰撞通道用于保存第一物体与带碰撞的物体之间的碰撞信息;
22.确定所述第一物体在不同的碰撞通道所对应的碰撞响应;
23.当存在与所述碰撞类型对应的碰撞规则不匹配的碰撞响应时,则输出所述第一物体的碰撞异常指示。
24.上述碰撞检测方法、装置、计算机设备和计算机可读存储介质,可以根据物体的碰撞类型获取对应的碰撞通道,以确定物体在不同碰撞通道对应的碰撞响应,从而在碰撞响应不符合对应碰撞规则时则输出异常指示,可以提高物体碰撞检测的效率。
附图说明
25.图1为一个实施例中计算机设备的内部结构图;
26.图2为一个实施例中碰撞检测方法的流程示意图;
27.图3为一个实施例碰撞属性及对应的碰撞响应的关系示意图;
28.图4为一个实施例中碰撞检测方法的流程示意图;
29.图5为一个实施例中虚拟场景的示意图;
30.图6为一个实施例中存在异常的第一物体的位置信息的示意图;
31.图7为一个实施例中在虚拟场景中展示碰撞异常标识的示意图;
32.图8为一个实施例中通过场景编辑器选中物体的界面示意图;
33.图9为一个实施例中碰撞检测方法的流程示意图;
34.图10为一个实施例中碰撞检测装置的结构框图;
35.图11为另一个实施例中碰撞检测装置的结构框图。
具体实施方式
36.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
37.图1为一个实施例中碰撞检测方法的应用环境图。如图1所示,该碰撞检测方法应用于一种计算机设备。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器执行本技术提供的碰撞检测方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行本技术提供的碰撞检测方法。在一些实施例中,该计算机设备还可以包括显示屏、输入装置等。
38.该计算机设备可以是终端或服务器。终端可以是台式终端或移动终端,移动终端具体可以手机、平板电脑、笔记本电脑等中的至少一种。服务器可以是独立的服务器或者是多个服务器组成的服务器集群来实现。
39.在一个实施例中,如图2所示,提供了一种碰撞检测方法,以该方法应用于图1中的计算机设备为例进行说明,包括以下步骤:
40.步骤202,获取虚拟场景中包含的第一物体及对应的碰撞类型。
41.虚拟场景是指在计算机设备上显示或提供的虚拟场景。虚拟场景可以是对真实世界的仿真环境,也可以是半仿真半虚构的虚拟环境,还是纯虚构的虚拟环境。虚拟场景可以包括天空、海洋、沙漠、城市等环境元素,还可以包括人物、动物、墙壁、交通工具等物体。第一物体为虚拟场景中包含的位置确定的物体。第一物体可以相当于是静态物体、或者是在指定范围内移动的物体,可以在被其他物体碰撞时产生运动。例如,第一物体可以是虚拟场景中的墙壁、家电家具、门窗、路面障碍物等物体。
42.碰撞类型是根据物体的碰撞响应方式等信息所形成的分类。在虚拟场景对应的场景编辑器中,可以提供多种不同的碰撞类型。例如,碰撞类型可以包括无碰撞(no collision)、碰撞查询(query only)、启动碰撞(collision enabled)、启动物理(physics only)等中的一种或多种。场景开发者在建立虚拟场景时,可以通过场景编辑器设定物体及对应的碰撞类型,计算机设备可以获取第一物体所对应的碰撞类型。
43.计算机设备获取虚拟场景中包含的第一物体及对应的碰撞类型,具体地,计算机设备可以获取对虚拟场景的碰撞检测指示,根据该碰撞检测指示获取虚拟场景中包含的全部第一物体及对应的碰撞类型。可选地,计算机设备还可以获取针对虚拟场景中任意第一物体的碰撞检测指示,根据该碰撞检测指示获取所针对的第一物体及对应的碰撞类型。
44.步骤204,当碰撞类型符合预设碰撞类型时,获取碰撞类型包含的碰撞通道;其中,碰撞通道用于保存第一物体与带碰撞的物体之间的碰撞信息。
45.预设碰撞类型是计算机设备预先设定的,需根据碰撞响应进行异常判断的碰撞类型。具体地,预设碰撞类型可以包括碰撞查询(query only)、启动碰撞(collision enabled)、启动物理(physics only)等中的一种或多种。碰撞类型可以包含一个或多个碰撞通道。
46.碰撞通道用于保存第一物体与带碰撞的物体之间的碰撞信息。具体地,每一个碰撞通道对应的一个带碰撞的物体,碰撞通道可以分别对应由用户控制的虚拟对象、车辆、武器、摄像机等带碰撞的物体。碰撞通道可以包括第一物体对于该带碰撞的物体的碰撞关系。例如,对于虚拟对象的碰撞通道保存的碰撞关系为刚性时,即表示第一物体被该虚拟对象碰撞时表现为刚性;对应于摄像机的碰撞通道保存的碰撞关系为忽略时,则表示第一物体被该摄像机碰撞时表现为忽略等。
47.虚拟场景对应的场景数据中保存有不同的碰撞类型对应的碰撞通道,其中,该虚拟场景对应的场景数据是通过场景编辑器进行设定后保存的。计算机设备可以在确定碰撞类型符合预设碰撞类型时,则从该虚拟场景对应的数据中获取碰撞类型包含的碰撞通道。可选地,在一些实施例中,场景编辑器预设有不同第一物体所对应的碰撞通道,计算机设备在确定碰撞类型符合预设碰撞类型时,也可以获取第一物体所对应的碰撞通道。
48.在一些实施例中,计算机设备也可以将不需要根据碰撞响应进行异常判断的碰撞类型确定为预设碰撞类型,则可以在碰撞类型不符合预设碰撞类型时,则获取碰撞类型包含的碰撞通道。
49.步骤206,确定第一物体在不同的碰撞通道所对应的碰撞响应。
50.碰撞响应用于表征两个或两个物体碰撞的结果。具体地,碰撞响应可以包括忽略、重叠、刚性等。其中,忽略表示物体碰撞后被穿透且没有事件通知;重叠表示物体碰撞后被穿透且有事件通知;刚性表示物体碰撞后不可穿透且有事件通知。
51.计算机设备确定第一物体在不同的碰撞通道所对应的碰撞响应。具体地,计算机设备可以根据碰撞通道保存的碰撞信息确定第一物体在该碰撞通道所对应的碰撞响应。碰撞通道可以包括第一物体对于该带碰撞的物体的碰撞关系,基于第一物体对于该带碰撞的物体的碰撞关系,以及该带碰撞的物体对于其他物体的碰撞关系,即可以得到第一物体在该碰撞通道所对应的碰撞响应。
52.步骤208,当存在与碰撞类型对应的碰撞规则不匹配的碰撞响应时,则输出第一物体的碰撞异常指示。
53.计算机设备预存有不同的碰撞类型对应的碰撞规则,从而在确定不同碰撞通道对应的碰撞响应之后,可以判断不同的碰撞通道对应的碰撞响应是否与碰撞类型对应的碰撞规则相匹配,当确定存在与碰撞类型对应的碰撞规则不匹配的碰撞响应时,则确定第一物体碰撞异常,可以输出第一物体的碰撞异常指示。
54.计算机设备输出第一物体的碰撞异常指示,具体地,计算机设备在展示虚拟场景的界面生成第一物体对应的碰撞异常标识,在展示虚拟场景的同时展示该第一物体的碰撞异常标识。可选地,计算机设备还可以获取与碰撞规则不匹配的碰撞响应的数量,根据数量由高到低输出存在碰撞异常的第一物体,或者根据数量的高低采用不同的碰撞异常标识。
55.在一个实施例中,计算机设备可以生成虚拟场景中存在碰撞异常的物体列表;从而在物体列表中展示碰撞异常的第一物体的信息,当接收到对第一物体的信息的触发操作时,则可以在虚拟场景中对该第一物体进行标识。
56.在一个实施例中,计算机设备也可以通过日志的形式记录碰撞异常的第一物体,在完成对所有第一物体的碰撞检测之后,获取并处理该日志包含的信息,以生成csv(comma-separated values,逗号分割值)文件;通过该csv文件即可以查看存在碰撞异常的第一物体。
57.本技术提供的实施例中,通过获取虚拟场景中包含的第一物体及对应的碰撞类型,当碰撞类型符合预设碰撞类型时,则获取碰撞类型包含的碰撞通道,碰撞通道用于保存第一物体与带碰撞的物体之间的碰撞信息,从而确定第一物体在不同的碰撞通道所对应的碰撞响应,当存在与碰撞类型对应碰撞规则不匹配的碰撞规则时,则输出第一物体的碰撞异常指示。由于根据物体对应的碰撞类型获取对应的碰撞通道,以确定物体在碰撞通道对应的碰撞响应,在碰撞响应不符合对应碰撞规则时则输出异常指示,可以提高物体碰撞检测的效率。
58.在一个实施例中,提供碰撞检测方法中,预设碰撞类型不包括无碰撞类型,该方法还可以包括:当第一物体对应的碰撞类型不符合预设碰撞类型时,则输出第一物体的碰撞异常指示。
59.无碰撞类型是指物体被碰撞时不会产生碰撞事件。具体地,无碰撞类型对应的碰撞响应通常默认为忽略;即配置为无碰撞类型的物体无法进行碰撞通道的设置,或者即使配置了对应的碰撞通道,在被任何带碰撞的物体碰撞时,也不会有事件通知。
60.通常认为,虚拟场景不会设置无碰撞类型的物体;若第一物体的碰撞类型为无碰
撞类型,即不符合预设碰撞类型,则计算机设备可以确定第一物体存在碰撞异常,输出第一物体的碰撞异常指示,可以提高物体碰撞检测的准确性。
61.在一个实施例中,提供的碰撞检测方法还包括:当碰撞类型为碰撞查询或启动碰撞时,若碰撞响应均为刚性,则确定不存在与碰撞类型对应的碰撞规则不匹配的碰撞响应;若碰撞响应包括忽略和重叠中的至少一种,则确定存在与碰撞类型对应的碰撞规则不匹配的碰撞响应。
62.碰撞查询是指用于进行空间查询的碰撞类型。归属于碰撞查询的第一物体被带碰撞的物体碰撞时,可用于确定是否执行带碰撞的物体对应的触发事件。例如,带碰撞的物体为枪类器械时,通过与属于碰撞查询的第一物体进行碰撞,可以确定是否可以执行开抢事件。
63.启动碰撞是指可同时用于空间查询和物理模拟的碰撞类型。归属于启动碰撞的第一物体被带碰撞的物体碰撞时,可用于确定是否执行带碰撞的物体对应的触发事件、和触发碰撞引起的物理响应操作。其中,碰撞引起的物理响应操作可以针对第一物体和带碰撞的物体中的至少一种,物理响应操作可以是物体压缩、物体反弹、物体滚动等操作。例如,带碰撞的物体为车辆,第一物体为路面障碍物,则车辆与路面障碍物进行碰撞时,可以触发车辆反弹后退,并确定路面障碍物对应的路面是否行驶。
64.当碰撞类型为碰撞查询或启动碰撞时,若碰撞响应为刚性,则说明该碰撞通道对应物体与第一物体之间的碰撞有事件通知,能够执行对应的触发事件;计算机设备可以在第一物体在不同的碰撞通道所对应的碰撞响应均为刚性时,则确定不存在与碰撞类型对应的碰撞规则不匹配的碰撞响应。
65.若在第一物体在不同的碰撞通道所对应的碰撞响应中包括忽略和重叠中的至少一种,则说明存在穿透或者无法触发事件通知,不能执行碰撞对应的触发事件的情况,则计算机设备可以确定存在与碰撞类型对应的碰撞规则不匹配的碰撞响应。
66.在一个实施例中,提供的碰撞检测方法还包括:当碰撞类型为启动物理时,若碰撞响应均为刚性、且第一物体已启动物理碰撞特性,则确定不存在与碰撞类型对应的碰撞规则不匹配的碰撞响应;若碰撞响应包括刚性、且第一物体未启动物理碰撞特性,或者碰撞响应包括忽略和重叠中的至少一种时,则确定存在与碰撞类型对应的碰撞规则不匹配的碰撞响应。
67.启动物理是指用于进行物理模拟的碰撞类型。归属于启动物理的第一物体被带碰撞的物体碰撞时,可用于触发碰撞引起的物理响应操作。例如,当第一物体为球体时,若带碰撞的物体与该球体发生碰撞,则可以触发该球体进行滚动的操作。
68.物理碰撞特性是指被碰撞的物体表现为刚性的特性。启动物理对应的碰撞规则为物体已启动物理碰撞特征、且碰撞响应为刚性。在物体开启物理碰撞特性、且碰撞响应为刚性时,则可以确定物体碰撞正常;若物体未开启物理碰撞特性时,碰撞响应仍为刚性,则可以确定物体碰撞异常。
69.当碰撞类型为启动物理时,若碰撞响应均为刚性、且第一物体已启动物理碰撞特性,则计算机设备可以确定不存在与碰撞类型对应的碰撞规则不匹配的碰撞响应;若存在碰撞响应包括刚性、且第一物体未启动物理碰撞特性,或者碰撞响应包括忽略和重叠中的至少一种时,则可以确定存在与碰撞类型对应的碰撞规则不匹配的碰撞响应。
70.通过区分不同的碰撞类型,在碰撞类型为碰撞查询和启动碰撞时,则根据碰撞响应直接确定是否符合对应的碰撞规则,在碰撞类型为启动物理时,则结合物体的物理碰撞特性的启动与碰撞响应确定是否符合对应的碰撞规则,可以提高碰撞检测的准确性。
71.在一个实施例中,提供的碰撞检测方法中确定第一物体在不同的碰撞通道所对应的碰撞响应,包括:获取第一物体的第一碰撞属性,及碰撞通道对应的第二物体的第二碰撞属性;当第一碰撞属性和第二碰撞属性中的至少一个包含忽略属性时,则确定第一物体在碰撞通道的碰撞响应为忽略;当第一碰撞属性和第二碰撞属性中的至少一个包含重叠属性、且均不包含忽略属性时,则确定第一物体在碰撞通道的碰撞响应为重叠;当第一碰撞属性和第二碰撞属性均为刚性属性时,则确定第一物体在碰撞通道的碰撞响应为刚性。
72.第二物体即为碰撞通道对应的带碰撞的物体。第二物体可以是由用户控制的虚拟对象、车辆、武器、摄像机等带碰撞的物体。碰撞属性是场景开发者通过编辑器配置,用于表征物体被碰撞时的反应。碰撞属性可以包括忽略属性、重叠属性、刚性属性等。碰撞通道可以保存有第二物体及第二物体对应的第二碰撞属性;计算机设备可以获取第一物体的第一碰撞属性,并从碰撞通道获取第二物体及对应的第二碰撞属性,以确定第一物体在该碰撞通道的碰撞响应。
73.在一些实施例中,计算机设备还可以获取第一物体在第一通道对应的第一碰撞属性,及碰撞通道对应的第二物体的第二碰撞属性,根据第一碰撞属性和第二碰撞属性确定第一物体在该碰撞通道的碰撞响应。即第一物体在不同的碰撞通道对应的第一碰撞属性可以是不同的。
74.图3为一个实施例碰撞属性及对应的碰撞响应的关系示意图。如图3所示,横向表示第一物体及对应的第一碰撞属性;纵向表示第二物体及对应的第二碰撞属性;中间部分为由第一碰撞属性和第二碰撞属性确定的碰撞响应。具体地,当第一碰撞属性和第二碰撞属性中的至少一个包含忽略属性时,则碰撞响应为忽略;当第一碰撞属性和第二碰撞属性中至少一个包含重叠属性、且均不包含忽略属性时,则碰撞响应为重叠;当第一碰撞属性和第二碰撞属性均为刚性属性时,则可以确定碰撞响应为刚性。
75.以第一物体为墙面、第二物体分别为人体、武器、车辆为例进行说明,若墙面在人体、武器、车辆三个通道对应的第一碰撞属性分别为刚性、重叠、重叠,人体、武器、车辆对应的第二碰撞属性分别为刚性、刚性、忽略;则墙面在人体通道的碰撞响应为刚性,在武器通道的碰撞响应为重叠,在车辆通道的碰撞响应为忽略。进一步地,墙面的碰撞响应中包含重叠和忽略,则可以确定存在与墙面的碰撞类型的碰撞规则不匹配的碰撞响应。
76.通过获取第一物体的第一碰撞属性,及碰撞通道对应的第二物体的第二碰撞属性,根据第一碰撞属性和第二碰撞属性即确定第一物体在该碰撞通道的碰撞响应,以基于碰撞响应确定第一物体是否碰撞异常,可以提高碰撞检测的效率。
77.图4为一个实施例中碰撞检测方法的流程示意图。如图4所示,在一个实施例中,提供的碰撞检测方法包括:
78.步骤402,获取虚拟场景包含的物体及对应的物体属性。
79.物体属性可用于表征物体在虚拟场景中的作用特性。在该实施例中,虚拟场景可以在场景编辑时以及场景应用时进行展示。以游戏虚拟场景为例,游戏开发者在编辑场景时所展示的虚拟场景与游戏运行时所展示的虚拟场景中包含的物体可以存在差异。模拟属
性用于表示仅在场景编辑时展示,不在场景应用时展示的物体属性。此外,物体属性还可以包括可以同时在场景编辑和场景应用时展示的物体属性,不在场景编辑时展示、仅在场景应用时展示的物体属性等,在此不对模拟属性之外的其他物体属性进行限制。
80.步骤404,过滤掉虚拟场景中,物体属性为模拟属性的物体,得到虚拟场景中包含的第一物体。
81.计算机设备可以过滤掉虚拟场景中物体属性为模拟属性的物体,得到虚拟场景中包含的第一物体。具体地,当计算机设备对整个虚拟场景进行碰撞检测时,计算机设备获取虚拟场景中包含的所有物体,并将物体属性为模拟属性的物体过滤,即可以得到虚拟场景中处于模拟属性的物体之外的第一物体,以对虚拟场景中包含的第一物体进行碰撞检测。在一些实施例中,当计算机设备针对虚拟场景中的任一物体进行碰撞检测时,计算机设备可以确定该物体的物体属性是否为模拟属性,若否,则将该物体确定为第一物体,以进行碰撞检测。
82.在一些实施例中,计算机设备也可以获取物体白名单,从虚拟场景包含的物体中获取不属于物体白名单的第一物体。其中,物体白名单用于保存物体属性为模拟属性的物体。计算机设备可以预先根据物体属性建立物体白名单,即将物体属性为模拟属性的物体保存于物体白名单中,从而在对虚拟场景进行碰撞检测时,则从虚拟场景包含的物体中获取不属于物体白名单的第一物体,以进行碰撞检测。
83.步骤406,获取虚拟场景中包含的第一物体及对应的碰撞类型。
84.步骤408,当碰撞类型符合预设碰撞类型时,获取碰撞类型包含的碰撞通道;其中,碰撞通道用于保存第一物体与带碰撞的物体之间的碰撞信息。
85.步骤410,确定第一物体在不同的碰撞通道所对应的碰撞响应。
86.步骤412,当存在与碰撞类型对应的碰撞规则不匹配的碰撞响应时,则输出第一物体的碰撞异常指示。
87.通过将虚拟场景中模拟属性的物体过滤,得到虚拟场景中包含的第一物体以进行碰撞检测,可以避免对模型属性的物体进行碰撞检测、增加无效碰撞检测的时间,只针对非模拟属性的物体进行碰撞检测,可以提高碰撞检测的效率和准确性。
88.在一个实施例中,提供的碰撞检测方法中,输出第一物体的碰撞异常指示,包括:获取第一物体所对应的方向包围盒的坐标位置;在坐标位置展示第一物体及对应的碰撞异常标识。
89.包围盒是指采用体积稍大的几何体替换复杂的几何对象的算法。方向包围盒是包含对象且相对于坐标方向任意的最小长方体。第一物体对应的方向包围盒即为沿着第一物体的主成分方向、包围第一物体的最小长方体。
90.虚拟场景构建有坐标轴,通过坐标位置可以确定物体在虚拟场景中的位置。在本技术实施例中,计算机设备可以获取第一物体所对应的方向包围盒的坐标位置,在该坐标位置展示第一物体及对应的碰撞异常标识。可选地,在一些实施例中,计算机设备也可以采用其他包围盒算法获取第一物体对应的坐标位置,以展示该第一物体。
91.碰撞异常标识是用于表示物体异常的标识。具体地,碰撞异常标识可以包括物体高亮展示、浮点标识、文字标识、图案标识等中的一种或多种标识方式。当碰撞异常标识为浮点标识、文字标识、图案标识等中的一种或多种时,计算机设备可以根据第一物体对应的
坐标位置确定碰撞异常标识的位置,以展示该碰撞异常标识。
92.在一个实施例中,计算机获取的第一物体所对应的方向包围盒的坐标位置可以是第一物体所对应的方向包围盒的顶点的坐标位置,从而在根据顶点的坐标位置在第一物体所对应的方向包围盒的顶点展示碰撞异常标识。例如,计算机设备可以获取第一物体的方向包围盒的4个顶点的坐标位置,从而在4个顶点生成用于表示第一物体碰撞异常的射线。
93.通过获取第一物体所对应的方向包围盒的坐标位置,在坐标位置展示第一物体及对应的碰撞异常标识,可以直观地展示碰撞异常的物体,方便对物体的碰撞信息进行修改,可以提高碰撞异常处理的效率。
94.如图5所示,为一个实施例中未进行碰撞检测的虚拟场景的示意图。在该图中,虚拟场景可以包含有多个第一物体。图6为一个实施例中存在异常的第一物体的位置信息的示意图。图6为图5所展示的虚拟场景进行碰撞检测后,计算机设备输出的存在异常的第一物体的坐标位置,具体地,该坐标位置为第一物体所对应的方向包围盒的4个顶点的坐标位置。
95.图7为一个实施例中在虚拟场景中展示碰撞异常标识的示意图。图7为根据图6输出的异常的第一物体的坐标位置进行碰撞异常指示的示意图。如图7所示,计算机设备可以在第一物体的方向包围盒的4个顶点生成射线,作为第一物体的碰撞异常标识。
96.图8为一个实施例中通过场景编辑器选中物体的界面示意图。如图8所示,该场景编辑器的界面包括场景展示界面802和场景编辑界面804。计算机设备可以获取对场景展示界面802中所展示的物体的触发操作,根据触发操作在场景编辑界面804展示该物体的碰撞信息;计算机设备也可以获取对场景编辑界面804展示的物体标识的触发操作,根据该触发操作在场景展示界面802对该物体标识对应的物体进行标识等。其中,物体标识为物体在该虚拟场景中的唯一标识。
97.在一个实施例中,提供的碰撞检测方法中在坐标位置展示第一物体及对应的碰撞异常标识,还包括:获取异常碰撞通道,异常碰撞通道是与碰撞类型对应的碰撞规则不匹配的碰撞响应所对应的碰撞通道;在坐标位置展示第一物体,并根据异常碰撞通道对应的标识属性展示第一物体对应的碰撞异常标识。
98.碰撞异常通道是与碰撞类型对应的碰撞规则不匹配的碰撞响应所对应的碰撞通道。具体地,当第一物体在碰撞通道的碰撞响应为忽略或者重叠时,则确定该碰撞通道为异常碰撞通道;当第一物体在碰撞通道的碰撞响应为刚性,且第一物体的碰撞类型为启动物理并未启动物理碰撞特性时,则确定该碰撞通道为异常碰撞通道。
99.计算机设备根据异常碰撞通道对应的标识属性展示第一物体对应的碰撞异常标识。具体地,标识属性可以包括标识的大小、颜色、形状等。计算机设备可以根据预存不同的碰撞通道对应的标识属性,从而在确定异常碰撞通道时,根据对应的标识属性展示第一物体的碰撞异常标识。例如,计算机设备可以预存碰撞通道与标识颜色的对应关系为人体:黄色,交通工具:绿色,武器:蓝色,其他具备破坏性的物体:黑色,摄像机:红色等;若确定第一物体对应的碰撞异常通道为摄像机和武器,则可以根据红色和蓝色展示第一物体的碰撞异常标识。
100.通过获取与碰撞类型对应的碰撞规则不匹配的碰撞响应所对应的异常碰撞通道,并根据异常碰撞通道对应的标识属性,在第一物体对应的方向包围盒的坐标位置展示第一
物体对应的碰撞异常标识,可以直接展示存在碰撞异常的通道,提高碰撞异常标识的准确性。
101.图9为一个实施例中碰撞检测方法的流程示意图。如图9所示,在一个实施例中,提供的碰撞检测方法包括:
102.步骤902,获取虚拟场景包含的物体及对应的物体属性。
103.步骤904,过滤掉虚拟场景中,物体属性为模拟属性的物体,得到虚拟场景中包含的第一物体。
104.步骤906,确定碰撞类型是否符合预设碰撞类型。若是,则进入步骤908,若否,则进入步骤914。
105.步骤908,获取碰撞类型包含的碰撞通道;其中,碰撞通道用于保存第一物体与带碰撞的物体之间的碰撞信息。
106.步骤910,确定第一物体在不同的碰撞通道所对应的碰撞响应。
107.步骤912,判断是否存在与碰撞类型对应的碰撞规则不匹配的碰撞响应,若是,则进入步骤914;若否,则进入步骤916。
108.步骤914,输出第一物体的碰撞异常指示。
109.步骤916,确定第一物体碰撞正常。
110.本技术还提供一种应用上述碰撞检测方法进行碰撞检测的游戏场景,具体地,该游戏场景可以采用unreal engine(虚拟引擎)进行场景开发,游戏开发者通过unreal engine可以在游戏场景放置游戏对象actor。游戏场景在运行时,包含游戏场景预先设定的静态网格物体(static mesh actor)和由用户控制的虚拟对象、虚拟对象所携带的武器设备等物体;应用上述碰撞检测方法可以对检测游戏场景中包含的静态网格物体进行碰撞检测,以确定静态网格物体是否符合游戏开发者的碰撞需求,可以提高碰撞检测的准确性。
111.应该理解的是,虽然图2-9的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-9中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
112.在一个实施例中,如图10所示,提供了一种碰撞检测装置1000,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:类型获取模块1002、通道获取模块1004、响应确定模块1006和异常输出模块1008,其中:
113.类型获取模块1002,用于获取虚拟场景中包含的第一物体及对应的碰撞类型;
114.通道获取模块1004,用于当碰撞类型符合预设碰撞类型时,获取碰撞类型包含的碰撞通道,其中,碰撞通道用于保存第一物体与带碰撞的物体之间的碰撞信息;
115.响应确定模块1006,用于确定第一物体在不同的碰撞通道所对应的碰撞响应;
116.异常输出模块1008,用于当存在与碰撞类型对应的碰撞规则不匹配的碰撞响应时,则输出第一物体的碰撞异常指示。
117.本技术实施例提供的碰撞检测装置,可以根据物体对应的碰撞类型获取对应的碰撞通道,以确定物体在碰撞通道对应的碰撞响应,在碰撞响应不符合对应碰撞规则时则输
出异常指示,可以提高物体碰撞检测的效率。
118.如图11所示,在一个实施例中,提供的碰撞检测装置还包括规则匹配模块1010,规则匹配模块1010用于当碰撞类型为碰撞查询或启动碰撞时,若碰撞响应均为刚性,则确定不存在与碰撞类型对应的碰撞规则不匹配的碰撞响应;若碰撞响应包括忽略和重叠中的至少一种,则确定存在与碰撞类型对应的碰撞规则不匹配的碰撞响应。
119.在一个实施例中,规则匹配模块1010还可以用于当碰撞类型为启动物理时,若碰撞响应均为刚性、且第一物体已启动物理碰撞特性,则确定不存在与碰撞类型对应的碰撞规则不匹配的碰撞响应;若碰撞响应包括刚性、且第一物体未启动物理碰撞特性,或者碰撞响应包括忽略和重叠中的至少一种时,则确定存在与碰撞类型对应的碰撞规则不匹配的碰撞响应。
120.通过区分不同的碰撞类型,在碰撞类型为碰撞查询和启动碰撞时,则根据碰撞响应直接确定是否符合对应的碰撞规则,在碰撞类型为启动物理时,则结合物体的物理碰撞特性的启动与碰撞响应确定是否符合对应的碰撞规则,可以提高碰撞检测的准确性。
121.在一个实施例中,响应确定模块1006还可以用于获取第一物体的第一碰撞属性,及碰撞通道对应的第二物体的第二碰撞属性;当第一碰撞属性和第二碰撞属性中的至少一个包含忽略属性时,则确定第一物体在碰撞通道的碰撞响应为忽略;当第一碰撞属性和第二碰撞属性中的至少一个包含重叠属性、且均不包含忽略属性时,则确定第一物体在碰撞通道的碰撞响应为重叠;当第一碰撞属性和第二碰撞属性均为刚性属性,则确定第一物体在碰撞通道的碰撞响应为刚性。
122.通过获取第一物体的第一碰撞属性,及碰撞通道对应的第二物体的第二碰撞属性,根据第一碰撞属性和第二碰撞属性即确定第一物体在该碰撞通道的碰撞响应,以基于碰撞响应确定第一物体是否碰撞异常,可以提高碰撞检测的效率。
123.在一个实施例中,提供的碰撞检测装置还可以包括物体获取模块1012,物体获取模块1012用于获取虚拟场景包含的物体及对应的物体属性;过滤掉虚拟场景中,物体属性为模拟属性的物体,得到虚拟场景中包含的第一物体。
124.在一个实施例中,物体获取模块1012还可以用于获取物体白名单,从所述虚拟场景包含的物体中获取不属于所述物体白名单的第一物体,其中,所述物体白名单用于保存物体属性为模拟属性的物体。
125.通过将虚拟场景中模拟属性的物体过滤,得到虚拟场景中包含的第一物体以进行碰撞检测,可以避免对模型属性的物体进行碰撞检测、增加无效碰撞检测的时间,只针对非模拟属性的物体进行碰撞检测,可以提高碰撞检测的效率和准确性。
126.在一个实施例中,预设碰撞类型不包括无碰撞类型,异常输出模块1008还可以用于当第一物体对应的碰撞类型不符合预设碰撞类型时,则输出第一物体的碰撞异常指示。
127.第一物体的碰撞类型为无碰撞类型,即不符合预设碰撞类型,通过在第一物体的碰撞类型不符合预设碰撞类型时,输出第一物体的碰撞异常指示,可以提高物体碰撞检测的准确性。
128.在一个实施例中,异常输出模块1008还可以用于获取第一物体所对应的方向包围盒的坐标位置;在坐标位置展示第一物体及对应的碰撞异常标识。
129.通过获取第一物体所对应的方向包围盒的坐标位置,在坐标位置展示第一物体及
对应的碰撞异常标识,可以直观地展示碰撞异常的物体,方便对物体的碰撞信息进行修改,可以提高碰撞异常处理的效率。
130.在一个实施例中,异常输出模块1008还可以用于获取异常碰撞通道,异常碰撞通道是与碰撞类型对应的碰撞规则不匹配的碰撞响应所对应的碰撞通道;在坐标位置展示第一物体,并根据异常碰撞通道对应的标识属性展示第一物体对应的碰撞异常标识。
131.通过获取与碰撞类型对应的碰撞规则不匹配的碰撞响应所对应的异常碰撞通道,并根据异常碰撞通道对应的标识属性,在第一物体对应的方向包围盒的坐标位置展示第一物体对应的碰撞异常标识,可以直接展示存在碰撞异常的通道,提高碰撞异常标识的准确性。
132.关于碰撞检测装置的具体限定可以参见上文中对于碰撞检测方法的限定,在此不再赘述。上述碰撞检测装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
133.本领域技术人员可以理解,图1中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
134.在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
135.在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
136.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。
137.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
138.以上实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献