【技术实现步骤摘要】
基于球坐标图元映射的模型压缩与碰撞检测方法
本专利技术涉及计算机图形学物理模拟领域,尤其涉及一种基于球坐标图元映射的模型压缩与碰撞检测方法。
技术介绍
碰撞检测是一种检测多个模型之间相交关系的技术手段,用于在物理现象模拟前判断多个模型间存在的关系。碰撞检测主要分为离散碰撞检测与连续碰撞检测,实时渲染领域中主要需应用离散碰撞检测,其加速手段主要为包围盒与空间分割。空间分割法指将空间中物体分割至多个不同区域,在各区域中分别进行碰撞检测,以提高算法并行度进而加速碰撞检测过程,主要有四叉树、BSP、八叉树、kd-tree等算法。在执行碰撞检测时,通过排除直线未经过区域,以达到减少进行碰撞检测对象的目的,最终加速碰撞检测。虽然空间分割层数越多,可筛去图元越多,碰撞检测速度越快,但是存在初始化时间长,空间复杂度高,新图元插入时耗随层数增加的缺陷。包围盒指用四边形、圆、三角形等基本几何图元将复杂模型轮廓化简,通过减少需计算的图元数量,达到加速碰撞检测的目的。目前,较常使用的包围盒算法包括轴向对齐包围盒、包围球、轴向胶囊包围盒、有向包围盒等。单层简单图元包围盒存在精度较低的缺陷;与此相对有层次包围盒,其除最外层包围盒外内侧再次细分多个更小的包围盒,进行多层的碰撞检测,虽然能在保证速度的前提下提升精度,但其空间复杂度极高,并且算法逻辑复杂,不易于实现。
技术实现思路
针对上述问题,本专利技术提供了一种基于球坐标图元映射的模型压缩与碰撞检测方法,有效减少了碰撞检测的运行时性能开销,并且与现有的包围盒与 ...
【技术保护点】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。