[发明专利]实时虚拟场景中圆柱碰撞体与凸体碰撞探测的方法和系统在审
申请号: | 201510864339.0 | 申请日: | 2015-11-30 |
公开(公告)号: | CN105512377A | 公开(公告)日: | 2016-04-20 |
发明(设计)人: | 匡西尼 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F17/50 | 分类号: | G06F17/50 |
代理公司: | 广州华进联合专利商标代理有限公司 44224 | 代理人: | 何平;邓云鹏 |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 实时 虚拟 场景 圆柱 碰撞 探测 方法 系统 | ||
1.一种实时虚拟场景中圆柱碰撞体与凸体之间碰撞探测的方法,包括以下 步骤:
将虚拟场景中虚拟对象所对应的圆柱碰撞体转化为与圆柱碰撞体同中心点 的预设多边形棱柱;
将所述预设多边形棱柱变换到凸体的局部坐标系,得到预设多边形棱柱在 凸体的局部坐标系下的位置;
根据所述预设多边形棱柱在凸体的局部坐标系下的位置获取预设多边形棱 柱各个面的法向、预设多边形的边方向和棱柱的棱的边方向;
获取所述凸体的各个面的法向和各个边方向;
将所述凸体的各个边方向与所述预设多边形的边方向和棱柱的棱的边方向 分别做向量积;
将所述预设多边形棱柱各个面的法向、凸体的各个面的法向及所述向量积 中一种或多种作为测试轴;
根据各测试轴及预设多边形棱柱在凸体的局部坐标系下的位置得到圆柱碰 撞体在测试轴上的投影长度及投影位置,并获取凸体在各测试轴上的投影;
若所述圆柱碰撞体和凸体在各测试轴上投影均相交,则判定圆柱碰撞体与 凸体之间有碰撞。
2.根据权利要求1所述的方法,其特征在于,将所述预设多边形棱柱变换 到凸体的局部坐标系,得到预设多边形棱柱在凸体的局部坐标系下的位置的步 骤包括:
将预设多边形棱柱的X轴、Y轴、Z轴及中心点变换到凸体的局部坐标系, 得到预设多边形棱柱的X轴、Y轴、Z轴的单位向量在凸体的局部坐标系下对 应的向量,并用Z轴在凸体的局部坐标系下向量乘以圆柱碰撞体的正负半高值, 得到预设多边形棱柱的上下两个底面的中点坐标;
获取圆柱碰撞体的半径,根据圆柱碰撞体的半径、X轴、Y轴在凸体的局 部坐标系下对应的向量得到预设多边形棱柱的各顶点相对所在底面的中点的偏 移量,将偏移量与中点坐标求和得到对应顶点的坐标;
根据各个顶点的坐标在凸体的局部坐标系下重建预设多边形棱柱。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当圆柱碰撞体转换的预设多边形棱柱变换到凸体的局部坐标系后不为圆柱 碰撞体,则对预设多边形棱柱在凸体的局部坐标系下的各个顶点进行投影,取 极值做差得到圆柱碰撞体的投影长度。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当圆柱碰撞体转换的预设多边形棱柱变换到凸体的局部坐标系后仍为圆柱 碰撞体,则获取圆柱碰撞体的半径、半高、圆柱碰撞体的XYZ三个轴的基向量 变换到凸体的局部坐标系下对应的坐标基向量以及测试轴在圆柱碰撞体的局部 坐标系下的测试轴方向计算圆柱碰撞体的投影长度。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述方法还包 括:
当测试轴平行于圆柱碰撞体的竖直轴,则获取圆柱碰撞体的XYZ三个轴的 基向量变换到凸体的局部坐标系下对应的坐标基向量的Z轴基向量的长度与半 高的乘积作为圆柱碰撞体的投影长度;
当测试轴垂直于圆柱碰撞体的竖直轴,则获取圆柱碰撞体的XYZ三个轴的 基向量变换到凸体的局部坐标系下对应的坐标基向量的X、Y轴基向量的长度 中较大的一个,再与圆柱碰撞体半径的乘积作为圆柱碰撞体的投影长度。
6.根据权利要求1至4中任一项所述的方法,其特征在于,所述预设多边 形为内接圆柱碰撞体底面的正多边形。
7.根据权利要求6所述的方法,其特征在于,所述正多边形为偶数条边的 正多边形,则获取所述预设多边形的边方向时,从预设多边形棱柱的上下底面 的两个预设多边形中的一个预设多边形选取基于中心不对称的边方向,所述获 取棱柱的棱的边方向时选一条棱的边方向。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510864339.0/1.html,转载请声明来源钻瓜专利网。