本申请提供一种碰撞检测方法及装置,其中所述碰撞检测方法包括:根据三维游戏场景的画面显示区域确定虚拟相机的焦点位置,以所述焦点位置为球心,预设长度阈值为半径建立所述虚拟相机的包络球体,在所述包络球体范围内,对所述画面显示区域对应的视野范围内的至少一个障碍物进行碰撞检测,并根据检测结果确定所述包络球体与至少一个目标障碍物的碰撞深度,根据所述碰撞深度确定所述虚拟相机的移动参数,并根据所述移动参数移动所述虚拟相机,以调整所述画面显示区域对应的视野范围,调整后的画面显示区域对应的视野范围内所述至少一个目标障碍物与所述包络球体的碰撞深度小于预设阈值。预设阈值。预设阈值。
【技术实现步骤摘要】
一种碰撞检测方法及装置
[0001]本申请涉及计算机
,特别涉及一种碰撞检测方法及装置、计算设备和计算机可读存储介质。
技术介绍
[0002]目前的三维场景中,在三维场景中的虚拟角色处于靠近三维场景中的墙壁或边界并且虚拟角色的视角处于朝向墙壁或边界的方向的情况下,就会产生虚拟角色的视锥与三维场景中的墙壁或边界发生碰撞的情况,导致产生系统漏洞,例如看到空白部分等三维场景的开发人员不希望出现的问题。
[0003]另外,目前提供的碰撞检测方法是利用镜头位置和镜头的观察点之间的射线进行碰撞检测;若检测到碰撞,则将镜头位置设置到碰撞位置前;在存在碰撞但射线未检测到时,则三维场景的画面显示区域可能会出现穿模的情况。
[0004]因此,在三维场景设计时如何能够避免出现类似的问题是本领域技术人员需要解决的技术问题。
技术实现思路
[0005]有鉴于此,本申请实施例提供了一种碰撞检测方法及装置、计算设备和计算机可读存储介质,以解决现有技术中存在的技术缺陷。
[0006]根据本申请实施例的第一方面,提供了一种碰撞检测方法,包括:
[0007]根据三维游戏场景的画面显示区域确定虚拟相机的焦点位置;
[0008]以所述焦点位置为球心,预设长度阈值为半径建立所述虚拟相机的包络球体;
[0009]在所述包络球体范围内,对所述画面显示区域对应的视野范围内的至少一个障碍物进行碰撞检测,并根据检测结果确定所述包络球体与至少一个目标障碍物的碰撞深度;
[0010]根据所述碰撞深度确定所述虚拟相机的移动参数,并根据所述移动参数移动所述虚拟相机,以调整所述画面显示区域对应的视野范围,调整后的画面显示区域对应的视野范围内所述至少一个目标障碍物与所述包络球体的碰撞深度小于预设阈值。
[0011]可选的,建立所述虚拟相机的包络球体之前,还包括:
[0012]确定所述画面显示区域对应的宽度值以及高度值,并根据所述宽度值以及所述高度值二者之间的大小关系确定所述预设长度阈值。
[0013]可选的,所述根据所述宽度值以及高度值二者之间的大小关系确定所述预设长度阈值,包括:
[0014]将所述宽度值以及所述高度值二者之间的大小关系进行比对,并将比对结果中的较大值的二分之一作为所述预设长度阈值。
[0015]可选的,在所述包络球体范围内,对所述画面显示区域对应的视野范围内的至少一个障碍物进行碰撞检测,包括:
[0016]在所述视野范围内的所述至少一个障碍物中设置检测点,并确定所述检测点与所
述包络球体的球心之间的检测距离;
[0017]若所述检测距离大于等于所述包络球体的半径,则所述包络球体与所述至少一个障碍物未发生碰撞;
[0018]若所述检测距离小于所述包络球体的半径,则所述包络球体与所述至少一个障碍物发生碰撞,并将与所述包络球体发生碰撞的障碍物确定为目标障碍物。
[0019]可选的,所述根据检测结果确定所述包络球体与至少一个目标障碍物的碰撞深度,包括:
[0020]确定所述目标障碍物中至少一个检测点与所述包络球体的球心之间的至少一个距离值;
[0021]将所述至少一个距离值中小于等于预设阈值的距离值确定为所述包络球体与所述目标障碍物的碰撞深度。
[0022]可选的,所述根据所述碰撞深度确定所述虚拟相机的移动参数,包括:
[0023]计算所述包络球体的半径与所述碰撞深度之间的差值,并将所述差值作为所述虚拟相机的移动距离;
[0024]将所述至少一个距离值中小于等于预设阈值的距离值对应的检测点作为目标检测点,并以所述包络球体的球心为端点,沿球心至所述目标检测点方向生成第一射线,并将所述第一射线的延伸方向的反方向作为所述虚拟相机的移动方向。
[0025]可选的,所述移动参数包括镜头转动参数;
[0026]相应的,所述根据所述碰撞深度确定所述虚拟相机的移动参数,包括:
[0027]根据所述碰撞深度确定所述虚拟相机的焦点移动位置;
[0028]以所述虚拟相机的当前位置为端点,沿所述端点至所述焦点移动位置方向生成第二射线,并以所述虚拟相机的当前位置为端点,沿所述端点至所述焦点位置方向生成第三射线;
[0029]将所述第二射线与所述第三射线之间形成夹角的角度作为所述虚拟相机的镜头转动角度;
[0030]将所述第三射线旋转至所述第二射线对应的旋转方向作为所述虚拟相机的镜头转动方向。
[0031]可选的,所述根据所述碰撞深度确定所述虚拟相机的焦点移动位置,包括:
[0032]将所述至少一个距离值中小于等于预设阈值的距离值对应的检测点作为目标检测点;
[0033]计算所述目标检测点与所述画面显示区域的水平边界的第一垂直距离;
[0034]将所述焦点位置沿垂直方向移动所述第一垂直距离后的位置作为所述焦点移动位置;或者,
[0035]计算所述目标检测点与所述画面显示区域的垂直边界的第二垂直距离;
[0036]将所述焦点位置沿水平方向移动所述第二垂直距离对应的位置作为所述焦点移动位置。
[0037]根据本申请实施例的第二方面,提供了一种碰撞检测装置,包括:
[0038]确定模块,被配置为根据三维游戏场景的画面显示区域确定虚拟相机的焦点位置;
[0039]建立模块,被配置为以所述焦点位置为球心,预设长度阈值为半径建立所述虚拟相机的包络球体;
[0040]检测模块,被配置为在所述包络球体范围内,对所述画面显示区域对应的视野范围内的至少一个障碍物进行碰撞检测,并根据检测结果确定所述包络球体与至少一个目标障碍物的碰撞深度;
[0041]调整模块,被配置为根据所述碰撞深度确定所述虚拟相机的移动参数,并根据所述移动参数移动所述虚拟相机,以调整所述画面显示区域对应的视野范围,调整后的画面显示区域对应的视野范围内所述至少一个目标障碍物与所述包络球体的碰撞深度小于预设阈值。
[0042]根据本申请实施例的第三方面,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述碰撞检测方法的步骤。
[0043]根据本申请实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现所述碰撞检测方法的步骤。
[0044]本申请实施例中,根据三维游戏场景的画面显示区域确定虚拟相机的焦点位置,以所述焦点位置为球心,预设长度阈值为半径建立所述虚拟相机的包络球体,在所述包络球体范围内,对所述画面显示区域对应的视野范围内的至少一个障碍物进行碰撞检测,并根据检测结果确定所述包络球体与至少一个目标障碍物的碰撞深度,根据所述碰撞深度确定所述虚拟相机的移动参数,并根据所述移动参数移动所述虚拟相机,以调整所述画面显示区域对应的视野范围,调整后的画面显示区域对应的视野范围内所述至少一个目标障碍物与所述包络球体的碰撞深度小于预设阈值;本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种碰撞检测方法,其特征在于,包括:根据三维游戏场景的画面显示区域确定虚拟相机的焦点位置;以所述焦点位置为球心,预设长度阈值为半径建立所述虚拟相机的包络球体;在所述包络球体范围内,对所述画面显示区域对应的视野范围内的至少一个障碍物进行碰撞检测,并根据检测结果确定所述包络球体与至少一个目标障碍物的碰撞深度;根据所述碰撞深度确定所述虚拟相机的移动参数,并根据所述移动参数移动所述虚拟相机,以调整所述画面显示区域对应的视野范围,调整后的画面显示区域对应的视野范围内所述至少一个目标障碍物与所述包络球体的碰撞深度小于预设阈值。2.根据权利要求1所述的碰撞检测方法,其特征在于,建立所述虚拟相机的包络球体之前,还包括:确定所述画面显示区域对应的宽度值以及高度值,并根据所述宽度值以及所述高度值二者之间的大小关系确定所述预设长度阈值。3.根据权利要求2所述的碰撞检测方法,其特征在于,所述根据所述宽度值以及高度值二者之间的大小关系确定所述预设长度阈值,包括:将所述宽度值以及所述高度值二者之间的大小关系进行比对,并将比对结果中的较大值的二分之一作为所述预设长度阈值。4.根据权利要求1所述的碰撞检测方法,其特征在于,所述在所述包络球体范围内,对所述画面显示区域对应的视野范围内的至少一个障碍物进行碰撞检测,包括:在所述视野范围内的所述至少一个障碍物中设置检测点,并确定所述检测点与所述包络球体的球心之间的检测距离;若所述检测距离大于等于所述包络球体的半径,则所述包络球体与所述至少一个障碍物未发生碰撞;若所述检测距离小于所述包络球体的半径,则所述包络球体与所述至少一个障碍物发生碰撞,并将与所述包络球体发生碰撞的障碍物确定为目标障碍物。5.根据权利要求4所述的碰撞检测方法,其特征在于,所述根据检测结果确定所述包络球体与至少一个目标障碍物的碰撞深度,包括:确定所述目标障碍物中至少一个检测点与所述包络球体的球心之间的至少一个距离值;将所述至少一个距离值中小于等于预设阈值的距离值确定为所述包络球体与所述目标障碍物的碰撞深度。6.根据权利要求5所述的碰撞检测方法,其特征在于,所述根据所述碰撞深度确定所述虚拟相机的移动参数,包括:计算所述包络球体的半径与所述碰撞深度之间的差值,并将所述差值作为所述虚拟相机的移动距离;将所述至少一个距离值中小于等于预设阈值的距离值对应的检测点作为目标检测点,并以所述包络球体的球心为端点,沿球心至...
【专利技术属性】
技术研发人员:包敬恒,
申请(专利权)人:珠海西山居移动游戏科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。