实时虚拟场景中圆柱碰撞体与凸体碰撞探测的方法和系统的制作方法

文档序号:9751049阅读:383来源:国知局
实时虚拟场景中圆柱碰撞体与凸体碰撞探测的方法和系统的制作方法
【技术领域】
[0001] 本发明涉及计算机应用领域,特别是涉及一种实时虚拟场景中圆柱碰撞体与凸体 之间碰撞探测的方法和装置。
【背景技术】
[0002] 虚拟场景是指通过计算机模拟出来的场景,例如游戏场景、动漫场景等。以游戏场 景为例,当一个虚拟对象遇到一个障碍物,需要绕过该障碍物,即虚拟对象与障碍物之间的 碰撞,传统的处理方式是将虚拟对象和障碍物都简化处理为轴对齐包围盒的碰撞体,如图1 所示,虚拟对象简化成的碰撞体110要绕过墙角120,则按照图中所示的移动变化过程,需要 等碰撞体110在整个移出墙角后,才能继续沿着墙的下边沿前进。
[0003] 然而,这样的碰撞体110碰撞路过墙角时会让操作者操作不顺畅,需要控制碰撞体 移动整个身体才能越过墙角,移动效率低。

【发明内容】

[0004] 基于此,有必要针对传统的碰撞体之间碰撞操作不顺畅且移动效率低的问题,提 供一种实时虚拟场景中圆柱碰撞体与凸体之间碰撞探测的方法,能提高操作的流畅度,且 能提高移动效率。
[0005] 此外,还有必要提供一种实时虚拟场景中圆柱碰撞体与凸体之间碰撞探测的装 置,能提高操作的流畅度,且能提高移动效率。
[0006] -种实时虚拟场景中圆柱碰撞体与凸体之间碰撞探测的方法,包括以下步骤:
[0007] 将虚拟场景中虚拟对象所对应的圆柱碰撞体转化为与圆柱碰撞体同中心点的预 设多边形棱柱;
[0008] 将所述预设多边形棱柱变换到凸体的局部坐标系,得到预设多边形棱柱在凸体的 局部坐标系下的位置;
[0009] 根据所述预设多边形棱柱在凸体的局部坐标系下的位置获取预设多边形棱柱各 个面的法向、预设多边形的边方向和棱柱的棱的边方向;
[0010] 获取所述凸体的各个面的法向和各个边方向;
[0011] 将所述凸体的各个边方向与所述预设多边形的边方向和棱柱的棱的边方向分别 做向量积;
[0012] 将所述预设多边形棱柱各个面的法向、凸体的各个面的法向及所述向量积中一种 或多种作为测试轴;
[0013] 根据各测试轴及预设多边形棱柱在凸体的局部坐标系下的位置得到圆柱碰撞体 在测试轴上的投影长度及投影位置,并获取凸体在各测试轴上的投影;
[0014] 若所述圆柱碰撞体和凸体在各测试轴上投影均相交,则判定圆柱碰撞体与凸体之 间有碰撞。
[0015] -种实时虚拟场景中圆柱碰撞体与凸体之间碰撞探测的装置,包括:
[0016] 转化模块,用于将虚拟场景中虚拟对象所对应的圆柱碰撞体转化为与圆柱碰撞体 同中心点的预设多边形棱柱;
[0017] 变换模块,用于将所述预设多边形棱柱变换到凸体的局部坐标系,得到预设多边 形棱柱在凸体的局部坐标系下的位置;
[0018] 第一获取模块,用于根据所述预设多边形棱柱在凸体的局部坐标系下的位置获取 预设多边形棱柱各个面的法向、预设多边形的边方向和棱柱的棱的边方向;
[0019] 第二获取模块,用于获取所述凸体的各个面的法向和各个边方向;
[0020] 向量积获取模块,用于将所述凸体的各个边方向与所述预设多边形的边方向和棱 柱的棱的边方向分别做向量积;
[0021] 测试轴获取模块,用于将所述预设多边形棱柱各个面的法向、凸体的各个面的法 向及所述向量积一种或多种作为测试轴;
[0022] 投影模块,用于根据各测试轴及预设多边形棱柱在凸体的局部坐标系下的位置得 到圆柱碰撞体在测试轴上的投影长度及投影位置,并获取凸体在各测试轴上的投影;
[0023] 判定模块,用于若所述圆柱碰撞体和凸体在各测试轴上投影均相交,则判定圆柱 碰撞体与凸体之间有碰撞。
[0024] 上述实时虚拟场景中圆柱碰撞体与凸体之间碰撞探测的方法和装置,将虚拟场景 中的虚拟对象作为圆柱碰撞体与凸体进行碰撞,代替了原来的轴对齐包围盒与凸体进行碰 撞,缩短了移动距离,提高了移动效率,也提高了操作的流畅度,将圆柱碰撞体转化为预设 多边形棱柱,可得到圆柱碰撞体的面的法向和边方向,便于选取测试轴,通过测试轴的合理 选择,以及圆柱碰撞体和凸体在测试轴上的投影相交情况判断圆柱碰撞体和凸体之间的碰 撞情况,提高了判断的准确性。
【附图说明】
[0025] 图1为传统的实时虚拟场景中碰撞体之间碰撞的过程示意图;
[0026] 图2为一个实施例中实时虚拟场景中圆柱碰撞体与凸体之间碰撞探测方法及装置 的应用环境不意图;
[0027] 图3A为一个实施例中终端的内部结构示意图;
[0028]图3B为一个实施例中服务器的内部结构示意图;
[0029]图4为Component类包含的场景对象的示意图;
[0030] 图5为两凸体投影在同一轴上不相交的示意图;
[0031] 图6为圆柱碰撞体的示意图;
[0032] 图7为一个实施例中实时虚拟场景中圆柱碰撞体与凸体之间碰撞探测的方法的流 程图;
[0033]图8为正八棱柱俯视示意图;
[0034] 图9为一个实施例中将该预设多边形棱柱变换到凸体的局部坐标系,得到预设多 边形棱柱在凸体的局部坐标系下的位置步骤的具体流程图;
[0035] 图10为获取八多边形棱柱的顶点示意图;
[0036] 图11为八边形棱柱的法向获取示意图;
[0037]图12为采用圆柱碰撞体碰撞使用传统的算法效果和理论结果示意图;
[0038]图13为一个实施例中实时虚拟场景中圆柱碰撞体与凸体之间碰撞探测的装置的 结构框图。
【具体实施方式】
[0039]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对 本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并 不用于限定本发明。
[0040]图2为一个实施例中实时虚拟场景中圆柱碰撞体与凸体之间碰撞探测方法及装置 的应用环境示意图。如图2所示,该应用环境包括终端210和服务器220,终端210可为多个。 多个终端210与服务器220进行通信。实时虚拟场景中碰撞体之间碰撞探测的方法可运行于 终端210上,终端210从服务器220上获取虚拟场景数据,终端210获取虚拟场景中凸体和虚 拟对象所对应的圆柱碰撞体,对凸体和圆柱碰撞体进行碰撞探测。实时虚拟场景可为实时 游戏场景或实时动漫场景等,虚拟对象可为人物或物体。凸体可为人物或物体等。
[00411图3A为一个实施例中终端210的内部结构示意图。如图3A所示,该终端210包括通 过系统总线连接的处理器、存储介质、内存和网络接口、声音采集装置、显示屏、扬声器和输 入装置。其中,终端的存储介质存储有操作系统,还包括一种实时虚拟场景中圆柱碰撞体与 凸体之间碰撞探测装置,该实时虚拟场景中圆柱碰撞体与凸体之间碰撞探测装置用于实现 一种实时虚拟场景中圆柱碰撞体与凸体之间碰撞探测方法。该处理器用于提供计算和控制 能力,支撑整个终端的运行。终端中的内存为存储介质中的实时虚拟场景中圆柱碰撞体与 凸体之间碰撞探测装置的运行提供环境,网络接口用于与服务器进行网络通信,如发送数 据请求至服务器,接收服务器返回的相应数据等。终端的显示屏可以是液晶显示屏或者电 子墨水显示屏等,输入装置可以是显示屏上覆盖的触摸层,也可以是终端外壳上设置的按 键、轨迹球或触控板,也可以是外接的键盘、触控板或鼠标等。该终端可以是手机、台式计算 机、平板电脑或者个人数字助理等。本领域技术人员可以理解,图3A中示出的结构,仅仅是 与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的终端的限 定,具体的终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同 的部件布置。
[0042]图3B为一个实施例中服务器220的内部结构示意图。如图3B所示,该服务器包括通 过系统总线连接的处理器、存储介质、内存、网络接口、显示屏、输入装置。其中,该服务器的 存储介质存储有操作系统、数据库和实时虚拟场景中圆柱碰撞体与凸体之间碰撞探测装 置,数据库中存储有实时虚拟场景数据等,该实时虚拟场景中圆柱碰撞体与凸体之间碰撞 探测装置用于实现适用于服务器的一种实时虚拟场景中圆柱碰撞体与凸体之间碰撞探测 方法。该服务器的处理器用于提供计算和控制能力,支撑整个服务器的运行。该服务器的内 存为存储介质中的实时虚拟场景中圆柱碰撞体与凸体之间碰撞探测装置的运行提供环境。 该服务器的显示屏可以是液晶显示屏或者电子墨水显示屏等,输入装置可以是显示屏上覆 盖的触摸层,也可以是终端外壳上设置的按键、轨迹球或触控板,也可以是外接的键盘、触 控板或鼠标等。该服务器的网络接口用于据以与外部的终端通过网络连接通信,比如接收 终端发送的数据交互请求以及向终端返回数据等。服务器可以用独立的服务器或者是多个 服务器组成的服务器集群来实现。本领域技术人员可以理解,图3B中示出的结构,仅仅是与 本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的服务器的限 定,具体的服务器可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不 同的部件布置。
[0043] 在其他应用环境中,可只包括终端210或服务器220,即实时虚拟场景中碰撞体之 间的碰撞的方法可只需运行于终端或服务器上,例如单机的游戏场景或动漫场景中虚拟对 象的移动等。用户在终端上运行下载的单机游戏或测试人
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1