CN102663808A - 一种基于数字家庭娱乐中三维模型的刚体模型建立方法 - Google Patents
一种基于数字家庭娱乐中三维模型的刚体模型建立方法 Download PDFInfo
- Publication number
- CN102663808A CN102663808A CN2012100493743A CN201210049374A CN102663808A CN 102663808 A CN102663808 A CN 102663808A CN 2012100493743 A CN2012100493743 A CN 2012100493743A CN 201210049374 A CN201210049374 A CN 201210049374A CN 102663808 A CN102663808 A CN 102663808A
- Authority
- CN
- China
- Prior art keywords
- model
- capsule
- rigid body
- rigid
- rigid model
- 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
Links
Images
Abstract
本发明实施例公开了一种数字家庭娱乐中三维模型的刚体模型建立方法,所述方法包括:在三维笛卡尔坐标系中建立三维游戏引擎中的刚体模型;基于质心坐标和质量值简化刚体模型;基于刚体模型创造碰撞检测包围盒;基于物理模拟系统对建立的刚体模型进行相交测试,判断图元间是否发生碰撞;基于三维游戏系统进行刚体模型的碰撞检测;基于三维游戏系统获得刚体模型碰撞响应结果。本发明实施例以胶囊体为三维游戏引擎中刚体的几何模型,该模型便于碰撞检测算法的实现,易于满足低计算量的要求。同时根据需要选取适当的物理量来建立简化的物理模型。结合刚体的几何模型和物理模型,建立三维游戏引擎中的刚体模型。
Description
技术领域
本发明涉及数字家庭技术领域,尤其涉及一种基于数字家庭娱乐中三维模型的刚体模型建立方法。
背景技术
随着数字电视市场竞争压力增大,各个数字电视机顶盒提供商都以能提供多元化的增值服务为竞争亮点,当下流行的3D游戏系统就是其中一例。然而机顶盒是基于嵌入式系统的构架而实现的,需要较高运行环境的3D游戏移植到硬件资源非常贫乏的机顶盒中,问题是显而易见的。机由于家庭的机顶盒通常配置较低,只拥有很低的运算速度和很小的内存。所以传统的PC三维游戏显然是无法简单的移植过来。几乎所有的模型和算法都需要做简化处理。怎么样才能使得简化处理后的模型和算法在大幅度简化了的同时又能依旧保持比较良好的效果是问题的关键。
数字电视由于采用了数字技术,在数字电视服务中能融入各类数据服务。借助于中间件应用平台,开发出多种互动应用,游戏就是其中的一种应用。
基于物理模型的游戏技术是八十年代后期发展起来的一种新的游戏设计技术。经过近几年的发展,它已在图形学中成为一种具有潜在优势的三维造型和运动模拟技术。尽管该技术比传统游戏技术的计算复杂度要高得多,但它能逼真地模拟各种自然物理现象,这是基于几何的传统游戏动画生成技术所无法比拟的。
传统游戏技术要求预先描述物体在某一时刻的瞬时几何位置、方向和形状,其运动往往通过参数关键帧技术来完成。因而,欲模拟一个逼真的自然运动需要游戏设计者细致、耐心的调整,要求游戏设计者依赖其对真实物理世界的直观感觉来设计物体在场景中的运动。但由于真实的物体运动往往非常复杂,采用传统的游戏设计技术一般来说难以生成令人满意的运动。
基于物理模型的游戏技术则考虑了物体在真实世界中的属性,如它具有质量、转动惯矩、弹性、摩擦力等,并采用动力学原理来自动生成物体的运动。当场景中的物体受到外力作用时,牛顿力学中的标准动力学方程可用来自动生成物体在各个时间点的位置、方向及其形状。此时,游戏设计者不必关心物体运动过程的细节,只需确定物体运动所需的一些物理属性及一些约束关系,如质量、外力等。
一般来说,游戏中的物理系统主要包括刚体,柔体,流体等物理模型。刚体模型是指不变形的物理模型,可以实现游戏中的物体碰撞效果,主要包含碰撞检测和碰撞响应的处理。可以处理诸如重力,摩擦力等。
物体运动的逼真性直接影响到三维游戏在视觉,听觉和触觉等各方面的逼真性。而刚体模型作为游戏物理系统方面的重要部分,是实现三维游戏逼真运动的必要途径,也是三维游戏引擎研究中的一个难点和重点。
机顶盒是基于嵌入式系统的构架而实现的,需要较高运行环境的3D游戏移植到硬件资源非常贫乏的机顶盒中,问题是显而易见的。机由于家庭的机顶盒通常配置较低,只拥有很低的运算速度和很小的内存。所以传统的PC三维游戏显然是无法简单的移植过来。几乎所有的模型和算法都需要做简化处理。怎么样才能使得简化处理后的模型和算法在大幅度简化了的同时又能依旧保持比较良好的效果是问题的关键。
发明内容
基于家庭的机顶盒通常配置较低,只拥有很低的运算速度和很小的内存,三维游戏引擎中刚体模型的设计要满足低计算量的要求,又要能逼真模拟刚体的一般运动。这里设计形状如一个胶囊的几何模型,称之为胶囊体。以胶囊体为三维游戏引擎中刚体的几何模型,该模型便于碰撞检测算法的实现,易于满足低计算量的要求。同时,本章根据需要选取适当的物理量来建立简化的物理模型。结合刚体的几何模型和物理模型,建立三维游戏引擎中的刚体模型。
基于上述问题,本发明实施例提供了一种基于数字家庭娱乐中三维模型的刚体模型建立方法,所述方法包括:
在三维笛卡尔坐标系中建立三维游戏引擎中的刚体模型;
基于质心坐标和质量值简化刚体模型;
基于刚体模型创造碰撞检测包围盒;
基于物理模拟系统对建立的刚体模型进行相交测试,判断图元间是否发生碰撞;
基于三维游戏系统进行刚体模型的碰撞检测;
基于三维游戏系统获得刚体模型碰撞响应结果。
这里对刚性物体建模,首先需要根据研究目的选择模拟仿真的刚性对象,然后才能根据刚性对象的外部特征建立符合其外形表面的计算机描述。在三维游戏引擎中,需要模拟仿真的对象有树木,人体,棍棒等。我们注意到,经简化后,这些对象可由圆柱体和球体组合而成。这里考虑使用如下的几何模型,一个圆柱体,圆柱体的上下表面均结合一个半球体。其形状如一个胶囊,可称之为胶囊体(Capsule)。这里的胶囊体是兼容球体的。
其次,要完整描述刚体的物理运动效果,需要牵涉到太多的物理量和大量的数学运算,这不便于满足家庭的机顶盒低计算量的要求。在这里,我们会根据需要选取适当的物理量来建立简化的物理模型。最简单的刚体就是质点,这需要由质心坐标和质量值来描述。刚体的一般运动(不受任何约束的运动)可分解为质心的平动+通过质心的定点转动。与质心的平动相关的物理量是质心线速度,质心线加速度,质心所受合力,由公式F=ma知,质心线加速度可由质心所受合力及质量值求解,为简化起见,简化模型里不记录质心线加速度的值。通过质心的定点转动即是只有质心固定不动,刚体绕此定点的某一瞬时轴线的转动。与转动相关的物理量是角速度,转动惯量,合力矩。通过质心的定点转动的特点是转动轴不固定,需确定轴的方位,在这里,规定轴的方位就是角速度的方向矢量。要实现摩擦效果,需要最大静摩擦力与滑动摩擦系数值。
数字电视三维游戏环境要求低计算量,连续碰撞检测算法计算量大,且在处理刚体转动问题时效率更低,所以连续碰撞检测算法在数字电视三维游戏引擎中不宜采用。本专利中的刚体碰撞检测算法就是基于离散碰撞检测算法的。为优化刚体的碰撞检测算法,引入了包围盒方法实现快速碰撞检测。碰撞检测算法效率的关键是物体间的相交测试检测,这里针对胶囊体Capsule设计基于等价类划分的相交测试算法,设计了数字电视三维游戏引擎中刚体模型的碰撞检测算法,该算法能较好的满足低计算量的要求
设计基于物理特性的物体运动表示方法,在此基础上讨论基于物理特性的碰撞响应。要模拟刚体的碰撞响应效果,主要的问题是求解碰撞点和接触力。给出了碰撞点求解的快速算法,结合前面的刚体碰撞响应算法,在进行碰撞检测的同时求解出碰撞点。同时,使用基于冲量的方法求解出接触力。整合刚体的碰撞检测算法,碰撞响应算法,再结合刚体一般运动模拟、重力场模拟、摩擦力模拟,完成对简单刚体的运动模拟。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明实施例中的基于数字家庭娱乐中三维模型的刚体模型建立方法流程图;
图2是本发明实施例中的刚体几何模型示意图;
图3是本发明实施例中的Sphere/Capsule相交测试示意图;
图4是本发明实施例中的刚体碰撞响应流程图;
图5是本发明实施例中的实施过程的状态示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施了例中提供的基于数字家庭娱乐中三维模型的刚体模型建立方法,该方法主要包括:在三维笛卡尔坐标系中建立三维游戏引擎中的刚体模型;基于质心坐标和质量值简化刚体模型;基于刚体模型创造碰撞检测包围盒;基于物理模拟系统对建立的刚体模型进行相交测试,判断图元间是否发生碰撞;基于三维游戏系统进行刚体模型的碰撞检测;基于三维游戏系统获得刚体模型碰撞响应结果。
这里的在三维笛卡尔坐标系中建立三维游戏引擎中的刚体模型包括:
在三维笛卡尔坐标系里,由P(c,n,h,r)唯一确定一个胶囊体,其中c是胶囊体的中心点坐标值,n是胶囊体的方向向量,h是组成胶囊体的圆柱的半高值,r是组成胶囊体的半球的半径值;当h值为0时,P(c,n,h,r)蜕化成一个球体。
这里的基于刚体模型创造碰撞检测包围盒包括:以刚体模型的中心为包围盒的球心,以刚体模型的Height与radius之和为包围盒的半径,可形成完全包围刚体模型的包围盒,创建Capsule的轴对称包围盒AABB的高效率算法,设r是Capsule的radius值,首先找到Capsule两个轴线段端点,O1(x1,y1,z1)、O2(x2,y2,z2),则由点(max(x1,x2)+r,max(y1,y2)+r,max(z1,z2)+r)和点(min(x1,x2)+r,min(y1,y2)+r,min(z1,z2)-r)可形成完全包围Capsule的AABB包围盒。
这里的基于物理模拟系统对建立的刚体模型进行相交测试中的相交测试包括如下之一或者组合:Sphere的相交测试、或者AABB/AABB相交测试、Sphere与AABB之间的相交测试、Sphere/Capsule相交测试、Capsule/Capsule的相交测试、Capsule/Plane相交测试。
这里的基于三维游戏系统进行刚体模型的碰撞检测包括:设定一个运动速度最大值,当物体运动速度超过最大值时,则修正物体的运动速度;三维游戏引擎中的时间步是由系统帧更新方法FrameMove()获取的,读取两帧之间的CPU时间差即为一步长;步长受系统硬件运行效率的影响,或长或短,这里采用自适应的方法细化步长。
具体的,图1示出了本发明实施例的方法流程图,本发明实施例的实施过程如下:
S101:在三维笛卡尔坐标系中建立三维游戏引擎中的刚体模型。
定义:在三维笛卡尔坐标系里,由P(c,n,h,r)唯一确定一个胶囊体。其中c是胶囊体的中心点坐标值,n是胶囊体的方向向量,h是组成胶囊体的圆柱的半高值,r是组成胶囊体的半球的半径值。当h值为0时,P(c,n,h,r)蜕化成一个球体。图2示出了本发明实施例中的刚体几何模型示意图。
给出胶囊体在游戏引擎中的结构:
S102:基于质心坐标和质量值简化刚体模型
要完整描述刚体的物理运动效果,需要牵涉到太多的物理量和大量的数学运算,这不便于满足三维游戏对实时性的要求。在这里,我们会根据需要选取适当的物理量来建立简化的物理模型。
最简单的刚体就是质点,这需要由质心坐标和质量值来描述。刚体的一般运动(不受任何约束的运动)可分解为质心的平动+通过质心的定点转动。
与质心的平动相关的物理量是质心线速度,质心线加速度,质心所受合力,由公式F=ma知,质心线加速度可由质心所受合力及质量值求解,为简化起见,简化模型里不记录质心线加速度的值。
通过质心的定点转动即是只有质心固定不动,刚体绕此定点的某一瞬时轴线的转动。与转动相关的物理量是角速度,转动惯量,合力矩。通过质心的定点转动的特点是转动轴不固定,需确定轴的方位,在这里,规定轴的方位就是角速度的方向矢量。
要实现摩擦效果,需要最大静摩擦力与滑动摩擦系数值。
所以,在游戏引擎中可以定义如下一个刚体结构:
S103:基于刚体模型创造碰撞检测包围盒;
创建Capsule的球包围盒的高效率算法。以Capsule的中心为包围盒的球心,以Capsule的的Height与radius之和为包围盒的半径,可形成完全包围Capsule的包围盒。创建Capsule的轴对称包围盒AABB的高效率算法。设r是Capsule的radius值,首先找到Capsule两个轴线段端点,O1(x1,y1,z1)、O2(x2,y2,z2),则由点(max(x1,x2)+r,max(y1,y2)+r,max(z1,z2)+r)和点(min(x1,x2)+r,min(y1,y2)+r,min(z1,z2)-r)可形成完全包围Capsule的AABB包围盒。
S104:基于物理模拟系统对建立的刚体模型进行相交测试,判断图元间是否发生碰撞;
物理模拟系统必须判断两个图元是否发生碰撞,这类图元包括、球体、AABB、Capsule等,在所有这些情况中,均存在相交测试问题。相交测试判断的是两个物体A和B是否相交,这意味着要么A完全在B中,要么A和B边界重叠,要么A和B完全分开。下面是各图元间的快速相交测试模块的组成部分:
1)Sphere的相交测试
球体的相交测试过程非常快速。其测试原理是:首先计算出两个球体球心之间的距离,如果该距离值大于两个球体的半径之和,可以不需要作进一步的相交测试;否则,两者就可能相交。实际实现的过程中,由于只是希望得到比较的结果,算法通常是使用距离的平方值,而避免计算平方根。
2)AABB/AABB相交测试
AABB/AABB相交测试,只要判断两个AABB之间的距离即可。
3)Sphere与AABB之间的相交测试
要判断测试球体与AABB之间的相交关系。它的主要思想是,在AABB上找到距离球心c最近的一个点,其中需要对AABB的每个轴线都进行一次一维测试,判断球心坐标的每一个轴分量是否在AABB边界之内。如果在AABB的边界之外,那么计算球心沿该轴线到AABB的距离。在三个轴线方向都计算完后,距离的和与球体半径比较,如果距离的和小于球体的半径的平方,那么判定上述最近点位于球体内部,于是球体与AABB相交。
5)Sphere/Capsule相交测试
Capsule在height值为0时蜕化成Sphere,故Capsule体与任何图元的相交测试中的一个特例就是球体与该图元的相交测试。根据相交测试的优化策略,可以先构造Capsule体的AABB包围盒,检测该AABB与Sphere的相交情况。若AABB与Sphere相交,才进一步检测Capsule与Sphere的相交情况。Capsule与Sphere的相交状态可以划分为两种等价情况,具体可参阅图3:一种是Capsule的半球体部分与球体的相交情况,另一种是Capsule的圆柱体部分与球体的相交情况。
刚体1的半球体与球体2的相交情况按下式判定,记半球体的球心为O1,半径为r1;球体的球心为O2,半径为r2:刚体1的圆柱体部分与球体2的相交情况按下式判定,记圆柱体的两轴线段端点为O1,O1‘,半径为r1,轴方向向量为球体的球心为O2,半径为r2:且且
6)Capsule/Capsule的相交测试
根据相交测试的优化策略,可以先构造两Capsule体的AABB包围盒,使用AABB/AABB相交测试求解两AABB的相交情况。若相交,才进一步检测这两个未蜕化的Capsule的相交情况。Capsule与Capsule的相交状态可以划分为下列等价情况:Capsule1的半球体部分与Capsule2的半球体部分相交,Capsule1的半球体部分与Capsule2的圆柱体部分相交,Capsule1的圆柱体部分与Capsule2的圆柱体部分相交。
7)Capsule/Plane相交测试
首先引入三维点与平面的位置判定方法,给定一个平面Plane(a,b,c,d)和一个三维点A(x,y,z),式(3.3)中Dist的绝对值给出了点A到平面Plane的距离,Dist的正负值蕴含了点A到平面Plane的位置关系。
则Capsule体中任意一点在平面Plane的反向处时,Capsule与Plane相交。当Capsule蜕化为Sphere时,就变为Sphere与Plane的相交测试。
(5)基于三维游戏系统进行刚体模型的碰撞检测
三维游戏系统中的碰撞检测标准是检测两个物体所占用的几何空间是否相交或重叠。如果两个物体所占用的几何空间相交,则断定这两个物体之间发生了碰撞。否则,如果这两个物体所占用的几何空间不相交,则认为这两个物体没有发生碰撞。
当一个物体的运动时(位置、方向发生变化),它所占据的三维空间会随之发生变化。此时,该物体将释放原来占用的空间,并占用新的空间。如果所需占用的空间已被其它物体占用,那么,这两个物体将发生碰撞。如果所需占用的空间未被其它物体占用,则这个物体将不与任何物体发生碰撞。由此,得出结论:三维空间中,物体的碰撞的产生,是因为物体的运动。
静止物体(位置、方向均不发生变化)或在一段时间相对静止的物体不会主动与其它物体发生碰撞,所以别的物体的运动状态不受该静止物体的影响。由此可知,根据物体本身的位置、方向是否发生变化便可以确定是否需要检测它与其它物体之间的碰撞。只有当一个物体的位置、方向发生变化时,才需要检测它与虚拟环境中的其他物体是否发生碰撞。否则,当一个物体的位置、方向均不发生变化时,则避免静止物体对别的物体的碰撞检测。这个原理在碰撞检测算法中很有效,可以大大缩小碰撞检测的范围。
规则一:碰撞是由运动刚体发起的,静止刚体或在一段时间内相对静止的刚体不发起碰撞,可以避免静止刚体对别的刚体的碰撞检测。
在三维游戏场景中,一般要对每一刚体与其它所有刚体进行碰撞检测,而当检测出刚体1与刚体2发生碰撞时,无需再进行刚体2与刚体1进行碰撞检测。这个原理可以避免重复进行刚体对之间的碰撞检测。
规则二:碰撞是相互的,刚体对之间只需进行一次碰撞检测,当检测出刚体1与刚体2发生碰撞后,无需再对刚体2和刚体1进行碰撞检测。
在进行碰撞检测前,还需执行快速的碰撞避免策略。三维游戏场景相对刚体而言很大,刚体数量也很多,两个相距很远的刚体根本不可能发生碰撞,也就无需进行碰撞检测。因此在进行碰撞检测之前,可以使用快速排出的策略确定可能发生碰撞的刚体的范围,在确定范围时,对刚体只考虑其中心点位置,通过计算两刚体中心点距离超过某个范围值时,避免两刚体间的碰撞检测。
离散碰撞检测算法只检测离散时间点上可能发生的碰撞,若物体运动速度相当快或时间点间隔太长时,一个物体有可能完全穿越另一物体,算法将无法检测到这类碰撞。解决这一问题的办法有两种,可以限制物体运动速度或减小计算物体运动的时间步长。
本算法综合这两种方法,设定一个运动速度最大值,当物体运动速度超过最大值时,则修正物体的运动速度。三维游戏引擎中的时间步是由系统帧更新方法FrameMove()获取的,读取两帧之间的CPU时间差即为一步长。步长受系统硬件运行效率的影响,或长或短,这里采用自适应的方法细化步长。但是细化步长操作意味着要进行更多次碰撞检测,会带来更多的时间开销,所以三维游戏引擎中提供一个开关,用于开启或关闭细化步长的操作。
S106:刚体碰撞响应
碰撞是由于物体运动而产生的,碰撞响应过程是处理由碰撞引起的物体运动状态的改变。模拟刚体一般运动的步骤具体如图4中所述:首先确定初始时间点t0,刚体具有初始状态T0;统计刚体所受的所有外力,更新刚体的合力与合力矩值;根据合力与合力矩值,更新刚体的速度与角速度值;根据速度与角速度值,更新刚体的位置;下一时间点t1,刚体的新状态T1。
3.实施案例
具体的实施过程如图中所示,(a)图为初始状态,(b)图为柔体在风力场中的运动效果,(c)图为胶囊体模拟骨骼与躯体,以下做详细的说明。
(1)物体落地运动的模拟
刚体的设计是为了模拟物体与地面,物体与物体之间碰撞的效果。以下给出在三维游戏引擎中的一些测试实例。
该实例模拟自由落体效果,对运行的三维游戏场景做如下初始设定:
m_Sim.m_bAddingGravity=TRUE;//使用重力场模拟
m_Sim.m_bUsingFriction=TRUE;//使用摩擦力模拟
m_Sim.m_fEpsilon=0.65f;//设定碰撞恢复系数为0.65
设置刚体1的初始状态为CtrPosition(0,300,0),Normal(0,0.7,0.7),Height(70),Radius(30),m_Position(0,300,0),m_fMass(1),m_fInertia(833.3)。
该实例综合考虑了刚体的一般运动(平动和转动),结合重力场、摩擦力的模拟,模拟出了物体的自由落体运动效果。
通过对初始数值的修改,本实例还可以模拟出完全弹性碰撞,完全非弹性碰撞等情况。
(2)多个物体碰撞效果模拟
该实例模拟多个物体碰撞效果,对运行的三维游戏场景做如下初始设定:
m_Sim.m_bAddingGravity=false;//使用重力场模拟
m_Siln.m_bUsingFriction=false;//使用摩擦力模拟
m_Sim.m_fEpsilon=0.8f;//设定碰撞恢复系数为0.8
设置刚体1的初始状态为CtrPosition(1,100,0),Normal(0,1,0),Height(70.0),Radius(30),m_Position(1,100,0),m_fMass(1),m_fInertia(833.3)。
设置刚体2的初始状态为CtrPosition(150,110,0),Normal(0,0.7,0.7),Radius(30),Height(70),m_Position(150,110,0),m_fMass(1),m_fInertia(833.3),m_LineVel(-10,0,0)。
该实例综合考虑了刚体的一般运动(平动和转动),屏蔽重力场、摩擦力的模拟,模拟出了物体间的碰撞效果。
通过对初始数值的修改,本实例还可以模拟出完全弹性碰撞,完全非弹性碰撞等情况。
(3)刚体碰撞检测在实时柔体动画中的应用
本实例是刚体几何模型运用于实时柔体动画中的应用案例。模拟裙子、头发等柔体在风力场作用下运动效果,需要检测柔体与躯体的碰撞。在本案例中,使用一个大的胶囊体(Capsule)模拟躯体,柔体的运动是通过实时的骨骼运动来牵动的,我们用小的胶囊体来模拟每一根骨骼,检测每个小胶囊体(骨骼)与大胶囊体(躯体)的碰撞。
以上对本发明实施例所提供的基于数字家庭娱乐中三维模型的刚体模型建立方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (5)
1.一种基于数字家庭娱乐中三维模型的刚体模型建立方法,其特征在于,所述方法包括:
在三维笛卡尔坐标系中建立三维游戏引擎中的刚体模型;
基于质心坐标和质量值简化刚体模型;
基于刚体模型创造碰撞检测包围盒;
基于物理模拟系统对建立的刚体模型进行相交测试,判断图元间是否发生碰撞;
基于三维游戏系统进行刚体模型的碰撞检测;
基于三维游戏系统获得刚体模型碰撞响应结果。
2.如权利要求1所述的方法,其特征在于,所述在三维笛卡尔坐标系中建立三维游戏引擎中的刚体模型包括:
在三维笛卡尔坐标系里,由P(c,n,h,r)唯一确定一个胶囊体,其中c是胶囊体的中心点坐标值,n是胶囊体的方向向量,h是组成胶囊体的圆柱的半高值,r是组成胶囊体的半球的半径值;当h值为0时,P(c,n,h,r)蜕化成一个球体。
3.如权利要求2所述的方法,其特征在于,所述基于刚体模型创造碰撞检测包围盒包括:
以刚体模型的中心为包围盒的球心,以刚体模型的Height与radius之和为包围盒的半径,可形成完全包围刚体模型的包围盒,创建Capsule的轴对称包围盒AABB的高效率算法,设r是Capsule的radius值,首先找到Capsule两个轴线段端点,O1(x1,y1,z1)、O2(x2,y2,z2),则由点(max(x1,x2)+r,max(y1,y2)+r,max(z1,z2)+r)和点(min(x1,x2)+r,min(y1,y2)+r,min(z1,z2)-r)可形成完全包围Capsule的AABB包围盒。
4.如权利要求3所述的方法,其特征在于,所述基于物理模拟系统对建立的刚体模型进行相交测试中的相交测试包括如下之一或者组合:
Sphere的相交测试、或者AABB/AABB相交测试、Sphere与AABB之间的相交测试、Sphere/Capsule相交测试、Capsule/Capsule的相交测试、Capsule/Plane相交测试。
5.如权利要求4所述的方法,其特征在于,所述基于三维游戏系统进行刚体模型的碰撞检测包括:
设定一个运动速度最大值,当物体运动速度超过最大值时,则修正物体的运动速度;三维游戏引擎中的时间步是由系统帧更新方法FrameMove()获取的,读取两帧之间的CPU时间差即为一步长;步长受系统硬件运行效率的影响,或长或短,这里采用自适应的方法细化步长。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012100493743A CN102663808A (zh) | 2012-02-29 | 2012-02-29 | 一种基于数字家庭娱乐中三维模型的刚体模型建立方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012100493743A CN102663808A (zh) | 2012-02-29 | 2012-02-29 | 一种基于数字家庭娱乐中三维模型的刚体模型建立方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102663808A true CN102663808A (zh) | 2012-09-12 |
Family
ID=46773285
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012100493743A Pending CN102663808A (zh) | 2012-02-29 | 2012-02-29 | 一种基于数字家庭娱乐中三维模型的刚体模型建立方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102663808A (zh) |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103853873A (zh) * | 2012-12-06 | 2014-06-11 | 索尼在线娱乐有限责任公司 | 用于利用块构建数字对象的系统和方法 |
CN104606887A (zh) * | 2014-12-30 | 2015-05-13 | 北京像素软件科技股份有限公司 | 一种碰撞判定方法 |
CN107895441A (zh) * | 2017-10-26 | 2018-04-10 | 广州市雷军游乐设备有限公司 | 获取抓取器模型抓取状态的方法、装置、设备及存储介质 |
CN108280874A (zh) * | 2018-01-08 | 2018-07-13 | 江苏辰锐网络科技有限公司 | 刚体内存替代化简的特效处理系统、方法、设备及计算机程序产品 |
CN109364484A (zh) * | 2018-12-20 | 2019-02-22 | 北京像素软件科技股份有限公司 | 游戏角色移动测试方法及装置 |
CN109407838A (zh) * | 2018-10-17 | 2019-03-01 | 福建星网视易信息系统有限公司 | 界面互动方法及计算机可读存储介质 |
CN109465835A (zh) * | 2018-09-25 | 2019-03-15 | 华中科技大学 | 一种动态环境下双臂服务机器人作业的事前安全预测方法 |
CN109719733A (zh) * | 2019-03-11 | 2019-05-07 | 济南大学 | 一种多臂机器人机械臂干涉分析方法 |
CN110009748A (zh) * | 2019-04-16 | 2019-07-12 | 珠海金山网络游戏科技有限公司 | 一种模型构造方法及系统、计算设备及存储介质 |
CN111467795A (zh) * | 2020-04-02 | 2020-07-31 | 北京代码乾坤科技有限公司 | 游戏场景内的物理结算方法和装置 |
CN112419440A (zh) * | 2020-11-10 | 2021-02-26 | 深圳市益欣网络科技有限公司 | 一种2d水滴张力模拟粘合方法 |
CN112774204A (zh) * | 2021-01-22 | 2021-05-11 | 北京字跳网络技术有限公司 | 一种角色碰撞规避方法、装置、设备以及存储介质 |
CN112891954A (zh) * | 2021-02-02 | 2021-06-04 | 网易(杭州)网络有限公司 | 虚拟对象的模拟方法、装置、存储介质及计算机设备 |
CN113038264A (zh) * | 2021-03-01 | 2021-06-25 | 北京字节跳动网络技术有限公司 | 直播视频处理方法、装置、设备和存储介质 |
CN113577773A (zh) * | 2021-07-08 | 2021-11-02 | 武汉指娱互动信息技术有限公司 | 一种碰撞数据处理方法、装置、电子设备及存储介质 |
CN113642102A (zh) * | 2021-07-23 | 2021-11-12 | 一汽奔腾轿车有限公司 | 一种碰撞模型中刚体对的自动化建模方法 |
CN113949914A (zh) * | 2021-08-19 | 2022-01-18 | 广州博冠信息科技有限公司 | 直播互动方法、装置、电子设备及计算机可读存储介质 |
CN116051797A (zh) * | 2023-04-03 | 2023-05-02 | 山东捷瑞数字科技股份有限公司 | 一种基于三维引擎批量修改模型穿插的方法、装置及设备 |
CN117315163A (zh) * | 2023-11-27 | 2023-12-29 | 山东捷瑞数字科技股份有限公司 | 基于三维引擎的柔性附着物随刚性被附着物运动模拟方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101093586A (zh) * | 2007-07-12 | 2007-12-26 | 上海交通大学 | 面向复杂场景实时交互操作的并行碰撞检测方法 |
-
2012
- 2012-02-29 CN CN2012100493743A patent/CN102663808A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101093586A (zh) * | 2007-07-12 | 2007-12-26 | 上海交通大学 | 面向复杂场景实时交互操作的并行碰撞检测方法 |
Non-Patent Citations (1)
Title |
---|
何剑琪: "三维游戏引擎中刚体模型的研究与设计", 《万方学位论文》 * |
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103853873A (zh) * | 2012-12-06 | 2014-06-11 | 索尼在线娱乐有限责任公司 | 用于利用块构建数字对象的系统和方法 |
CN104606887A (zh) * | 2014-12-30 | 2015-05-13 | 北京像素软件科技股份有限公司 | 一种碰撞判定方法 |
CN107895441A (zh) * | 2017-10-26 | 2018-04-10 | 广州市雷军游乐设备有限公司 | 获取抓取器模型抓取状态的方法、装置、设备及存储介质 |
CN108280874A (zh) * | 2018-01-08 | 2018-07-13 | 江苏辰锐网络科技有限公司 | 刚体内存替代化简的特效处理系统、方法、设备及计算机程序产品 |
CN109465835A (zh) * | 2018-09-25 | 2019-03-15 | 华中科技大学 | 一种动态环境下双臂服务机器人作业的事前安全预测方法 |
CN109407838A (zh) * | 2018-10-17 | 2019-03-01 | 福建星网视易信息系统有限公司 | 界面互动方法及计算机可读存储介质 |
CN109364484A (zh) * | 2018-12-20 | 2019-02-22 | 北京像素软件科技股份有限公司 | 游戏角色移动测试方法及装置 |
CN109719733A (zh) * | 2019-03-11 | 2019-05-07 | 济南大学 | 一种多臂机器人机械臂干涉分析方法 |
CN110009748B (zh) * | 2019-04-16 | 2023-04-07 | 珠海金山数字网络科技有限公司 | 一种模型构造方法及系统、计算设备及存储介质 |
CN110009748A (zh) * | 2019-04-16 | 2019-07-12 | 珠海金山网络游戏科技有限公司 | 一种模型构造方法及系统、计算设备及存储介质 |
CN111467795A (zh) * | 2020-04-02 | 2020-07-31 | 北京代码乾坤科技有限公司 | 游戏场景内的物理结算方法和装置 |
CN112419440A (zh) * | 2020-11-10 | 2021-02-26 | 深圳市益欣网络科技有限公司 | 一种2d水滴张力模拟粘合方法 |
CN112774204A (zh) * | 2021-01-22 | 2021-05-11 | 北京字跳网络技术有限公司 | 一种角色碰撞规避方法、装置、设备以及存储介质 |
CN112774204B (zh) * | 2021-01-22 | 2023-10-20 | 北京字跳网络技术有限公司 | 一种角色碰撞规避方法、装置、设备以及存储介质 |
CN112891954A (zh) * | 2021-02-02 | 2021-06-04 | 网易(杭州)网络有限公司 | 虚拟对象的模拟方法、装置、存储介质及计算机设备 |
CN112891954B (zh) * | 2021-02-02 | 2024-02-13 | 网易(杭州)网络有限公司 | 虚拟对象的模拟方法、装置、存储介质及计算机设备 |
CN113038264B (zh) * | 2021-03-01 | 2023-02-24 | 北京字节跳动网络技术有限公司 | 直播视频处理方法、装置、设备和存储介质 |
CN113038264A (zh) * | 2021-03-01 | 2021-06-25 | 北京字节跳动网络技术有限公司 | 直播视频处理方法、装置、设备和存储介质 |
CN113577773A (zh) * | 2021-07-08 | 2021-11-02 | 武汉指娱互动信息技术有限公司 | 一种碰撞数据处理方法、装置、电子设备及存储介质 |
CN113577773B (zh) * | 2021-07-08 | 2024-01-23 | 武汉指娱互动信息技术有限公司 | 一种碰撞数据处理方法、装置、电子设备及存储介质 |
CN113642102A (zh) * | 2021-07-23 | 2021-11-12 | 一汽奔腾轿车有限公司 | 一种碰撞模型中刚体对的自动化建模方法 |
CN113642102B (zh) * | 2021-07-23 | 2024-03-15 | 一汽奔腾轿车有限公司 | 一种碰撞模型中刚体对的自动化建模方法 |
CN113949914A (zh) * | 2021-08-19 | 2022-01-18 | 广州博冠信息科技有限公司 | 直播互动方法、装置、电子设备及计算机可读存储介质 |
CN116051797A (zh) * | 2023-04-03 | 2023-05-02 | 山东捷瑞数字科技股份有限公司 | 一种基于三维引擎批量修改模型穿插的方法、装置及设备 |
CN117315163A (zh) * | 2023-11-27 | 2023-12-29 | 山东捷瑞数字科技股份有限公司 | 基于三维引擎的柔性附着物随刚性被附着物运动模拟方法 |
CN117315163B (zh) * | 2023-11-27 | 2024-02-09 | 山东捷瑞数字科技股份有限公司 | 基于三维引擎的柔性附着物随刚性被附着物运动模拟方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102663808A (zh) | 一种基于数字家庭娱乐中三维模型的刚体模型建立方法 | |
CN104077797B (zh) | 三维游戏动画系统 | |
CN112915542B (zh) | 一种碰撞数据处理方法、装置、计算机设备及存储介质 | |
CN106780709B (zh) | 一种确定全局光照信息的方法及装置 | |
US6809738B2 (en) | Performing memory management operations to provide displays of complex virtual environments | |
CN105205860B (zh) | 三维模型场景的展示方法及装置 | |
US20030117397A1 (en) | Systems and methods for generating virtual reality (VR) file(s) for complex virtual environments | |
CN103530495A (zh) | 增强现实仿真连续体 | |
CN102306386B (zh) | 从单张树木图像快速构建真实感树木模型的方法 | |
CN106780707B (zh) | 模拟场景中全局光照的方法和装置 | |
US11704868B2 (en) | Spatial partitioning for graphics rendering | |
JP2009043245A (ja) | 近傍粒子探索に用いるデータ構造の構築方法、そのプログラム、およびそのプログラムを格納した記憶媒体 | |
CN112233253B (zh) | 虚拟球体的形变控制方法、装置、电子设备及存储介质 | |
WO2021218093A1 (zh) | 信息处理方法、装置、设备及存储介质 | |
CN107789832A (zh) | 构成复杂碰撞器的方法、装置、终端设备及存储介质 | |
Chen et al. | Real-time continuum grass | |
Joselli et al. | Techniques for designing GPGPU games | |
CN105006009B (zh) | 一种2d水体模拟方法 | |
Hadikurniawati et al. | A Bounding Box Collision Detection Method Based On The Android System For Adventure Game | |
CN107564058A (zh) | 对象位置显示方法及装置 | |
CN104463936B (zh) | 一种基于虚拟现实的室内爆炸仿真方法 | |
Hempe et al. | Efficient real-time generation and rendering of interactive grass and shrubs for large sceneries | |
CN106355635A (zh) | 一种在游戏场景中显示天空球的方法和装置 | |
CN106503351A (zh) | 一种虚拟环境中运动车辆的行为建模方法 | |
Cao et al. | Research on Physically-based Computer Animation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20120912 |