基于球坐标图元映射的模型压缩与碰撞检测方法技术

技术编号:27688684 阅读:21 留言:0更新日期:2021-03-17 04:18
本发明专利技术提供了一种基于球坐标图元映射的模型压缩与碰撞检测方法,采用将图元映射至球坐标系的方法压缩复杂模型,以加速碰撞检测。该模型压缩与碰撞检测方法中包括:在模型中选定一点作为原点,建立局部直角坐标系,并构建相应球坐标系,将原直角坐标转化为球坐标系中坐标,以球坐标系中方位角与仰角作为二维纹理的坐标轴,将三维虚拟物体模型上的点与原点距离记录至纹理中。在处理碰撞检测时,将待碰撞检测目标中的直线映射至球坐标系中,取对应纹理中模型上点与原点的距离,并与直线在该方向与原点距离对比,以判断是否存在碰撞。

【技术实现步骤摘要】
基于球坐标图元映射的模型压缩与碰撞检测方法
本专利技术涉及计算机图形学物理模拟领域,尤其涉及一种基于球坐标图元映射的模型压缩与碰撞检测方法。
技术介绍
碰撞检测是一种检测多个模型之间相交关系的技术手段,用于在物理现象模拟前判断多个模型间存在的关系。碰撞检测主要分为离散碰撞检测与连续碰撞检测,实时渲染领域中主要需应用离散碰撞检测,其加速手段主要为包围盒与空间分割。空间分割法指将空间中物体分割至多个不同区域,在各区域中分别进行碰撞检测,以提高算法并行度进而加速碰撞检测过程,主要有四叉树、BSP、八叉树、kd-tree等算法。在执行碰撞检测时,通过排除直线未经过区域,以达到减少进行碰撞检测对象的目的,最终加速碰撞检测。虽然空间分割层数越多,可筛去图元越多,碰撞检测速度越快,但是存在初始化时间长,空间复杂度高,新图元插入时耗随层数增加的缺陷。包围盒指用四边形、圆、三角形等基本几何图元将复杂模型轮廓化简,通过减少需计算的图元数量,达到加速碰撞检测的目的。目前,较常使用的包围盒算法包括轴向对齐包围盒、包围球、轴向胶囊包围盒、有向包围盒等。单层简单图元包围盒存在精度较低的缺陷;与此相对有层次包围盒,其除最外层包围盒外内侧再次细分多个更小的包围盒,进行多层的碰撞检测,虽然能在保证速度的前提下提升精度,但其空间复杂度极高,并且算法逻辑复杂,不易于实现。
技术实现思路
针对上述问题,本专利技术提供了一种基于球坐标图元映射的模型压缩与碰撞检测方法,有效减少了碰撞检测的运行时性能开销,并且与现有的包围盒与空间分割技术并不冲突,可结合使用。本专利技术提供的技术方案如下:一种基于球坐标图元映射的模型压缩与碰撞检测方法,应用于三维虚拟物体物理模拟场景中,包括模型建立、模型压缩及碰撞检测三个过程,其中,模型建立:根据需要执行碰撞检测物体的相关属性,创建三维虚拟物体模型;模型压缩:模型压缩为预处理步骤,对于任意一个三维虚拟物体模型,从中选定一点作为坐标原点,建立局部直角坐标系,并构建相应的球坐标系,将原直角坐标系坐标转化为球坐标系中坐标,以球坐标系中方位角与仰角作为二维纹理的坐标轴,将几何模型上的点与局部坐标原点之间的距离记录至纹理中;碰撞检测:某一特定三维虚拟物体模型与待进行碰撞检测目标的碰撞检测过程为:按照预设规则从待碰撞检测目标中选定一直线,将该直线映射至球坐标系中,取对应纹理中三维虚拟物体模型上的点与坐标原点之间的距离,并与待碰撞检测目标中的直线在该方向上与坐标原点之间的距离对比,以判断选定的该直线与三维虚拟物体模型是否存在碰撞,直到待碰撞检测目标中所有需进行处理的直线均完成与三维虚拟物体模型的碰撞检测。本专利技术提供的基于球坐标图元映射的模型压缩与碰撞检测方法,在模型压缩中选定一点作为原点,建立局部直角坐标系,并构建相应球坐标系,将原直角坐标化为球坐标系中坐标,以球坐标系中方位角与仰角作为二维纹理的坐标,并将几何模型上点与原点距离记录至纹理中。在处理碰撞检测时,将选定的直线映射至球坐标系中,取对应纹理中模型上点与坐标原点的距离,并与直线在该方向与原点距离对比,以判断是否存在碰撞。其采用将图元映射至球坐标系的方法压缩复杂模型,以加速碰撞检测。附图说明下面将以明确易懂的方式,结合附图说明优选实施方式,对上述特性、技术特征、优点及其实现方式予以进一步说明。图1为本专利技术模型压缩流程图;图2为本专利技术三维虚拟物体模型预处理时计算各顶点与选定原点距离示意图;图3为本专利技术预处理后纹理中图元存储示意图;图4为本专利技术碰撞检测流程图;图5为本专利技术顶点坐标系转换示意图。具体实施方式为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对照附图说明本专利技术的具体实施方式。显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。本专利技术提供了一种基于球坐标图元映射的模型压缩与碰撞检测方法,可应用于三维虚拟物体物理模拟场景中,如虚拟现实、三维游戏、影视渲染等应用中,其通过对模型压缩后再进行碰撞检测,降低运行时的内存开销并提升计算速度。具体,该模型压缩与碰撞检测方法中包括模型建立、模型压缩及碰撞检测三个过程,其中,模型建立:根据需要执行碰撞检测物体的相关属性,创建三维虚拟物体模型;模型压缩:模型压缩为预处理步骤,对于任意一个三维虚拟物体模型,从中选定一点作为坐标原点,建立局部直角坐标系,并构建相应的球坐标系,将原直角坐标系坐标转化为球坐标系中坐标,以球坐标系中方位角与仰角作为二维纹理的坐标轴,将几何模型上的点与局部坐标原点之间的距离记录至纹理中;碰撞检测:某一特定三维虚拟物体模型与待进行碰撞检测目标的碰撞检测过程为,按照预设规则从待碰撞检测目标中选定一直线,将该直线映射至球坐标系中,取对应纹理中三维虚拟物体模型上的点与坐标原点之间的距离,并与待碰撞检测目标中的直线在该方向上与坐标原点之间的距离对比,以判断选定的该直线与三维虚拟物体模型是否存在碰撞,直到待碰撞检测目标中所有需进行处理的直线均完成与三维虚拟物体模型的碰撞检测。对于模型建立过程,这里不做具体限定,可以选用现有任意的方法对待碰撞检测目标进行建模,得到相应的三维虚拟物体模型。另外,三维虚拟物体模型可以任意的图元构建而成,如,三角形图元、四边形图元等。以下以三维虚拟物体模型由三角形图元构建为例,对模型压缩预处理过程和碰撞检测过程做出说明,其中,如图1所示,模型压缩过程包括:S11在三维虚拟物体模型中选取一合适点作为模型局部坐标原点O。该坐标原点O可以为虚拟空间中任意点,包括但不限于三维虚拟物体模型的几何中心或质心,实际应用中可以根据需求进行选定。S12依据碰撞检测精度建立一张大小合适的纹理textureA,并将纹理textureA中所有比特位的值初始化为0,以存储几何模型上各点映射后的纹理对应编号的标志位信息。这里碰撞检测精度同样可以根据实际应用需求进行选定,如离线渲染所要求的高画面质量时选用高精度,实时渲染需求高速计算时采用低精度。S13遍历几何模型上所有图元,判断是否存在未处理图元,若不存在,结束压缩预处理操作,若存在,执行步骤S14到S19。S14对于正在处理的图元,将其记为图元Pcurrent,并将图元Pcurrent各顶点坐标换算至球坐标系的坐标(θ,φ,r′),其中,r′为顶点与坐标原点O之间的距离,φ为方位角,θ为仰角,对应在纹理textureA上的坐标为直角坐标系中,三角形图元所构建的模型中某一图元的三个顶点A、B和C与坐标原点O之间的位置关系如图2所示。S15对图元Pcurrent覆盖范围内的各点在textureA中的取值,从最右侧一位开始向左寻找图元Pcurrent覆盖范围中所有对应比特位的值均为0的比特位i,并将图元Pcurrent在textureA上覆盖范围内所有数据的第i位赋值为1。这里,寻找到比特本文档来自技高网...

【技术保护点】
1.一种基于球坐标图元映射的模型压缩与碰撞检测方法,其特征在于,应用于三维虚拟物体物理模拟场景中,包括模型建立、模型压缩及碰撞检测三个过程,其中,/n模型建立:根据需要执行碰撞检测物体的相关属性,创建三维虚拟物体模型;/n模型压缩:模型压缩为预处理步骤,对于任意一个三维虚拟物体模型,从中选定一点作为坐标原点,建立局部直角坐标系,并构建相应的球坐标系,将原直角坐标系坐标转化为球坐标系中坐标,以球坐标系中方位角与仰角作为二维纹理的坐标轴,将几何模型上的点与局部坐标原点之间的距离记录至纹理中;/n碰撞检测:某一特定三维虚拟物体模型与待进行碰撞检测目标的碰撞检测过程为:按照预设规则从待碰撞检测目标中选定一直线,将该直线映射至球坐标系中,取对应纹理中三维虚拟物体模型上的点与坐标原点之间的距离,并与待碰撞检测目标中的直线在该方向上与坐标原点之间的距离对比,以判断选定的该直线与三维虚拟物体模型是否存在碰撞,直到待碰撞检测目标中所有需进行处理的直线均完成与三维虚拟物体模型的碰撞检测。/n

【技术特征摘要】
1.一种基于球坐标图元映射的模型压缩与碰撞检测方法,其特征在于,应用于三维虚拟物体物理模拟场景中,包括模型建立、模型压缩及碰撞检测三个过程,其中,
模型建立:根据需要执行碰撞检测物体的相关属性,创建三维虚拟物体模型;
模型压缩:模型压缩为预处理步骤,对于任意一个三维虚拟物体模型,从中选定一点作为坐标原点,建立局部直角坐标系,并构建相应的球坐标系,将原直角坐标系坐标转化为球坐标系中坐标,以球坐标系中方位角与仰角作为二维纹理的坐标轴,将几何模型上的点与局部坐标原点之间的距离记录至纹理中;
碰撞检测:某一特定三维虚拟物体模型与待进行碰撞检测目标的碰撞检测过程为:按照预设规则从待碰撞检测目标中选定一直线,将该直线映射至球坐标系中,取对应纹理中三维虚拟物体模型上的点与坐标原点之间的距离,并与待碰撞检测目标中的直线在该方向上与坐标原点之间的距离对比,以判断选定的该直线与三维虚拟物体模型是否存在碰撞,直到待碰撞检测目标中所有需进行处理的直线均完成与三维虚拟物体模型的碰撞检测。


2.如权利要求1所述的碰撞检测方法,其特征在于,所述三维虚拟物体模型由三角形图元构建而成,其模型压缩预处理过程包括:
S11在三维虚拟物体模型中选取一合适点作为模型局部坐标原点O;
S12依据碰撞检测精度建立一张大小合适的纹理textureA,并将纹理textureA中所有比特位的值初始化为0,以存储几何模型上各点映射后的纹理对应编号的标志位信息;
S13遍历几何模型上所有图元,判断是否存在未处理图元,若不存在,结束压缩预处理操作,若存在,执行步骤S14到S19;
S14对于正在处理的图元,将其记为图元Pcurrent,并将图元Pcurrent各顶点坐标换算至球坐标系的坐标(θ,φ,r′),其中,r′为顶点与坐标原点O之间的距离,φ为方位角,θ为仰角,对应在纹理textureA上的坐标为
S15对图元Pcurrent覆盖范围内的各点在textureA中的取值,从最右侧一位开始向左寻找图元Pcurrent覆盖范围中所有对应比特位的值均为0的比特位i,并将图元Pcurrent在textureA上覆盖范围内所有数据的第i位赋值为1;
S16查询textureA中比特位i对应的存储图元信息的纹理i是否存在,若不存在,依据纹理textureA的精度创建纹理i;
S17判断图元Pcurrent各顶点在纹理textureA中的对应像素是否在一直线内,若是,纹理i需为双通道纹理并进行额外的存储计算,若不是,执行步骤S18到S19;
S18将图元各顶点与坐标原点O之间的距离r′记录至纹理i中点K的位置上,对图元Pcurrent中其他点在纹理中进行插值,并将插值结果记录至纹理i,直至图元Pcurrent所覆盖区域中所有距离均计算完毕;
S19跳转至步骤S13。


3.如权利要求2所述的模型压缩与碰撞检测方法,其特征在于,在步骤S17判断图元Pcurrent各顶点在纹理textureA中的对应像素是否在一直线内中,若判断图元Pcurrent各顶点在纹理textureA中的对应像素在一直线内,则执行以下步骤将其存储至双通道纹理i中:...

【专利技术属性】
技术研发人员:戴新元邹刘磊陈林凯范洪辉朱洪锦
申请(专利权)人:江苏理工学院
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1