CN105488851A - 实时虚拟场景中碰撞体之间碰撞探测的方法和装置 - Google Patents

实时虚拟场景中碰撞体之间碰撞探测的方法和装置 Download PDF

Info

Publication number
CN105488851A
CN105488851A CN201510860807.7A CN201510860807A CN105488851A CN 105488851 A CN105488851 A CN 105488851A CN 201510860807 A CN201510860807 A CN 201510860807A CN 105488851 A CN105488851 A CN 105488851A
Authority
CN
China
Prior art keywords
collision body
compartition
bend
bounding box
plane
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.)
Granted
Application number
CN201510860807.7A
Other languages
English (en)
Other versions
CN105488851B (zh
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 CN201510860807.7A priority Critical patent/CN105488851B/zh
Publication of CN105488851A publication Critical patent/CN105488851A/zh
Priority to PCT/CN2016/082931 priority patent/WO2017092252A1/zh
Priority to JP2017558651A priority patent/JP6480607B2/ja
Priority to KR1020177035110A priority patent/KR102009105B1/ko
Application granted granted Critical
Publication of CN105488851B publication Critical patent/CN105488851B/zh
Priority to US15/797,202 priority patent/US10235764B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/12Edge-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/181Segmentation; Edge detection involving edge growing; involving edge linking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/12Bounding box
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/21Collision detection, intersection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/20Linear translation of whole images or parts thereof, e.g. panning

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Graphics (AREA)
  • Multimedia (AREA)
  • Geometry (AREA)
  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本发明涉及一种实时虚拟场景中碰撞体之间碰撞探测的方法和装置。所述方法包括以下步骤:获取虚拟场景中虚拟对象所对应的圆柱碰撞体到第一二叉空间分割碰撞体各个平面的最短距离;根据最短距离扩展第一二叉空间分割碰撞体的各个平面形成第二二叉空间分割碰撞体;将第一二叉空间分割碰撞体的轴对齐包围盒进行扩展生成扩展外边缘包围盒;将所述生成的扩展外边缘包围盒与所述第二二叉空间分割碰撞体取交集;将所述圆柱碰撞体与所述扩展外边缘包围盒与所述第二二叉空间分割碰撞体取交集得到的结果进行碰撞探测。上述实时虚拟场景中碰撞体之间碰撞探测的方法和装置,只需移出较短的距离即可越过拐角,提高了移动效率,且平滑越过,使得操作更流畅。

Description

实时虚拟场景中碰撞体之间碰撞探测的方法和装置
技术领域
本发明涉及计算机应用领域,特别是涉及一种实时虚拟场景中碰撞体之间碰撞探测的方法和装置。
背景技术
虚拟场景是指通过计算机模拟出来的场景,例如游戏场景、动漫场景等。以游戏场景为例,当一个虚拟对象遇到一个障碍物,需要绕过该障碍物,即虚拟对象与障碍物之间的碰撞,传统的处理方式是将虚拟对象和障碍物都简化处理为轴对齐包围盒的碰撞体,如图1所示,虚拟对象简化成的碰撞体110要绕过墙角120,则按照图中所示的移动变化过程,需要等碰撞体110在整个移出墙角后,才能继续沿着墙的下边沿前进。
然而,这样的碰撞体110碰撞路过墙角时会让操作者操作不顺畅,需要控制碰撞体移动整个身体才能越过墙角,移动效率低。
发明内容
基于此,有必要针对传统的碰撞体之间碰撞操作不顺畅且移动效率低的问题,提供一种实时虚拟场景中碰撞体之间碰撞探测的方法,能提高操作的流畅度,且能提高移动效率。
此外,还有必要提供一种实时虚拟场景中碰撞体之间碰撞探测的装置,能提高操作的流畅度,且能提高移动效率。
一种实时虚拟场景中碰撞体之间碰撞探测的方法,包括以下步骤:
获取虚拟场景中虚拟对象所对应的圆柱碰撞体到第一二叉空间分割碰撞体各个平面的最短距离;
根据所述最短距离扩展所述第一二叉空间分割碰撞体的各个平面形成第二二叉空间分割碰撞体;
将所述第一二叉空间分割碰撞体的轴对齐包围盒进行扩展生成扩展外边缘包围盒;
将所述生成的扩展外边缘包围盒与所述第二二叉空间分割碰撞体取交集;
将所述圆柱碰撞体与所述扩展外边缘包围盒与所述第二二叉空间分割碰撞体取交集得到的结果进行碰撞探测。
一种虚拟场景中碰撞体之间碰撞探测的装置,包括:
距离获取模块,用于获取虚拟场景中虚拟对象所对应的圆柱碰撞体到第一二叉空间分割碰撞体各个平面的最短距离;
扩展模块,用于根据所述最短距离扩展所述第一二叉空间分割碰撞体的各个平面形成第二二叉空间分割碰撞体;
生成模块,用于将所述第一二叉空间分割碰撞体的轴对齐包围盒进行扩展生成扩展外边缘包围盒;
取值模块,用于将所述生成的扩展外边缘包围盒与所述第二二叉空间分割碰撞体取交集;
碰撞探测模块,用于将所述圆柱碰撞体与所述扩展外边缘包围盒与所述第二二叉空间分割碰撞体取交集得到的结果进行碰撞探测。
上述实时虚拟场景中碰撞体之间碰撞探测的方法和装置,通过将第一二叉空间分割碰撞体的各个平面向外根据最短距离进行扩展得到第二二叉空间分割碰撞体,且以圆柱碰撞体的中心点为基准对第一二叉空间分割碰撞体扩展得到扩展外边缘包围盒,将第二二叉空间分割碰撞体和扩展外边缘包围盒取交集,通过圆柱碰撞体与交集进行碰撞,实现了圆柱碰撞体与第一二叉空间分割碰撞体的碰撞,碰撞探测是为了避免碰撞体碰撞,采用圆柱碰撞体与第一二叉空间分割碰撞体的轴对齐包围盒的碰撞探测,相比于传统的碰撞体以两个轴对齐包围盒进行碰撞探测,不需像轴对齐包围盒一样控制虚拟对象移出整个身子才能从第一二叉空间分割碰撞体的拐角越过,圆柱碰撞体在拐角处可以平滑的越过,即只需移出较短的距离即可越过拐角,缩短了移出的距离,在移动速度相同的情况下,提高了移动效率,且因是平滑的移动,使得操作更流畅。
附图说明
图1为传统的实时虚拟场景中碰撞体之间碰撞探测的过程示意图;
图2为一个实施例中实时虚拟场景中碰撞体之间碰撞探测的方法及装置的应用环境示意图;
图3A为一个实施例中终端的内部结构示意图;
图3B为一个实施例中服务器的内部结构示意图;
图4为一个实施例中实时虚拟场景中碰撞体之间碰撞探测的方法的流程图;
图5为三条线组成三角形的示意图;
图6为三维空间中三角锥划分形成的空间示意图;
图7为一个实施例中圆柱碰撞体的示意图;
图8为俯视情况下的圆柱碰撞体到BSP平面的最短距离示意图;
图9为圆柱碰撞体到BSP碰撞体的各个平面的距离与圆柱碰撞体到BSP碰撞体的实际距离的差距示意图;
图10为BSP碰撞体的各个平面向外扩展的示意图;
图11为圆柱碰撞体在第二BSP碰撞体上移动情况的示意图;
图12为第二BSP碰撞体与扩展外边缘包围盒取交集的示意图;
图13为采用圆柱碰撞体碰撞探测的理论结果示意图;
图14为一个实施例中扩展外边缘包围盒的四角添加斜面的示意图;
图15为一个实施例中实时虚拟场景中碰撞体之间碰撞探测的装置的结构框图;
图16为另一个实施例中实时虚拟场景中碰撞体之间碰撞探测的装置的结构框图;
图17为另一个实施例中实时虚拟场景中碰撞体之间碰撞探测的装置的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图2为一个实施例中实时虚拟场景中碰撞体之间碰撞探测的方法及装置的应用环境示意图。如图2所示,该应用环境包括终端210和服务器220,终端210可为多个。多个终端210与服务器220进行通信。实时虚拟场景中碰撞体之间碰撞探测的方法可运行于终端210上,终端210从服务器220上获取虚拟场景数据,终端210获取虚拟场景中第一二叉空间分割碰撞体和虚拟对象所对应的圆柱碰撞体,对第一二叉空间分割碰撞体和圆柱碰撞体进行碰撞探测。实时虚拟场景可为实时游戏场景或实时动漫场景等,虚拟对象可为人物或物体。第一二叉空间分割碰撞体可为人物或物体等。
图3A为一个实施例中终端210的内部结构示意图。如图3A所示,该终端210包括通过系统总线连接的处理器、存储介质、内存和网络接口、声音采集装置、显示屏、扬声器和输入装置。其中,终端的存储介质存储有操作系统,还包括一种实时虚拟场景中碰撞体之间碰撞的装置,该实时虚拟场景中碰撞体之间碰撞探测的装置用于实现一种实时虚拟场景中碰撞体之间碰撞探测的方法。该处理器用于提供计算和控制能力,支撑整个终端的运行。终端中的内存为存储介质中的实时虚拟场景中碰撞体之间碰撞探测的装置的运行提供环境,网络接口用于与服务器进行网络通信,如发送数据请求至服务器,接收服务器返回的相应数据等。终端的显示屏可以是液晶显示屏或者电子墨水显示屏等,输入装置可以是显示屏上覆盖的触摸层,也可以是终端外壳上设置的按键、轨迹球或触控板,也可以是外接的键盘、触控板或鼠标等。该终端可以是手机、台式计算机、平板电脑或者个人数字助理等。本领域技术人员可以理解,图3A中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的终端的限定,具体的终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
图3B为一个实施例中服务器220的内部结构示意图。如图3B所示,该服务器包括通过系统总线连接的处理器、存储介质、内存、网络接口、显示屏、输入装置。其中,该服务器的存储介质存储有操作系统、数据库和实时虚拟场景中碰撞体之间碰撞的装置,数据库中存储有虚拟场景数据等,该实时虚拟场景中碰撞体之间碰撞探测的装置用于实现适用于服务器的一种实时虚拟场景中碰撞体之间碰撞探测的方法。该服务器的处理器用于提供计算和控制能力,支撑整个服务器的运行。该服务器的内存为存储介质中的实时虚拟场景中碰撞体之间碰撞探测的装置的运行提供环境。该服务器的显示屏可以是液晶显示屏或者电子墨水显示屏等,输入装置可以是显示屏上覆盖的触摸层,也可以是终端外壳上设置的按键、轨迹球或触控板,也可以是外接的键盘、触控板或鼠标等。该服务器的网络接口用于据以与外部的终端通过网络连接通信,比如接收终端发送的数据交互请求以及向终端返回数据等。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。本领域技术人员可以理解,图3B中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的服务器的限定,具体的服务器可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在其他应用环境中,可只包括终端210或服务器220,即实时虚拟场景中碰撞体之间的碰撞探测的方法可只需运行于终端或服务器上,例如单机的实时游戏场景或实时动漫场景中虚拟对象的移动等。用户在终端上运行下载的单机游戏或测试人员在服务器上测试单机游戏等。
为了便于探测碰撞体之间碰撞,在虚拟场景中,表示玩家控制的虚拟角色和其他一些移动物体(如手雷、摄像机等)都是Actor类及其子类的对象,为此采用轴对齐进行碰撞探测。为了改变虚拟角色的碰撞体,修改Actor类,让虚拟角色使用圆柱碰撞体,非角色Actor使用轴对齐包围盒进行碰撞探测。在虚拟场景中,场景对象主要有两种,即包括BSP场景对象和Component场景对象。按照不同的场景对象分类存储,即将对象分为BSP或Component。在碰撞探测时,采用碰撞探测的入口函数Uworld::MoveActor()按照场景对象分类做粗裁剪,判断该分类哪些对象可能会和传入的Actor对象碰撞体发生碰撞,然后再做精细碰撞探测并获得返回结果。其中,粗裁剪是指做粗碰撞。精细碰撞是指按照下面所述实时虚拟场景中碰撞体之间碰撞探测的方法实现圆柱碰撞体与BSP碰撞体(即BSP场景对象)之间进行精细碰撞探测,碰撞探测结束后,采用Check系列函数将碰撞探测结果汇总给Uworld::MoveActor(),由其进一步汇总后用于后续计算,如状态改变、伤害计算等。在BSP场景对象,以圆柱取代轴对齐包围盒作为传入MoveActor()的碰撞体。实时虚拟场景可包括实时游戏场景、实时动漫场景等,不限于此。
图4为一个实施例中实时虚拟场景中碰撞体之间碰撞探测的方法的流程图。如图4所示,一种实时虚拟场景中碰撞体之间碰撞探测的方法,运行于图2的应用环境中,包括以下步骤:
步骤402,获取虚拟场景中虚拟对象所对应的圆柱碰撞体到第一二叉空间分割碰撞体各个平面的最短距离。
本实施例中,首先采用BSP(BinarySpacePartitioning,二叉空间分割)方法通过面将空间划分为“面内”和“面外”来组成形体。采用若干平面将空间切割成若干凸体,然后凸体之间以布尔运算组合成复杂的形状。采用CylinderPushOut()函数测量圆柱碰撞体到BSP碰撞体平面的最短距离。
实时虚拟场景是指实时游戏场景或实时动漫场景等。实时游戏场景表示正在运行的游戏中的场景。实时动漫场景表示正在运行的动漫中的场景。碰撞探测是指探测碰撞体之间是否发生碰撞。碰撞发生后产生碰撞响应,即一碰撞体与另一碰撞体碰撞后无法沿原来的移动方向继续移动调整一碰撞体的移动方向以绕过另一碰撞体或一碰撞体击中另一碰撞体产生击中响应等。本实施例中,碰撞探测主要是指一碰撞体避免与另一碰撞体碰撞,调整一碰撞体的移动方向以绕过另一碰撞体。
图5为三条线组成三角形的示意图。如图5所示,采用左侧的三角形划分空间得到右侧三条线划分出来的空间,即右侧三条线的“里面”组成了这个三角形的区域,将其扩张到三维空间,即可得出用面划分空间的情况。
图6为三维空间中三角锥划分形成的空间示意图。如图6所示,空间被三角锥划分形成了三角锥里面的区域和外面的区域。
第一二叉空间分割碰撞体是采用BSP划分出来的空间,第一二叉空间分割碰撞体的面为BSP划分出的空间的表面。
虚拟对象可为虚拟场景中可以动态运行的人物或物体等。将虚拟对象配置为圆柱碰撞体。碰撞体是用于计算物体之间是否碰撞的物体,即实际参与碰撞算法计算的物体。碰撞体的大小可根据虚拟场景中虚拟对象的大小设置,例如虚拟对象为球体,则虚拟对象对应的圆柱碰撞体的高可设置球体的直径,圆柱体的半径可设置略大于球体的半径大小。因采用竖直圆柱方式计算碰撞体到BSP平面的距离,比轴对齐包围盒(AABB,AxisAlignedBoundingBox)更短,效果更自然,所以,假设虚拟对象所对应的圆柱碰撞体一定是(世界坐标系下)竖直圆柱。轴对齐包围盒是指各个边界均与坐标轴平行的包围盒。
对于BSP场景对象来说,首先测量圆柱碰撞体到第一BSP碰撞体的某个平面的最短距离。最短距离是指当圆柱碰撞体刚好接触该平面(即平面支撑圆柱碰撞体)时,圆柱碰撞体的中心点到平面的距离。也就是该虚拟对象所对应的圆柱碰撞体到第一二叉空间分割碰撞体各个平面的最短距离为该虚拟对象所对应的圆柱碰撞体接触第一二叉空间分割碰撞体的平面时,该圆柱碰撞体的中心点到接触的该第一二叉空间分割碰撞体的平面的距离。需要说明的是,平面可以是任意平面,平面可能紧贴圆柱碰撞体的一条线或者只支撑一个点。
该获取虚拟场景中虚拟对象所对应的圆柱碰撞体到第一二叉空间分割碰撞体各个平面的最短距离的步骤包括:
若虚拟对象所对应的圆柱碰撞体的轴向与第一二叉空间分割碰撞体的平面平行,且第一二叉空间分割碰撞体的平面紧贴圆柱碰撞体的一条侧边线,则虚拟对象所对应的圆柱碰撞体到该第一二叉空间分割碰撞体的平面的最短距离为圆柱碰撞体的半径;
若第一二叉空间分割碰撞体的平面紧贴圆柱碰撞体的一个点,则获取并根据圆柱碰撞体的半径、半高及第一二叉空间分割碰撞体的平面的法向量的XYZ坐标分量,得到圆柱碰撞体到第一二叉空间分割碰撞体的平面的最短距离。
具体地,根据圆柱碰撞体的半径、半高及第一二叉空间分割碰撞体的平面的法向量的XYZ坐标分量,得到圆柱碰撞体到第一二叉空间分割碰撞体的平面的最短距离的计算公式为先求取法向量的XY坐标分量的平方根与圆柱碰撞体半径的乘积,再求取圆柱碰撞体的半高与法向量的Z坐标分量的绝对值的乘积,最后求取两个乘积的和得到,计算公式如下式(1):
S = R · ( x ) 2 + ( y ) 2 + H · | z | - - - ( 1 )
式(1)中,S为圆柱碰撞体到第一二叉空间分割碰撞体的平面的最短距离,R为圆柱碰撞体的半径,x、y、z为平面的法向量的三个XYZ坐标系下的三个坐标分量,H为圆柱碰撞体的半高,|z|为法向量的z分量的绝对值。
图7为一个实施例中圆柱碰撞体的示意图。如图7所示,采用Cylinder类表示竖直圆柱,在Cylinder类里,采用横线72表示Radius(半径),竖线74表示Height,取值为半高(即圆柱碰撞体高度值的一半)。
图8为俯视情况下的圆柱碰撞体到BSP平面的最短距离示意图。如图7所示,在俯视情况下,圆柱陪碰撞体为一个个的圆形,圆形的中点到BSP边(一个平面俯视情况下位一条边)的垂线段即为圆柱到该BSP平面的距离。在圆柱刚好接触到BSP平面的情况下,得到的距离即为最短距离。在三维实际情况中,如果是圆柱碰撞体的轴向刚好和BSP平面平行,平面就紧贴圆柱碰撞体的一条侧边线,这种情况下圆柱碰撞体的半径就是圆柱碰撞体到该BSP平面的距离。其它情况下平面紧贴圆柱碰撞体的一个点。假设圆柱碰撞体总是竖直向上的,其半径为R,半高为H,平面的法向量为N(其基向量与圆柱碰撞体坐标空间基向量相同),法向量的XYZ坐标轴的三个分量为[x,y,z],则圆柱碰撞体中心道BSP平面的最短距离采用公式(1)进行计算得出。
图9为圆柱碰撞体到BSP碰撞体的各个平面的距离与圆柱碰撞体到BSP碰撞体的实际距离的差距示意图。如图9所示,圆柱碰撞体到BSP横平面的最短距离采用92表示,圆柱碰撞体到BSP竖平面的最短距离采用94表示。对于圆柱,即使能够算出圆柱到每个平面的距离,也不能直接得出圆柱碰撞体到BSP碰撞体的平面之间的拐角处的实际距离,即图中的斜线96。
步骤404,根据该最短距离扩展该第一二叉空间分割碰撞体的各个平面形成第二二叉空间分割碰撞体。
本实施例中,将圆柱碰撞体退化为一个点(即中心点),将BSP碰撞体(第一二叉空间分割碰撞体)的各个平面向外扩展,扩展长度为圆柱碰撞体到该平面的最短距离,形成新的BSP碰撞体,即第二二叉空间分割碰撞体。
图10为BSP碰撞体的各个平面向外扩展的示意图。如图10所示,第一BSP碰撞体1002的各个平面分别向外扩展,各个平面向外扩展的距离为圆柱碰撞体到该平面的最短距离,扩展后形成第二BSP碰撞体1004图中,1006为圆柱碰撞体。
图11为圆柱碰撞体在第二BSP碰撞体上移动情况的示意图。如图11所示,圆柱碰撞体退化为点后,沿着扩展后的BSP碰撞体移动在锐角处圆柱碰撞体要走离开锐角较远距离才能拐弯。
步骤406,将该第一二叉空间分割碰撞体的轴对齐包围盒进行扩展生成扩展外边缘包围盒。
本实施例中,将该第一二叉空间分割碰撞体的轴对齐包围盒进行扩展生成扩展外边缘包围盒的步骤包括:将该第一二叉空间分割碰撞体的轴对齐包围盒以圆柱碰撞体的中心点为基准扫描整个第一二叉空间分割碰撞体的轴对齐包围盒,生成扩展外边缘包围盒。
步骤408,将该生成的扩展外边缘包围盒与该第二二叉空间分割碰撞体取交集。
图12为第二BSP碰撞体与扩展外边缘包围盒取交集的示意图。如图12所示,以BSP碰撞体本身的轴对齐包围盒1202为基准,扫描BSP碰撞体的包围盒后扩展出一层外边缘包围盒1204,然后将扩展外边缘包围盒与第二BSP1206取交集,即可实现让圆柱碰撞体在BSP碰撞体周围的移动更自然,且节省距离。
步骤410,将该圆柱碰撞体与该扩展外边缘包围盒与该第二二叉空间分割碰撞体取交集得到的结果进行碰撞探测。
具体地,通过圆柱碰撞体与交集进行碰撞探测来实现圆柱碰撞体与第一二叉空间分割碰撞体进行碰撞探测。
上述实时虚拟场景中碰撞体之间碰撞探测的方法,通过将第一二叉空间分割碰撞体的各个平面向外根据最短距离进行扩展得到第二二叉空间分割碰撞体,且以圆柱碰撞体的中心点为基准对第一二叉空间分割碰撞体扩展得到扩展外边缘包围盒,将第二二叉空间分割碰撞体和扩展外边缘包围盒取交集,通过圆柱碰撞体与交集进行碰撞,实现了圆柱碰撞体与第一二叉空间分割碰撞体的碰撞探测,碰撞探测是为了避免两个碰撞体发生碰撞,采用圆柱碰撞体与第一二叉空间分割碰撞体的轴对齐包围盒的碰撞探测,相比于传统的碰撞体以两个轴对齐包围盒进行碰撞探测,不需像轴对齐包围盒一样控制虚拟对象移出整个身子才能从第一二叉空间分割碰撞体的拐角越过,圆柱碰撞体在拐角处可以平滑的越过,即只需移出较短的距离即可越过拐角,缩短了移出的距离,在移动速度相同的情况下,提高了移动效率,且因是平滑的移动,使得操作更流畅。
图13为采用圆柱碰撞体碰撞探测使用传统的算法效果和本发明中的碰撞探测的理论结果示意图。如图13所示,左图为采用圆柱碰撞体按照传统的算法进行碰撞探测,其仍然需要将圆柱碰撞体移出整个身体然后才能沿着黑色碰撞体底边移动,右图为采用圆柱碰撞体采用上述实时虚拟场景中碰撞体之间碰撞探测的方法后所能达到的理论结果,圆柱碰撞体在移动过程中移动的距离较短,移动效率高,且操作流畅。在一个实施例中,上述实时虚拟场景中碰撞体之间碰撞探测的方法还包括:在将该第一二叉空间分割碰撞体的轴对齐包围盒进行扩展生成扩展外边缘包围盒的步骤之后,将该扩展外边缘包围盒的四个角分别添加斜面。
其中,该第一二叉空间分割碰撞体中与该扩展外边缘包围盒的斜面对应的平面交叉线到该斜面的距离为该圆柱碰撞体的半径。
通过将扩展外边缘包围盒的四角添加斜面,再得到扩展外边缘包围盒与第二BSP碰撞体的交集,交集也带有斜面,采用斜面模拟圆角,可进一步方便圆柱碰撞体移过拐角,进一步缩短了距离,提高了移动效率。
图14为一个实施例中扩展外边缘包围盒的四角添加斜面的示意图。如图14所示,在扩展外边缘包围盒的四个角添加了斜面作为倒角面,即对扩展外边缘包围盒的四个角上的直角做切割处理形成斜面,直角切割时,切割的部分投影到平面上形成的三角形内的锐角为45度。
在一个实施例中,上述实时虚拟场景中碰撞体之间碰撞探测的方法还包括:将该第一二叉空间分割碰撞体的轴对齐包围盒进行扩展生成扩展外边缘包围盒的步骤之后,还包括:将该扩展外边缘包围盒的四个角分别添加圆弧面。
其中,该第一二叉空间分割碰撞体中与该扩展外边缘包围盒的圆弧面对应的平面交叉线到该圆弧面的最短距离为该圆柱碰撞体的半径。
通过将扩展外边缘包围盒的四角添加圆弧面,再得到扩展外边缘包围盒与第二BSP碰撞体的交集,交集也带有圆弧面,采用圆弧面更贴合圆柱碰撞体,可进一步方便圆柱碰撞体移过拐角,进一步缩短了距离,提高了移动效率。
下面结合具体的应用场景说明实时虚拟场景中碰撞体之间碰撞探测的方法的实现过程,以实时游戏场景为例,圆柱碰撞体为虚拟角色,第一二叉空间分割碰撞体为墙体,结合图14,其中圆形为圆柱体的二维投影,三角形为第一二叉空间分割碰撞体的二维投影。碰撞探测的过程包括:
(1)获取实时游戏场景中虚拟角色所对应的圆柱碰撞体到第一二叉空间分割碰撞体各个平面的最短距离。
(2)根据该最短距离扩展该第一二叉空间分割碰撞体的各个平面形成第二二叉空间分割碰撞体。
(3)将该第一二叉空间分割碰撞体的轴对齐包围盒进行扩展生成扩展外边缘包围盒,将该扩展外边缘包围盒的四个角分别添加圆弧面。
(4)将该生成的扩展外边缘包围盒与该第二二叉空间分割碰撞体取交集。
(5)将该圆柱碰撞体与该扩展外边缘包围盒与该第二二叉空间分割碰撞体取交集得到的结果进行碰撞探测。
碰撞探测是指探测碰撞体之间是否发生碰撞,发生碰撞后调整圆柱碰撞体原来的移动方向,绕过第二二叉空间分割碰撞体。
圆柱碰撞体投影的圆形同扩展外边缘包围盒与第二二叉空间分割碰撞体所取的交集进行碰撞探测,即得到圆柱碰撞体的移动路线,如图14所示。
图15为一个实施例中实时虚拟场景中碰撞体之间碰撞探测的装置的结构框图。图15中的实时虚拟场景中碰撞体之间碰撞探测的装置,为实现图4中实时虚拟场景中碰撞体之间碰撞探测的方法所构建的功能架构,所包含的功能模块的划分不限于本实施例中所列举的,也可采用其他方式进行划分。如图15所示,一种实时虚拟场景中碰撞体之间碰撞探测的装置包括距离获取模块1510、扩展模块1520、生成模块1530、取值模块1540、碰撞探测模块1550。
距离获取模块1510用于获取虚拟场景中虚拟对象所对应的圆柱碰撞体到第一二叉空间分割碰撞体各个平面的最短距离。
本实施例中,首先采用BSP方法通过面将空间划分为“面内”和“面外”来组成形体。采用若干平面将空间切割成若干凸体,然后凸体之间以布尔运算组合成复杂的形状。
第一二叉空间分割碰撞体是采用BSP划分出来的空间,第一二叉空间分割碰撞体的面为BSP划分出的空间的表面。
虚拟对象可为虚拟场景中可以动态运行的人物或物体等。将虚拟对象配置为圆柱碰撞体。碰撞体是用于计算物体之间是否碰撞的物体,即实际参与碰撞算法计算的物体。
该虚拟对象所对应的圆柱碰撞体到第一二叉空间分割碰撞体各个平面的最短距离为该虚拟对象所对应的圆柱碰撞体接触第一二叉空间分割碰撞体的平面时,该圆柱碰撞体的中心点到接触的该第一二叉空间分割碰撞体的平面的距离。
本实施例中,距离获取模块1510还用于若虚拟对象所对应的圆柱碰撞体的轴向与第一二叉空间分割碰撞体的平面平行,且第一二叉空间分割碰撞体的平面紧贴圆柱碰撞体的一条侧边线,则虚拟对象所对应的圆柱碰撞体到该第一二叉空间分割碰撞体的平面的最短距离为圆柱碰撞体的半径;以及
若第一二叉空间分割碰撞体的平面紧贴圆柱碰撞体的一个点,则获取并根据圆柱碰撞体的半径、半高及第一二叉空间分割碰撞体的平面的法向量的XYZ坐标分量,得到圆柱碰撞体到第一二叉空间分割碰撞体的平面的最短距离。
具体地,根据圆柱碰撞体的半径、半高及第一二叉空间分割碰撞体的平面的法向量的XYZ坐标分量,得到圆柱碰撞体到第一二叉空间分割碰撞体的平面的最短距离的计算公式为先求取法向量的XY坐标分量的平方根与圆柱碰撞体半径的乘积,再求取圆柱碰撞体的半高与法向量的Z坐标分量的绝对值的乘积,最后求取两个乘积的和得到,计算公式如下式(1):
S = R · ( x ) 2 + ( y ) 2 + H · | z | - - - ( 1 )
式(1)中,S为圆柱碰撞体到第一二叉空间分割碰撞体的平面的最短距离,R为圆柱碰撞体的半径,x、y、z为平面的法向量的三个XYZ坐标系下的三个坐标分量,H为圆柱碰撞体的半高,|z|为法向量的z分量的绝对值。
扩展模块1520用于根据该最短距离扩展该第一二叉空间分割碰撞体的各个平面形成第二二叉空间分割碰撞体。
本实施例中,将圆柱碰撞体退化为一个点(即中心点),将BSP碰撞体(第一二叉空间分割碰撞体)的各个平面向外扩展,扩展长度为圆柱碰撞体到该平面的最短距离,形成新的BSP碰撞体,即第二二叉空间分割碰撞体。
生成模块1530用于将该第一二叉空间分割碰撞体的轴对齐包围盒进行扩展生成扩展外边缘包围盒。
具体的,生成模块1530还用于将该第一二叉空间分割碰撞体的轴对齐包围盒以圆柱碰撞体的中心点为基准扫描整个第一二叉空间分割碰撞体轴对齐包围盒,生成扩展外边缘包围盒。
取值模块1540用于将该生成的扩展外边缘包围盒与该第二二叉空间分割碰撞体取交集。
碰撞探测模块1550用于将该圆柱碰撞体与该扩展外边缘包围盒与该第二二叉空间分割碰撞体取交集得到的结果进行碰撞探测。
具体地,通过圆柱碰撞体与交集进行碰撞来实现圆柱碰撞体与第一二叉空间分割碰撞体进行碰撞。
上述实时虚拟场景中碰撞体之间碰撞探测的装置,通过将第一二叉空间分割碰撞体的各个平面向外根据最短距离进行扩展得到第二二叉空间分割碰撞体,且以圆柱碰撞体的中心点为基准对第一二叉空间分割碰撞体扩展得到扩展外边缘包围盒,将第二二叉空间分割碰撞体和扩展外边缘包围盒取交集,通过圆柱碰撞体与交集进行碰撞,实现了圆柱碰撞体与第一二叉空间分割碰撞体的碰撞探测,碰撞探测是为了避免碰撞体碰撞,采用圆柱碰撞体与第一二叉空间分割碰撞体的轴对齐包围盒的碰撞探测,相比于传统的碰撞体以两个轴对齐包围盒进行碰撞探测,不需像轴对齐包围盒一样控制虚拟对象移出整个身子才能从第一二叉空间分割碰撞体的拐角越过,圆柱碰撞体在拐角处可以平滑的越过,即只需移出较短的距离即可越过拐角,缩短了移出的距离,在移动速度相同的情况下,提高了移动效率,且因是平滑的移动,使得操作更流畅。
图16为一个实施例中实时虚拟场景中碰撞体之间碰撞探测的装置的结构框图。如图16所示,一种实时虚拟场景中碰撞体之间碰撞探测的装置,除了包括距离获取模块1510、扩展模块1520、生成模块1530、取值模块1540、碰撞探测模块1550,还包括切割模块1560。
切割模块1560用于将该第一二叉空间分割碰撞体的轴对齐包围盒进行扩展生成扩展外边缘包围盒之后,将该扩展外边缘包围盒的四个角分别添加斜面。
其中,该第一二叉空间分割碰撞体中与该扩展外边缘包围盒的斜面对应的平面交叉线到该斜面的距离为该圆柱碰撞体的半径。
通过将扩展外边缘包围盒的四角添加斜面,再得到扩展外边缘包围盒与第二BSP碰撞体的交集,交集也带有斜面,采用斜面模拟圆角,可进一步方便圆柱碰撞体移过拐角,进一步缩短了距离,提高了移动效率。
图17为另一个实施例中实时虚拟场景中碰撞体之间碰撞探测的装置的结构框图。如图17所示,一种实时虚拟场景中碰撞体之间碰撞探测的装置,除了包括距离获取模块1510、扩展模块1520、生成模块1530、取值模块1540、碰撞探测模块1550,还包括分割模块1570。
分割模块1570用于将该第一二叉空间分割碰撞体的轴对齐包围盒进行扩展生成扩展外边缘包围盒之后,将该扩展外边缘包围盒的四个角分别添加圆弧面。
其中,该第一二叉空间分割碰撞体中与该扩展外边缘包围盒的圆弧面对应的平面交叉线到该圆弧面的最短距离为该圆柱碰撞体的半径。
通过将扩展外边缘包围盒的四角添加圆弧面,再得到扩展外边缘包围盒与第二BSP碰撞体的交集,交集也带有圆弧面,采用圆弧面更贴合圆柱碰撞体,可进一步方便圆柱碰撞体移过拐角,进一步缩短了距离,提高了移动效率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)等。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (16)

1.一种实时虚拟场景中碰撞体之间碰撞探测的方法,包括以下步骤:
获取虚拟场景中虚拟对象所对应的圆柱碰撞体到第一二叉空间分割碰撞体各个平面的最短距离;
根据所述最短距离扩展所述第一二叉空间分割碰撞体的各个平面形成第二二叉空间分割碰撞体;
将所述第一二叉空间分割碰撞体的轴对齐包围盒进行扩展生成扩展外边缘包围盒;
将所述生成的扩展外边缘包围盒与所述第二二叉空间分割碰撞体取交集;
将所述圆柱碰撞体与所述扩展外边缘包围盒与所述第二二叉空间分割碰撞体取交集得到的结果进行碰撞探测。
2.根据权利要求1所述的方法,其特征在于,将所述第一二叉空间分割碰撞体的轴对齐包围盒进行扩展生成扩展外边缘包围盒的步骤之后,所述方法还包括:
将所述扩展外边缘包围盒的四个角分别添加斜面。
3.根据权利要求2所述的方法,其特征在于,所述第一二叉空间分割碰撞体中与所述扩展外边缘包围盒的斜面对应的平面交叉线到所述斜面的距离为所述圆柱碰撞体的半径。
4.根据权利要求1所述的方法,其特征在于,将所述第一二叉空间分割碰撞体的轴对齐包围盒进行扩展生成扩展外边缘包围盒的步骤之后,所述方法还包括:
将所述扩展外边缘包围盒的四个角分别添加圆弧面。
5.根据权利要求4所述的方法,其特征在于,所述第一二叉空间分割碰撞体中与所述扩展外边缘包围盒的圆弧面对应的平面交叉线到所述圆弧面的最短距离为所述圆柱碰撞体的半径。
6.根据权利要求1所述的方法,其特征在于,所述虚拟对象所对应的圆柱碰撞体到第一二叉空间分割碰撞体各个平面的最短距离为所述虚拟对象所对应的圆柱碰撞体接触第一二叉空间分割碰撞体的平面时,所述圆柱碰撞体的中心点到接触的所述第一二叉空间分割碰撞体的平面的距离。
7.根据权利要求1所述的方法,其特征在于,所述获取虚拟场景中虚拟对象所对应的圆柱碰撞体到第一二叉空间分割碰撞体各个平面的最短距离的步骤包括:
若虚拟对象所对应的圆柱碰撞体的轴向与第一二叉空间分割碰撞体的平面平行,且第一二叉空间分割碰撞体的平面紧贴圆柱碰撞体的一条侧边线,则虚拟对象所对应的圆柱碰撞体到所述第一二叉空间分割碰撞体的平面的最短距离为圆柱碰撞体的半径;
若第一二叉空间分割碰撞体的平面紧贴圆柱碰撞体的一个点,则获取并根据圆柱碰撞体的半径、半高及第一二叉空间分割碰撞体的平面的法向量的XYZ坐标分量,得到圆柱碰撞体到第一二叉空间分割碰撞体的平面的最短距离。
8.根据权利要求1所述的方法,其特征在于,将所述第一二叉空间分割碰撞体的轴对齐包围盒进行扩展生成扩展外边缘包围盒的步骤包括:
将所述第一二叉空间分割碰撞体的轴对齐包围盒以圆柱碰撞体的中心点为基准扫描整个所述第一二叉空间分割碰撞体的轴对齐包围盒,生成扩展外边缘包围盒。
9.一种实时虚拟场景中碰撞体之间碰撞探测的装置,其特征在于,包括:
距离获取模块,用于获取虚拟场景中虚拟对象所对应的圆柱碰撞体到第一二叉空间分割碰撞体各个平面的最短距离;
扩展模块,用于根据所述最短距离扩展所述第一二叉空间分割碰撞体的各个平面形成第二二叉空间分割碰撞体;
生成模块,用于将所述第一二叉空间分割碰撞体的轴对齐包围盒进行扩展生成扩展外边缘包围盒;
取值模块,用于将所述生成的扩展外边缘包围盒与所述第二二叉空间分割碰撞体取交集;
碰撞探测模块,用于将所述圆柱碰撞体与所述扩展外边缘包围盒与所述第二二叉空间分割碰撞体取交集得到的结果进行碰撞探测。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
切割模块,用于将所述第一二叉空间分割碰撞体的轴对齐包围盒进行扩展生成扩展外边缘包围盒之后,将所述扩展外边缘包围盒的四个角分别添加斜面。
11.根据权利要求10所述的装置,其特征在于,所述第一二叉空间分割碰撞体中与所述扩展外边缘包围盒的斜面对应的平面交叉线到所述斜面的距离为所述圆柱碰撞体的半径。
12.根据权利要求9所述的装置,其特征在于,所述装置还包括:
分割模块,用于将所述第一二叉空间分割碰撞体的轴对齐包围盒进行扩展生成扩展外边缘包围盒之后,将所述扩展外边缘包围盒的四个角分别添加圆弧面。
13.根据权利要求12所述的装置,其特征在于,所述第一二叉空间分割碰撞体中与所述扩展外边缘包围盒的圆弧面对应的平面交叉线到所述圆弧面的最短距离为所述圆柱碰撞体的半径。
14.根据权利要求9所述的装置,其特征在于,所述虚拟对象所对应的圆柱碰撞体到第一二叉空间分割碰撞体各个平面的最短距离为所述虚拟对象所对应的圆柱碰撞体接触第一二叉空间分割碰撞体的平面时,所述圆柱碰撞体的中心点到接触的所述第一二叉空间分割碰撞体的平面的距离。
15.根据权利要求9所述的装置,其特征在于,所述距离获取模块还用于若虚拟对象所对应的圆柱碰撞体的轴向与第一二叉空间分割碰撞体的平面平行,且第一二叉空间分割碰撞体的平面紧贴圆柱碰撞体的一条侧边线,则虚拟对象所对应的圆柱碰撞体到所述第一二叉空间分割碰撞体的平面的最短距离为圆柱碰撞体的半径;以及
若第一二叉空间分割碰撞体的平面紧贴圆柱碰撞体的一个点,则获取并根据圆柱碰撞体的半径、半高及第一二叉空间分割碰撞体的平面的法向量的XYZ坐标分量,得到圆柱碰撞体到第一二叉空间分割碰撞体的平面的最短距离。
16.根据权利要求9所述的装置,其特征在于,所述生成模块还用于将所述第一二叉空间分割碰撞体的轴对齐包围盒以圆柱碰撞体的中心点为基准扫描整个所述第一二叉空间分割碰撞体的轴对齐包围盒,生成扩展外边缘包围盒。
CN201510860807.7A 2015-11-30 2015-11-30 实时虚拟场景中碰撞体之间碰撞探测的方法和装置 Active CN105488851B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201510860807.7A CN105488851B (zh) 2015-11-30 2015-11-30 实时虚拟场景中碰撞体之间碰撞探测的方法和装置
PCT/CN2016/082931 WO2017092252A1 (zh) 2015-11-30 2016-05-20 实时虚拟场景中碰撞体之间碰撞探测的方法、终端和存储介质
JP2017558651A JP6480607B2 (ja) 2015-11-30 2016-05-20 リアルタイム仮想シーンにおけるコライダ間の衝突を検出するための方法、端末および記憶媒体
KR1020177035110A KR102009105B1 (ko) 2015-11-30 2016-05-20 실시간 가상 장면의 충돌체 사이의 충돌을 검출하기 위한 방법 및 단말과 저장 매체
US15/797,202 US10235764B2 (en) 2015-11-30 2017-10-30 Method, terminal, and storage medium for detecting collision between colliders in real-time virtual scene

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510860807.7A CN105488851B (zh) 2015-11-30 2015-11-30 实时虚拟场景中碰撞体之间碰撞探测的方法和装置

Publications (2)

Publication Number Publication Date
CN105488851A true CN105488851A (zh) 2016-04-13
CN105488851B CN105488851B (zh) 2017-07-07

Family

ID=55675815

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510860807.7A Active CN105488851B (zh) 2015-11-30 2015-11-30 实时虚拟场景中碰撞体之间碰撞探测的方法和装置

Country Status (5)

Country Link
US (1) US10235764B2 (zh)
JP (1) JP6480607B2 (zh)
KR (1) KR102009105B1 (zh)
CN (1) CN105488851B (zh)
WO (1) WO2017092252A1 (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106197928A (zh) * 2016-06-30 2016-12-07 哈尔滨理工大学 一种基于虚拟球的包围盒碰撞检测方法
CN106582024A (zh) * 2016-10-14 2017-04-26 网易(杭州)网络有限公司 对象发生撞击的处理方法及装置
WO2017092252A1 (zh) * 2015-11-30 2017-06-08 腾讯科技(深圳)有限公司 实时虚拟场景中碰撞体之间碰撞探测的方法、终端和存储介质
CN106951631A (zh) * 2017-03-18 2017-07-14 李远阳 一种圆形与带旋转角度的矩形包围盒碰撞检测方法
CN107233733A (zh) * 2017-05-11 2017-10-10 腾讯科技(深圳)有限公司 目标对象的处理方法和装置
CN108714303A (zh) * 2018-05-16 2018-10-30 深圳市腾讯网络信息技术有限公司 碰撞检测方法,设备及计算机可读存储介质
CN110024011A (zh) * 2016-11-17 2019-07-16 株式会社电装 碰撞判定装置以及碰撞判定方法
CN110180182A (zh) * 2019-04-28 2019-08-30 腾讯科技(深圳)有限公司 碰撞检测方法、装置、存储介质及电子装置
CN110321624A (zh) * 2019-06-28 2019-10-11 江苏艾佳家居用品有限公司 一种三维空间下3d对象碰撞检测方法及检测系统
CN111068324A (zh) * 2019-11-26 2020-04-28 腾讯科技(深圳)有限公司 虚拟对象控制方法、装置、设备及存储介质
CN112619152A (zh) * 2021-01-05 2021-04-09 网易(杭州)网络有限公司 游戏包围盒的处理方法、装置及电子设备
CN115576424A (zh) * 2022-10-24 2023-01-06 广东外语外贸大学 一种增强vr教学交互操作实时性的方法
CN115908542A (zh) * 2022-10-31 2023-04-04 中交第四航务工程勘察设计院有限公司 基于bim的多面体间距离快速计算方法
CN116036604A (zh) * 2023-01-28 2023-05-02 腾讯科技(深圳)有限公司 数据处理方法、装置、计算机及可读存储介质

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11176288B2 (en) 2017-08-25 2021-11-16 Microsoft Technology Licensing, Llc Separation plane compression
CN110827411B (zh) * 2018-08-09 2023-07-18 北京微播视界科技有限公司 自适应环境的增强现实模型显示方法、装置、设备及存储介质
KR102497906B1 (ko) 2018-12-19 2023-02-10 한국전력공사 충돌체 구현 장치 및 방법
CN110232741B (zh) * 2019-06-17 2022-11-25 腾讯科技(深圳)有限公司 多层包围盒确定方法、碰撞检测及运动控制方法与设备
CN110505493B (zh) * 2019-09-04 2022-07-15 广州方硅信息技术有限公司 基于游戏的碰撞检测方法、游戏交互方法及直播系统
CN110675500A (zh) * 2019-09-07 2020-01-10 创新奇智(重庆)科技有限公司 一种基于光学模拟的工业视觉成像系统设计工具
CN111346379B (zh) * 2020-03-12 2023-05-12 竞技世界(北京)网络技术有限公司 一种实现碰撞处理的方法及装置
CN111652908A (zh) * 2020-04-17 2020-09-11 国网山西省电力公司晋中供电公司 一种虚拟现实场景的操作碰撞检测方法
CN111514587B (zh) * 2020-04-27 2021-05-11 网易(杭州)网络有限公司 信息处理方法、装置、设备及存储介质
CN111569423B (zh) * 2020-05-14 2023-06-13 北京代码乾坤科技有限公司 碰撞形态的修正方法和装置
CN113176063A (zh) * 2021-04-15 2021-07-27 中国工程物理研究院总体工程研究所 一种用于水平碰撞试验的速度存储测试装置
CN113551862B (zh) * 2021-06-30 2023-07-21 郑州捷安高科股份有限公司 虚拟列车碰撞检测方法、装置、设备及存储介质
CN114545877B (zh) * 2022-02-08 2024-04-05 燕山大学 一种面向散货的多工程机械数字孪生在线监控系统及方法
CN115035261B (zh) * 2022-06-06 2023-03-21 北京新唐思创教育科技有限公司 碰撞器的生成方法、装置、设备及介质
WO2023238637A1 (ja) * 2022-06-10 2023-12-14 ソニーグループ株式会社 情報処理装置および情報処理方法、並びにプログラム
JP7519489B1 (ja) 2023-03-10 2024-07-19 カバー株式会社 プログラム、方法、およびシステム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6747651B1 (en) * 1998-07-18 2004-06-08 National University Of Singapore System and method for creating bounding volume hierarchies utilizing model simplification
CN101593366A (zh) * 2009-06-24 2009-12-02 北京航空航天大学 一种基于平衡二叉树的大规模虚拟场景碰撞检测方法
CN102368280A (zh) * 2011-10-21 2012-03-07 北京航空航天大学 一种面向虚拟装配的基于aabb-obb混合包围盒的碰撞检测方法
CN102509317A (zh) * 2011-09-27 2012-06-20 北京像素软件科技股份有限公司 一种实时碰撞检测系统的实现方法
CN102609992A (zh) * 2012-02-12 2012-07-25 北京航空航天大学 基于三角网格变形体的自碰撞检测方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04236676A (ja) * 1991-01-21 1992-08-25 Hitachi Ltd 多関節構造体の干渉チェック方法
DE10106023A1 (de) * 2001-02-09 2002-08-29 Fraunhofer Ges Forschung Verfahren und Vorrichtung zur Kollisionserkennung von Objekten
JP2003346186A (ja) * 2002-03-19 2003-12-05 Sony Corp 画像処理装置および方法、並びにプログラム
JP4235522B2 (ja) * 2003-09-25 2009-03-11 キヤノン株式会社 画像処理装置、画像処理方法、およびプログラム
FR2873472B1 (fr) * 2004-07-22 2007-02-09 Commissariat Energie Atomique Procede et systeme d'identification de zones de proximite entre plusieurs objets geometriques simules numeriquement
FR2927184B1 (fr) * 2008-02-04 2010-04-02 Univ Joseph Fourier Procede et dispositif de simulation de contact par images a plan de profondeur.
KR101309988B1 (ko) * 2011-12-22 2013-09-17 이화여자대학교 산학협력단 다각형 모델의 침투 깊이 연산 방법
CN102663825A (zh) * 2012-02-29 2012-09-12 中山大学 一种三维碰撞检测方法
KR102059559B1 (ko) * 2012-07-10 2019-12-26 삼성전자주식회사 재구성 가능한 프로세서를 이용하여 가상의 장면에서 오브젝트의 충돌 검출을 위한 방법 및 장치
CN103729877A (zh) * 2013-12-18 2014-04-16 珠海金山网络游戏科技有限公司 一种三维模型的有向包围盒构造的方法和系统
US10635761B2 (en) * 2015-04-29 2020-04-28 Energid Technologies Corporation System and method for evaluation of object autonomy
CN105488851B (zh) * 2015-11-30 2017-07-07 腾讯科技(深圳)有限公司 实时虚拟场景中碰撞体之间碰撞探测的方法和装置
US10445442B2 (en) * 2016-09-01 2019-10-15 Energid Technologies Corporation System and method for game theory-based design of robotic systems

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6747651B1 (en) * 1998-07-18 2004-06-08 National University Of Singapore System and method for creating bounding volume hierarchies utilizing model simplification
CN101593366A (zh) * 2009-06-24 2009-12-02 北京航空航天大学 一种基于平衡二叉树的大规模虚拟场景碰撞检测方法
CN102509317A (zh) * 2011-09-27 2012-06-20 北京像素软件科技股份有限公司 一种实时碰撞检测系统的实现方法
CN102368280A (zh) * 2011-10-21 2012-03-07 北京航空航天大学 一种面向虚拟装配的基于aabb-obb混合包围盒的碰撞检测方法
CN102609992A (zh) * 2012-02-12 2012-07-25 北京航空航天大学 基于三角网格变形体的自碰撞检测方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
潘海鸿等: "《基于分离距离的碰撞检测算法综述》", 《系统仿真学报》 *
靳同红等: "《碰撞检测在大型虚拟场景中的应用》", 《工程图学学报》 *

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017092252A1 (zh) * 2015-11-30 2017-06-08 腾讯科技(深圳)有限公司 实时虚拟场景中碰撞体之间碰撞探测的方法、终端和存储介质
US10235764B2 (en) 2015-11-30 2019-03-19 Tencent Technology (Shenzhen) Company Limited Method, terminal, and storage medium for detecting collision between colliders in real-time virtual scene
CN106197928A (zh) * 2016-06-30 2016-12-07 哈尔滨理工大学 一种基于虚拟球的包围盒碰撞检测方法
CN106582024A (zh) * 2016-10-14 2017-04-26 网易(杭州)网络有限公司 对象发生撞击的处理方法及装置
CN106582024B (zh) * 2016-10-14 2020-05-29 网易(杭州)网络有限公司 对象发生撞击的处理方法及装置
CN110024011A (zh) * 2016-11-17 2019-07-16 株式会社电装 碰撞判定装置以及碰撞判定方法
CN106951631A (zh) * 2017-03-18 2017-07-14 李远阳 一种圆形与带旋转角度的矩形包围盒碰撞检测方法
CN107233733A (zh) * 2017-05-11 2017-10-10 腾讯科技(深圳)有限公司 目标对象的处理方法和装置
CN108714303A (zh) * 2018-05-16 2018-10-30 深圳市腾讯网络信息技术有限公司 碰撞检测方法,设备及计算机可读存储介质
CN110180182A (zh) * 2019-04-28 2019-08-30 腾讯科技(深圳)有限公司 碰撞检测方法、装置、存储介质及电子装置
CN110321624B (zh) * 2019-06-28 2022-07-08 江苏艾佳家居用品有限公司 一种三维空间下3d对象碰撞检测方法及检测系统
CN110321624A (zh) * 2019-06-28 2019-10-11 江苏艾佳家居用品有限公司 一种三维空间下3d对象碰撞检测方法及检测系统
CN111068324A (zh) * 2019-11-26 2020-04-28 腾讯科技(深圳)有限公司 虚拟对象控制方法、装置、设备及存储介质
CN111068324B (zh) * 2019-11-26 2022-05-17 腾讯科技(深圳)有限公司 虚拟对象控制方法、装置、设备及存储介质
CN112619152A (zh) * 2021-01-05 2021-04-09 网易(杭州)网络有限公司 游戏包围盒的处理方法、装置及电子设备
CN115576424A (zh) * 2022-10-24 2023-01-06 广东外语外贸大学 一种增强vr教学交互操作实时性的方法
CN115576424B (zh) * 2022-10-24 2023-09-01 广东外语外贸大学 一种增强vr教学交互操作实时性的方法
CN115908542A (zh) * 2022-10-31 2023-04-04 中交第四航务工程勘察设计院有限公司 基于bim的多面体间距离快速计算方法
CN115908542B (zh) * 2022-10-31 2023-09-19 中交第四航务工程勘察设计院有限公司 基于bim的多面体间距离快速计算方法
CN116036604A (zh) * 2023-01-28 2023-05-02 腾讯科技(深圳)有限公司 数据处理方法、装置、计算机及可读存储介质
CN116036604B (zh) * 2023-01-28 2023-05-30 腾讯科技(深圳)有限公司 数据处理方法、装置、计算机及可读存储介质

Also Published As

Publication number Publication date
WO2017092252A1 (zh) 2017-06-08
JP2018524665A (ja) 2018-08-30
CN105488851B (zh) 2017-07-07
KR20180004766A (ko) 2018-01-12
JP6480607B2 (ja) 2019-03-13
KR102009105B1 (ko) 2019-08-08
US20180053311A1 (en) 2018-02-22
US10235764B2 (en) 2019-03-19

Similar Documents

Publication Publication Date Title
CN105488851A (zh) 实时虚拟场景中碰撞体之间碰撞探测的方法和装置
US11301954B2 (en) Method for detecting collision between cylindrical collider and convex body in real-time virtual scenario, terminal, and storage medium
CN110163976B (zh) 一种虚拟场景转换的方法、装置、终端设备及存储介质
CN109241465B (zh) 界面显示方法、装置、终端及存储介质
US9937422B2 (en) Voxel-based, real-time acoustic adjustment
CN105719343A (zh) 一种构建虚拟街景地图的方法
CN103157281B (zh) 一种二维游戏场景显示的方法和设备
CN108714303A (zh) 碰撞检测方法,设备及计算机可读存储介质
CN101770324A (zh) 一种实现三维图形界面互动式操作的方法
US20230249076A1 (en) Collision data processing method and apparatus, storage medium, program product, and electronic device
US20230015214A1 (en) Planar contour recognition method and apparatus, computer device, and storage medium
US11263814B2 (en) Method, apparatus, and storage medium for rendering virtual channel in multi-world virtual scene
US11348320B2 (en) Object identification utilizing paired electronic devices
CN115131478A (zh) 图像处理方法、装置、电子设备及存储介质
CN109920057A (zh) 一种视点变换方法及装置、计算设备及存储介质
CN112365567B (zh) 场景切换方法、装置及设备
CN103413348B (zh) 虚拟现实漫游过程碰撞检测优化设计方法及系统
CN110827411B (zh) 自适应环境的增强现实模型显示方法、装置、设备及存储介质
JP2009146368A (ja) 可視衝突検出回路
US20190130577A1 (en) Image processing apparatus, image processing method, and program
CN111123200B (zh) 一种基于无源物体的模型构建方法、装置、系统及介质
Tsai et al. An application of using bluetooth indoor positioning, image recognition and augmented reality
CN113821855B (zh) 一种基于bim的龙门吊施工模拟方法、装置及介质
CN102855651B (zh) 一种三维模型中模拟人物行走所见的方法
CN116196627A (zh) 攻击行为的命中检测方法、装置、电子设备及计算机介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant