一种基于移动探测器以控制3D模型移动的系统及方法与流程

文档序号:12126637阅读:232来源:国知局
一种基于移动探测器以控制3D模型移动的系统及方法与流程

本发明属于3D虚拟现实建模的技术领域,具体地说,涉及一种基于移动探测器以控制3D模型移动的系统及方法。



背景技术:

随着人们追求更加逼真的虚拟现实的体验的欲望的愈发强烈,3D的虚拟现实技术也随之普及。尤其在现有的居室3D模型建模技术中,常常涉及对家具的平移操作,对于某些特殊的家具的位置是时常依赖于支撑物的,即其平移后不能脱离支撑物,如:茶几上的茶具、电视柜上的电视等;但在现在的技术中,都是通过人工检测与人工纠正的方法以控制平移正确性,即当操作者发现3D模型经过平移后已离开支撑物时,需要操作者再将按原来的平移路线将其恢复到支撑物上;这种人工检测与人工纠正的方式既不方便也不准确,大大增加了用户对3D建模的操作成本。



技术实现要素:

1、要解决的问题

针对现有3D模型建模时采用人工对3D模型平移操作复杂、精度差的问题,本发明提供一种基于移动探测器以控制3D模型移动的系统,以及通过该系统控制3D模型移动的方法,降低了人工对3D模型平移的操作难度,提高了移动精度。

2、技术方案

为解决上述问题,本发明采用如下的技术方案。

一种基于移动探测器以控制3D模型移动的系统,包括3D模型建立器、3D模型位移捕捉器、3D模型移动探测器和3D模型节点坐标计算器;所述的3D模型建立器单向连接所述的3D模型移动探测器;所述的3D模型位移捕捉器单向连接所述的3D模型移动探测器;所述的3D模型移动探测器单向连接所述的3D模型节点坐标计算器。

优选地,所述的3D模型建立器用于计算3D模型的OBB包围盒各节点坐标和移动物参考点坐标,并将所述的OBB包围盒各节点坐标和移动物参考点坐标传输给所述的3D模型移动探测器。

优选地,所述的3D模型位移捕捉器是一种用于捕捉控制所述的移动物3D模型的位移的坐标,并将此控制所述的移动物3D模型的位移的坐标传输给所述的3D模型移动探测器的模块。

优选地,所述的3D模型移动探测器是一种探测移动物3D模型的位移的合理性的模块。

优选地,所述的3D模型节点坐标计算器是一种根据探测值判断是否对移动物3D模型各节点坐标进行平移的模块。

一种基于移动探测器以控制3D模型移动的方法,包括如下步骤:

步骤1.初始化3D模型;通过3D模型建立器将支撑物3D模型的OBB包围盒各节点坐标和移动物的参考点的坐标一并传输给所述的3D模型移动探测器;

步骤2.捕捉控制移动物3D模型的位移的坐标;通过所述的3D模型位移捕捉器从屏幕中捕捉控制所述的移动物3D模型的位移的坐标,并将控制所述的移动物3D模型的位移的坐标传输给所述的3D模型移动探测器;

步骤3.探测控制移动物3D模型的位移的合理性;通过3D模型移动探测器将移动物3D模型的位移的合理性的探测值传输给所述的3D模型节点坐标计算器;

步骤4.根据步骤3中所述的探测值移动移动物3D模型。

优选地,步骤1中所述的支撑物3D模型的OBB包围盒各节点坐标的获取方法是:首先通过所述的3D模型建立器获取支撑物3D模型各节点的坐标,再根据所述的支撑物3D模型各节点的坐标计算出所述的支撑物3D模型的OBB包围盒各节点坐标。

优选地,步骤1中所述的参考点的坐标的获取方法是:首先通过所述的3D模型建立器获取移动物3D模型各节点的坐标,根据所述的移动物3D模型各节点的坐标计算所述的移动物3D模型的OBB包围盒各节点坐标;再从所述的移动物3D模型的OBB包围盒中选取一点作为参考点。

优选地,步骤3中所述的控制移动物3D模型的位移的合理性的探测的具体方法是:

(一)所述的3D模型移动探测器接收步骤1中所述的3D模型建立器获取的所述的支撑物3D模型的OBB包围盒各节点坐标和所述的参考点的坐标、接收步骤2中3D模型位移捕捉器获取的控制所述的移动物3D模型的位移的坐标;

(二)从支撑物3D模型的OBB包围盒平面中获取支撑面的多边形各节点坐标,即支撑物3D模型的OBB包围盒的6个平面中正对着移动物3D模型的那个平面即为支撑面,设此支撑面的多边形的各节点坐标为group_brace_flat;

(三)上述步骤(一)中所述的参考点设为P,P在XYZ轴上的坐标为(Xp,Yp,Zp),控制所述的移动物3D模型的位移的坐标在XYZ轴上为(Xt,Yt,Zt),P经过控制所述的移动物3D模型的位移进行移动后的点设为P1,P1的坐标为P的坐标加上控制所述的移动物3D模型的位移的坐标,即P1的坐标为(Xp+Xt,Yp+Yt,Zp+Zt);

(四)将上述步骤(三)中P1的坐标向步骤(二)中所述的支撑面进行垂直投影,投影后的点设为P2,对P2是否在所述的group_brace_flat中进行判断,获得判断值,所述的判断值即为移动物3D模型的位移的合理性的探测值;将所述的探测值传输给所述的3D模型节点坐标计算器。

优选地,步骤4中根据探测值移动移动物3D模型的具体方法是:所述的P2落在所述的group_brace_flat中,则对移动物3D模型所有节点坐标进行平移,否则不对移动物3D模型各节点坐标进行平移。

3、有益效果

相比于现有技术,本发明的有益效果为:

(1)本发明提供了3D模型移动探测器,即发明了一种全新的自动探测信息模型,基于这种自动探测的信息模型可以做到对出移动物3D模型的移动合理性进行提前探测,解决了现有技术中都是通过人工检测与人工纠正的方法以控制平移正确性的问题;

(2)本发明提供了3D模型节点坐标计算器,即根据移动合理性探测值控制移动物3D模型各节点坐标平移计算的方法,是对现有3D模型节点坐标计算器的增强,解决了现有技术中不能根据移动合理性探测值控制移动的问题;

(3)本发明在居室3D模型中对一个支撑物上的家具3D模型进行平移时,能够做到对3D家具模型是否满足平移条件进行自动预先探测,大大降低了用户对3D建模的操作成本,提升了用户对3D模型的操作体验。

附图说明

图1为本发明的3D模型平移示意图;

图中:1、参考点;2、移动物3D模型;3、支撑物3D模型;4、支撑平面。

图2为本发明系统模块连接结构图;

图3为本发明的算法流程图。

具体实施方式

下面结合附图对本发明进行详细描述。

一种基于移动探测器以控制3D模型移动的系统,包括3D模型建立器、3D模型位移捕捉器、3D模型移动探测器、3D模型节点坐标计算器四个模块;

如图2所示,所述的3D模型建立器单向连接所述的3D模型移动探测器;所述的3D模型位移捕捉器单向连接所述的3D模型移动探测器;所述的3D模型移动探测器单向连接所述的3D模型节点坐标计算器;

所述的3D模型建立器是一种如下模块:根据支撑物3D模型各节点的坐标计算OBB包围盒各节点坐标;根据移动物3D模型各节点的坐标计算OBB包围盒各节点坐标,并在此OBB包围盒内选取一点作为移动物的参考点;将支撑物3D模型的OBB包围盒各节点坐标和移动物参考点坐标一并传输给3D模型移动探测器;如图1展示了在移动物3D模型2的OBB包围盒内选取一点作为参考点1;图1同时展示了支撑物3D模型3和移动物3D模型2以及支撑平面4的位置关系;

所述的3D模型位移捕捉器是一种如下模块:用于捕捉控制所述的移动物3D模型的位移的坐标,并将此控制所述的移动物3D模型的位移的坐标传输给所述的3D模型移动探测器;

所述的3D模型移动探测器是一种如下模块:根据从3D模型建立器获取的支撑物3D模型的OBB包围盒各节点坐标和移动物参考点坐标以及从3D模型位移捕捉器获取的控制所述的移动物3D模型的位移的坐标探测移动物3D模型的位移的合理性;并将计算后的位移的合理性的探测结果传输给3D模型节点坐标计算器;

所述的3D模型节点坐标计算器是一种如下模块:根据从3D模型移动探测器获取的位移的合理性探测结果判断是否对移动物3D模型各节点坐标进行平移。

一种基于移动探测器以控制3D模型移动的方法,如图3所示,包括如下步骤:

步骤1.初始化3D模型;

首先通过所述的3D模型建立器获取支撑物3D模型各节点的坐标,根据所述的支撑物3D模型各节点的坐标计算出所述的支撑物3D模型的OBB包围盒各节点坐标;通过所述的3D模型建立器获取移动物3D模型各节点的坐标,根据所述的移动物3D模型各节点的坐标计算所述的移动物3D模型的OBB包围盒各节点坐标;再从所述的移动物3D模型的OBB包围盒中选取一点作为参考点;将所述的支撑物3D模型的OBB包围盒各节点坐标和所述的参考点的坐标一并传输给所述的3D模型移动探测器;

步骤2.捕捉控制移动物3D模型的位移的坐标;

通过所述的3D模型位移捕捉器从屏幕中捕捉控制所述的移动物3D模型的位移的坐标,并将控制所述的移动物3D模型的位移的坐标传输给所述的3D模型移动探测器;

步骤3.探测控制移动物3D模型的位移的合理性;具体包括如下步骤:

(一)所述的3D模型移动探测器接收步骤1中所述的3D模型建立器获取的所述的支撑物3D模型的OBB包围盒各节点坐标和所述的参考点的坐标、接收步骤2中3D模型位移捕捉器获取的控制所述的移动物3D模型的位移的坐标;

(二)从支撑物3D模型的OBB包围盒平面中获取支撑面的多边形各节点坐标,即支撑物3D模型的OBB包围盒的6个平面中正对着移动物3D模型的那个平面即为支撑面,设此支撑面的多边形的各节点坐标为group_brace_flat;

(三)上述步骤(一)中所述的参考点设为P,P在XYZ轴上的坐标为(Xp,Yp,Zp),控制所述的移动物3D模型的位移的坐标在XYZ轴上为(Xt,Yt,Zt),P经过控制所述的移动物3D模型的位移进行移动后的点设为P1,P1的坐标为P的坐标加上控制所述的移动物3D模型的位移的坐标,即P1的坐标为(Xp+Xt,Yp+Yt,Zp+Zt);

(四)将上述步骤(三)中P1的坐标向步骤(二)中所述的支撑面进行垂直投影,投影后的点设为P2,对P2是否在所述的group_brace_flat中进行判断,获得判断值,所述的判断值即为移动物3D模型的位移的合理性的探测值,此探测值记录了P2是否落在group_brace_flat中;将所述的探测值传输给所述的3D模型节点坐标计算器;

步骤4.根据步骤3中所述的探测值移动移动物3D模型;

所述的3D模型节点坐标计算器接收从所述的3D模型移动探测器获取的所述的探测值,如果所述的探测值表示P2仍落在所述的group_brace_flat中,则对移动物3D模型所有节点坐标进行平移,如果所述的探测值表示P2未落在所述的group_brace_flat中,则不对移动物3D模型各节点坐标进行平移。

下面结合具体实施例对本发明进一步进行描述。

实施例1

本实施例以电视柜上的电视的平移为说明如下。

一种基于移动探测器以控制3D模型移动的方法,包括如下步骤:

步骤1.初始化3D模型;

首先通过所述的3D模型建立器获取电视柜3D模型各节点的坐标,根据所述的电视柜3D模型各节点的坐标计算出所述的电视柜3D模型的OBB包围盒各节点坐标;通过所述的3D模型建立器获取电视3D模型各节点的坐标,根据所述的电视3D模型各节点的坐标计算所述的电视3D模型的OBB包围盒各节点坐标;再从所述的电视3D模型的OBB包围盒中选取一点作为参考点;将所述的电视柜3D模型的OBB包围盒各节点坐标和所述的参考点的坐标一并传输给所述的3D模型移动探测器;

步骤2.捕捉控制移动物3D模型的位移的坐标;

通过所述的3D模型位移捕捉器从屏幕中捕捉控制所述的电视3D模型的位移的坐标,并将控制所述的电视3D模型的位移的坐标传输给所述的3D模型移动探测器;

步骤3.探测控制移动物3D模型的位移的合理性;具体包括如下步骤:

(一)所述的3D模型移动探测器接收步骤1中所述的3D模型建立器获取的所述的电视柜3D模型的OBB包围盒各节点坐标和所述的参考点的坐标、接收步骤2中3D模型位移捕捉器获取的控制所述的电视3D模型的位移的坐标;

(二)从电视柜3D模型的OBB包围盒平面中获取支撑面的多边形各节点坐标,即电视柜3D模型的OBB包围盒的6个平面中正对着电视3D模型的那个平面即为支撑面,设此支撑面的多边形的各节点坐标为group_brace_flat;此多边形的各节点坐标的存储方式可以但不限于数组或链表;

(三)步骤(一)中所述的参考点设为P,P在XYZ轴上的坐标为(Xp,Yp,Zp),控制所述的电视3D模型的位移的坐标在XYZ轴上为(Xt,Yt,Zt),P经过控制所述的电视3D模型的位移进行移动后的点设为P1,P1的坐标为P的坐标加上控制所述的电视3D模型的位移的坐标,即P1的坐标为(Xp+Xt,Yp+Yt,Zp+Zt);

(四)将步骤(三)中P1的坐标向步骤(二)中所述的支撑面进行垂直投影,投影后的点设为P2,对P2是否在所述的group_brace_flat中进行判断,获得判断值,所述的判断值即为电视3D模型的位移的合理性的探测值;将所述的探测值传输给所述的3D模型节点坐标计算器;所述的探测值存储类型可以但不限于枚举型或者整数型或者字符串型;

步骤4.根据步骤3中所述的探测值移动移动物3D模型;

所述的3D模型节点坐标计算器接收从所述的3D模型移动探测器获取的所述的探测值,如果所述的探测值表示P2仍落在所述的group_brace_flat中,则对电视3D模型所有节点坐标进行平移,如果所述的探测值表示P2未落在所述的group_brace_flat中,则不对电视3D模型各节点坐标进行平移。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1