一种基于3D模型绑定关系库对多个3D模型绑定操作的系统和方法与流程

文档序号:11407719阅读:174来源:国知局
一种基于3D模型绑定关系库对多个3D模型绑定操作的系统和方法与流程

本发明涉及一种对多个3d模型进行统一操作的3d虚拟现实建模,特别涉及一种基于3d模型绑定关系库对多个3d模型绑定操作的系统和方法,尤其涉及在对多个3d模型进行以整体的方式进行操作时,只需要对此多个3d模型组合绑定,当对其中任意一个3d模型进行操作操作时,其他3d模型与被操作的3d模型形成统一的整体一起进行操作的方法。



背景技术:

随着人们追求更加逼真虚拟现实体验的强烈欲望,3d的虚拟现实技术也随之普及。比如在现有的居室3d模型建模技术中,常常涉及对多个家具的3d模型需要以整体的方式进行移动或旋转操作。在现有的技术中,都是通过人工对其多个家具的3d模型挨个进行相同的重复移动或旋转操作以达到整体的平移或旋转的效果,这种单调重复的操作大大增加了用户对3d建模的操作成本,也更容易出现误差。



技术实现要素:

1.发明要解决的技术问题

针对现有技术中所提及的在模型建模中,涉及对多个3d模型需要以整体的方式进行移动或旋转操作时,都是通过人工对其多个的3d模型挨个进行相同的重复操作以达到整体的平移或旋转或控制等统一效果的问题;本发明提供了一种基于3d模型绑定关系库对多个3d模型绑定操作的系统和方法,在3d模型中对多个3d模型进行以整体的方式进行移动或旋转或控制等操作时,只需要对此多个3d模型组合绑定,当对其中任意一个3d模型进行操作时,其他3d模型与被操作的3d模型形成统一的整体一起进行操作的方法。

2.技术方案

一种基于3d模型绑定关系库对多个3d模型绑定操作的系统和方法的技术方案进行了充分公开,其技术方案如下:

一种基于3d模型绑定关系库对多个3d模型绑定操作的方法,其步骤包括:

步骤1,捕捉操作信息:通过3d模型操作捕捉器从屏幕中捕捉控制移动物3d模型的操作信息,所述的操作信息包括:操作对象标识、操作类型和操作值;所述的操作对象就是指被操作的3d模型,即移动物3d模型;操作类型包括:绑定操作或移动操作或旋转操作或控制操作。绑定操作时的操作值为多个被绑定的3d模型的对象标识以及各被绑定的3d模型之间的关联方向信息(所谓对象标识就是区别于其他3d模型的唯一标记,即通过对象标识可以找到一个3d模型);当移动操作时的操作值为3d模型位移坐标值,当旋转操作时的操作值为3d模型的旋转角度;当控制操作时的操作值为控制指令,此控制指令如:开启或者关闭等;3d模型操作捕捉器将绑定操作的若干个3d模型的对象标识传输给3d模型绑定关系库,并将移动操作、旋转操作或控制操作操作信息传输3d模型绑定操作器;

步骤2,初始化绑定关系库:3d模型绑定关系库从3d模型操作捕获器中获取绑定操作的若干个3d模型的对象标识,将此若干个3d模型的对象标识进行绑定,以建立并记录它们之间的绑定关系信息;此绑定关系信息由被绑定的所有3d模型的对象标识组成;此绑定关系信息唯一标记不同的绑定关系组,即在同一个绑定关系组下的3d模型对应绑定关系信息相同,如果一个绑定关系组下所包括的所有3d模型对象标识与另一个绑定关系组下所包括的所有3d模型对象标识完全相同,则认为此两个绑定关系组为同一个绑定关系组,因此可以通过3d模型找到对应的此绑定关系信息,根据此绑定关系信息查询到一起绑定的3d模型;并将绑定关系信息传输给3d模型绑定操作器;

步骤3,统一操作:3d模型绑定操作器从3d模型绑定关系库中获取的绑定关系信息以及从3d模型操作捕获器中获取操作信息,从操作信息中获取操作对象标识(此操作对象即为被操作的3d模型),再根据此操作对象标识从3d模型绑定关系库获取对应的绑定关系信息,再根据此绑定关系信息可以查询到与被操作的3d模型一起绑定的其他3d模型;从操作信息中获取操作类型,并根据操作类型进行处理。

如果操作类型为移动操作,3d模型绑定操作器从操作信息中获取移动操作时的操作值,假设所操作值对应的位移坐标为t,然后从被操作的3d模型以及所有与被操作的3d模型一起绑定的其他3d模型获取其所有的节点坐标,此所有的节点坐标即为被绑定一起的所有3d模型整体的节点坐标,并对此所有的节点坐标进行平移,即将所有的节点坐标与位移坐标t相加,此平移后的坐标即为移动操作后的坐标;

如果操作类型为旋转操作,从操作信息中获取旋转操作时的操作值,假设所操作值对应的旋转角度为a,然后从被操作的3d模型以及所有与被操作的3d模型一起绑定的其他3d模型获取其所有的节点坐标,此所有的节点坐标即为被绑定一起的所有3d模型整体的节点坐标,对此所有的节点坐标重新计算obb包围盒,此重新计算的obb包围盒即为所有被绑定一起的所有3d模型对应的整体obb包围盒,然后根据以经过此整体的obb包围盒的中心或者以被指定的3d模型中的某一点为旋转中心并将此中心向旋转面投影,此投影线为旋转轴、、并以旋转角度为a对此被绑定一起的所有3d模型整体的节点坐标进行旋转(围绕某点为中心对节点坐标进行旋转的方法在现有技术中已有公开,本发明不再赘述),此旋转后的坐标即为旋转操作后的坐标;

如果操作类型为控制操作,从操作信息中获取操作值,此操作值为控制指令,然后根据此控制指令挨个对被操作的3d模型以及所有与被操作的3d模型一起绑定的其他3d模型进行逐一控制,以至被绑定在一起的3d模型都可以根据控制指令进行统一动作(根据控制指令进行动作的方法在现有技术中已有公开,本发明不再赘述);

一种基于3d模型绑定关系库对多个3d模型绑定操作的系统,包括3个模块,3d模型操作捕获器、3d模型绑定关系库和3d模型绑定操作器,其中3d模型操作捕捉器捕捉控制移动物3d模型的操作信息,将绑定操作的操作信息传输给3d模型绑定关系库,并将移动操作、旋转操作或控制操作操作信息传输3d模型绑定操作器,3d模型绑定关系库将绑定关系信息传输给3d模型绑定操作器。

3d模型操作捕获器:捕获对3d模型的操作信息,操作信息包括:操作对象标识、操作类型和操作值;操作对象就是指被操作的3d模型,操作类型就是对3d模型各种操作的标记,其包括但不限于:绑定操作或移动操作或旋转操作或控制操作,当绑定操作时的操作值为多个被绑定的3d模型的对象标识以及各被绑定的3d模型之间的关联方向信息,当移动操作时的操作值为3d模型位移坐标值,当旋转操作时的操作值为3d模型的旋转角度,当控制操作时的操作值为控制指令,此控制指令如:开启或者关闭等;并将绑定操作的操作信息传输给3d模型绑定关系库,将移动操作、旋转操作或控制操作操作信息传输3d模型绑定操作器;

3d模型绑定关系库:对若干个需要一起操作的3d模型建立绑定关系,此绑定关系信息由被绑定的所有3d模型的对象标识以及各对象标识之间的关联方向信息组成(所谓3d模型的对象标识是区别于其他3d模型的标记,即唯一标识某个3d模型的标记);因此通过3d模型找到对应的此绑定关系信息,根据此绑定关系信息可以查询到一起绑定的3d模型;并将绑定关系信息传输给3d模型绑定操作器;所述3d模型绑定关系库具有特性:

合理性:同一个绑定关系组内所包含的3d模型对象标识唯一;例如:绑定关系信息a所包含的3d模型对象标识分别为:对象标识a和对象标识b以及对象标识c,只有对象标识a与对象标识b与对象标识c两两皆不相等才被视为合理的绑定关系信息;如果两个对象标识相同或相关联则视为一个3d模型与自已关联,这是不符合常理的,即被视为异常的绑定关系信息;

有方向性:同一个绑定关系组内所包含两两3d模型之间的关联方向分为单向的与双向的;例如:绑定关系信息a包含有两个3d模型,此两个3d模型的对象标识分别为3d模型对象标识1和3d模型对象标识2,如果3d模型对象标识1可以查询到3d模型对象标识2但3d模型对象标识2无法查询到3d模型对象标识1,则被视为单向的;如果3d模型对象标识1可以查询到3d模型对象标识2,且3d模型对象标识2也可以查询到3d模型对象标识1,则被视为双向的;

绑定关系传递性:当对任意两个3d模型进行绑定关联时,此两个3d模型所属的绑定关系组将会通过此两个3d模型的绑定关联而自动对关系组与关系组或关系组与3d模型之间进行绑定关联(如果被绑定关联的3d模型皆属于不同的关系组,即此3d模型有与其他3d模型的关联关系,则绑定关联发生在关系组与关系组之间;如果被绑定关联的某一个3d模型不属于关系组,即此3d模型没有与其他3d模型的关联关系,则绑定关联发生在关系组与3d模型之间),此时关系组与关系组或关系组与3d模型之间便形成了关系组的关联关系从内部向外部的传递。

唯一性:绑定关系信息唯一标记不同的绑定关系组,只有同时满足以下三个条件才被视为相同的绑定关系信息:

条件一:不同绑定关系组之间所包含的3d模型对象标识的数目相等;例如:绑定关系信息a所包含的3d模型对象标识有m个,绑定关系信息b所包含的3d模型对象标识有n个,如果m值与n的值不等,则绑定关系信息a和绑定关系信息b不是同一个绑定关系信息;如果m值与n的值相等,则此条件校验通过;

条件二:不同绑定关系组之间所包含的3d模型对象标识的值相同;例如:绑定关系信息a所包含的3d模型对象标识分别为:对象标识a和对象标识b以及对象标识c,如果绑定关系信息b中没有包含对象标识a或者对象标识b或者对象标识c,则绑定关系信息a和绑定关系信息b不是同一个绑定关系信息;如果绑定关系信息b中包含对象标识a和对象标识b和对象标识c,则此条件校验通过;

条件三:不同绑定关系组之间所包含的3d模型对象的关联方向相同;例如:从绑定关系信息a中任意获取3d模型对象标识分别为:对象标识a和对象标识b;从绑定关系信息b获取对应的3d模型对象标识分别也为:对象标识a和对象标识b;如果绑定关系信息a中的根据对象标识a可以找到对象标识b但根据对象标识b不能找到对象标识a,此属于单向关联;因此,只有绑定关系信息b中的根据对象标识a可以找到对象标识b且根据对象标识b不能找到对象标识a,则绑定关系信息a与绑定关系信息b被视为同一个绑定关系信息,否则绑定关系信息a与绑定关系信息b不是同一个绑定关系信息;如果绑定关系信息a中根据对象标识a可以找到对象标识b且根据对象标识b也可以找到对象标识a,此属于双向关联;因此,只有绑定关系信息b中根据对象标识a可以找到对象标识b且根据对象标识b也可以找到对象标识a,则绑定关系信息a与绑定关系信息b被视为同一个绑定关系信息,否则绑定关系信息a与绑定关系信息b不是同一个绑定关系信息;

3d模型绑定控制器:根据从3d模型绑定关系库中获取的绑定关系信息以及从3d模型操作捕获器中获取操作信息,根据操作信息中获取的被操作的3d模型的对象标识从绑定关系信息中查询与其绑定的其他3d模型的对象标识,并对被操作的3d模型以及与其绑定的3d模型进行统一操作。

3.有益效果

(1)本发明通过3d模型绑定关系库,即通过一种对多个3d模型组合绑定以建立起相互关联的关系模型库,解决了现有技术中需要通过人工对多个3d模型进行挨个操作的问题,为多个3d模型作为可以被统一操作的整体提供了基础;

(2)本发明提供了3d模型绑定操作器,即发明了基于3d模型绑定关系库可以通过对其中任意一个3d模型进行操作以控制被绑定的其他3d模型一起被操作,解决了现有技术中需要通过人工对多个3d模型挨个进行相同的重复被操作的问题,以至当对其中任意一个3d模型进行被操作时,其他3d模型与被操作的3d模型形成统一的整体一起进行被操作;

综上,本发明尤其涉及在3d模型中对多个3d模型进行以整体的方式进行被操作时,只需要对此多个3d模型组合绑定,当对其中任意一个3d模型进行被操作时,其他3d模型与被操作的3d模型形成统一的整体一起进行被操作的方法,不再需要通过人工对多个3d模型进行挨个进行相同的重复操作,这便大大降低了用户对3d建模的操作成本,提升了用户对3d模型的操作体验。

附图说明

图1为本发明的多个3d模型整体平移或旋转的示意图;

图2为本发明所涉及的系统模块图以及连接关系图;

图3为本发明方所涉及的方法流程图。

具体实施方式

实施例1:

以居室3d模型,对放置电视的电视柜与电视进行单向绑定并对其进行平移或旋转操作为例:

如图2所示,基于3d模型绑定关系库对多个3d模型绑定操作的系统,包括3d模型操作捕获器、3d模型绑定关系库和3d模型绑定操作器,其中3d模型操作捕捉器捕捉控制移动物3d模型的操作信息,将绑定操作的操作信息传输给3d模型绑定关系库,并将移动操作、旋转操作或控制操作操作信息传输3d模型绑定操作器,3d模型绑定关系库将绑定关系信息传输给3d模型绑定操作器。

其中3d模型操作捕获器:捕获对3d模型的操作信息,操作信息包括:操作对象标识、操作类型和操作值;操作对象就是指被操作的3d模型,操作类型就是对3d模型各种操作的标记,其包括但不限于:绑定操作或移动操作或旋转操作或控制操作,当绑定操作时的操作值为多个被绑定的3d模型的对象标识以及各被绑定的3d模型之间的关联方向信息,当移动操作时的操作值为3d模型位移坐标值,当旋转操作时的操作值为3d模型的旋转角度,当控制操作时的操作值为控制指令,此控制指令如:开启或者关闭等;并将绑定操作的操作信息传输给3d模型绑定关系库,将移动操作、旋转操作或控制操作的操作信息传输3d模型绑定操作器。

3d模型绑定关系库:对若干个需要一起操作的3d模型建立绑定关系,此绑定关系信息由被绑定的所有3d模型的对象标识以及各对象标识之间的关联方向信息组成(所谓3d模型的对象标识是区别于其他3d模型的标记,即唯一标识某个3d模型的标记);因此通过3d模型的对象标识找到对应的此绑定关系信息,根据此绑定关系信息可以查询到一起绑定的3d模型;并将绑定关系信息传输给3d模型绑定操作器;所述3d模型绑定关系库具有特性:合理性:同一个绑定关系组内所包含的3d模型对象标识唯一;例如:绑定关系信息a所包含的3d模型对象标识分别为:对象标识a和对象标识b以及对象标识c,只有对象标识a与对象标识b与对象标识c两两皆不相等才被视为合理的绑定关系信息;如果两个对象标识相同、相关联则视为一个3d模型与自己关联,这是不符合常理的,即被视为异常的绑定关系信息;有方向性:同一个绑定关系组内所包含两两3d模型之间的关联方向分为单向的与双向的;例如:绑定关系信息a包含有两个3d模型,此两个3d模型的对象标识分别为3d模型对象标识1和3d模型对象标识2,如果3d模型对象标识1可以查询到3d模型对象标识2但3d模型对象标识2无法查询到3d模型对象标识1,则被视为单向的;如果3d模型对象标识1可以查询到3d模型对象标识2,且3d模型对象标识2也可以查询到3d模型对象标识1,则被视为双向的;绑定关系传递性:当对任意两个3d模型进行绑定关联时,此两个3d模型所属的绑定关系组将会通过此两个3d模型的绑定关联而自动对关系组与关系组或关系组与3d模型之间进行绑定关联(如果被绑定关联的3d模型皆属于不同的关系组,即此3d模型有与其他3d模型的关联关系,则绑定关联发生在关系组与关系组之间;如果被绑定关联的某一个3d模型不属于关系组,即此3d模型没有与其他3d模型的关联关系,则绑定关联发生在关系组与3d模型之间),此时关系组与关系组或关系组与3d模型之间便形成了关系组内部的关联关系向关系组外部的传递。唯一性:绑定关系信息唯一标记不同的绑定关系组,只有同时满足以下三个条件才被视为相同的绑定关系信息:

条件一:不同绑定关系组之间所包含的3d模型对象标识的数目相等;例如:绑定关系信息a所包含的3d模型对象标识有m个,绑定关系信息b所包含的3d模型对象标识有n个,如果m值与n的值不等,则绑定关系信息a和绑定关系信息b不是同一个绑定关系信息;如果m值与n的值相等,则此条件校验通过;

条件二:不同绑定关系组之间所包含的3d模型对象标识的值相同;例如:绑定关系信息a所包含的3d模型对象标识分别为:对象标识a和对象标识b以及对象标识c,如果绑定关系信息b中没有包含对象标识a或者对象标识b或者对象标识c,则绑定关系信息a和绑定关系信息b不是同一个绑定关系信息;如果绑定关系信息b中包含对象标识a和对象标识b和对象标识c,则此条件校验通过;

条件三:不同绑定关系组之间所包含的3d模型对象的关联方向相同;例如:从绑定关系信息a中任意获取3d模型对象标识分别为:对象标识a和对象标识b;从绑定关系信息b获取对应的3d模型对象标识分别也为:对象标识a和对象标识b;如果绑定关系信息a中的根据对象标识a可以找到对象标识b但根据对象标识b不能找到对象标识a,此属于单向关联;因此,只有绑定关系信息b中的根据对象标识a可以找到对象标识b且根据对象标识b不能找到对象标识a,则绑定关系信息a与绑定关系信息b被视为同一个绑定关系信息,否则绑定关系信息a与绑定关系信息b不是同一个绑定关系信息;如果绑定关系信息a中根据对象标识a可以找到对象标识b且根据对象标识b也可以找到对象标识a,此属于双向关联;因此,只有绑定关系信息b中根据对象标识a可以找到对象标识b且根据对象标识b也可以找到对象标识a,则绑定关系信息a与绑定关系信息b被视为同一个绑定关系信息,否则绑定关系信息a与绑定关系信息b不是同一个绑定关系信息;

3d模型绑定控制器:根据从3d模型绑定关系库中获取的绑定关系信息以及从3d模型操作捕获器中获取操作信息,根据操作信息中获取的被绑定的3d模型的对象标识从绑定关系信息中查询与其绑定的其他3d模型的对象标识,并对被操作的3d模型以及与其绑定的3d模型进行统一操作。基于3d模型绑定关系库对多个3d模型绑定操作的的方法,如图2和3所示:

本例中涉及一个电视柜3d模型与一个电视3d模型,将电视柜与电视对应的3d模型的对象标识进行单向绑定后,当对电视柜3d模型进行操作时,与其绑定的电视3d模型也被一起操作;当对电视3d模型进行操作时,与其绑定的电视柜将不被一起操作;

步骤1.捕捉操作信息。3d模型位移捕捉器从屏幕中捕捉控制电视柜3d模型的操作信息,此操作信息包括:操作对象信息、操作类型和操作值;操作对象就是指被操作的那个3d模型,即电视柜,操作类型包括:绑定操作或移动操作或旋转操作或控制操作;本实施例所涉及的绑定操作,其操作值的3d模型的对象标识包括电视柜3d模型的对象标识和电视3d模型的对象标识,其操作值中的3d模型的各对象关联方向信息为可以根据电视柜3d模型的对象标识找到电视3d模型的对象标识,但不能由根据电视3d模型的对象标识找到电视柜3d模型的对象标识;本实施例所涉及的移动操作时,其操作值为3d模型位移坐标值;本实施例所涉及的旋转操作时,其操作值为3d模型的旋转角度;并将绑定操作的操作信息传输给3d模型绑定关系库,将移动操作、旋转操作或控制操作的操作信息传输3d模型绑定操作器;

步骤2.初始化绑定关系库。3d模型绑定关系库从3d模型操作捕获器中获取绑定操作的多个3d模型的对象标识以及各3d模型之间关系方向信息,此对象标识分别为电视柜3d模型的对象标识与电视3d模型的对象标识,3d模型之间关系方向信息为电视柜3d模型的对象标识与电视3d模型的对象标识单向关联;根据其3d模型之间关系方向信息将电视柜3d模型的对象标识与电视3d模型的对象标识进行绑定,以建立并记录它们之间的绑定关系信息;此被建立的绑定关系信息中的各对象标识之间的关联方向信息为可以根据电视柜3d模型的对象标识找到电视3d模型的对象标识,但不能由根据电视3d模型的对象标识找到电视柜3d模型的对象标识;并将绑定关系信息传输给3d模型绑定操作器;

步骤3.统一操作:绑定移动,3d模型绑定操作器从3d模型绑定关系库中获取的绑定关系信息以及从3d模型操作捕获器中获取操作信息,从操作信息中获取操作对象信息,此被操作的3d模型为电视柜。则根据此被操作的电视柜3d模型的对象标识从3d模型绑定关系库获取对应的找到对应的绑定关系信息,再根据此绑定关系信息可以查询到与被操作的3d模型一起绑定的其他3d模型,此被绑定的3d模型即为电视;如果被操作的是电视3d模型,根据被操作的电视3d模型的对象标识从3d模型绑定关系库获取对应的找到对应的绑定关系信息,从绑定关系信息中无法找到被绑定的电视柜3d模型的对象标识;从操作信息中获取操作类型,并根据不同的操作类型进行处理。

如果操作类型为移动操作,从操作信息中获取操作值,假设所操作值分别在x、y、z轴对应的位移坐标为(tx,ty,tz),然后从被操作的电视柜3d模型以及所有与被操作的3d模型一起绑定的电视3d模型获取其所有的节点坐标,此所有的节点坐标即为被绑定一起的所有3d模型整体的节点坐标,假设此节点分别在x、y、z轴的坐标为(px,py,pz),并对此所有的节点坐标进行平移,即将所有的节点坐标与位移坐标相加,此平移后分别在xyz轴上的坐标(px+tx,py+ty,pz+tz)即为移动操作后的坐标,如图1所示。

如果操作类型为旋转操作,从操作信息中获取操作值,假设所操作值对应的旋转角度为a,然后从被操作的电视柜3d模型以及所有与被操作的电视3d模型一起绑定的其他3d模型获取其所有的节点坐标,此所有的节点坐标即为被绑定一起的所有3d模型整体的节点坐标,对此所有的节点坐标重新计算obb包围盒,此重新计算的obb包围盒即为所有被绑定一起的所有3d模型对应的整体obb包围盒,然后根据以经过此整体的obb包围盒的中心或者以电视柜3d模型的中心并垂直于地面的直线为旋转轴、并以旋转角度为a对此被绑定一起的所有3d模型整体的节点坐标进行旋转(围绕某点为中心对节点坐标进行旋转的方法在现有技术中已有公开),此旋转后的坐标即为旋转操作后的坐标,如图1所示。

实施例2:

以对餐桌与餐椅进行双向绑定并对其进行平移或旋转操作为例:

基于3d模型绑定关系库以对多个3d模型统一进行操作的方法,如图2和3所示,基于3d模型绑定关系库对多个3d模型绑定操作的系统同实施例1:

本例中涉及一个餐桌3d模型与四个餐椅3d模型,将餐桌与餐椅对应的3d模型的对象标识进行双向绑定后,无论对餐桌还是对其中任意一个餐椅的3d模型进行操作时,与其绑定的其他3d模型也被一起操作;

步骤1.捕捉操作信息。3d模型位移捕捉器从屏幕中捕捉控制餐椅3d模型的操作信息,此操作信息包括:操作对象信息、操作类型和操作值;操作对象就是指被操作的那个3d模型,即餐椅,操作类型包括:绑定操作或移动操作或旋转操作或控制操作;本例所涉及的绑定操作,其操作值的3d模型的对象标识包括餐桌3d模型的对象标识和其他4个餐椅3d模型的对象标识,其操作值的3d模型中的各对象关联方向信息为双向关联系统,即可以根据其他的任意一个3d模型的对象标识查询到其他所有与其绑定的3d模型的对象标识;本例所涉及的移动操作时,其操作值为3d模型位移坐标值;本例所涉及的旋转操作时,其操作值为3d模型的旋转角度;并将绑定操作的操作信息传输给3d模型绑定关系库,将其他操作的操作信息传输3d模型绑定操作器;

步骤2.初始化绑定关系库。3d模型绑定关系库从3d模型操作捕获器中获取绑定操作的多个3d模型的对象标识以及各3d模型之间关系方向信息,此对象标识分别为一个餐桌3d模型的对象标识与四个桌椅3d模型的对象标识,3d模型之间关系方向信息为餐桌3d模型的对象标识与其他餐椅3d模型的对象标识双向关联;可以根据其他的任意一个3d模型的对象标识查询到其他所有与其绑定的3d模型的对象标识;并将绑定关系信息传输给3d模型绑定操作器;

步骤3.统一操作:3d模型绑定操作器从3d模型绑定关系库中获取的绑定关系信息以及从3d模型操作捕获器中获取操作信息,从操作信息中获取操作对象信息,此被操作的3d模型为餐椅。则根据此被操作的餐椅3d模型的对象标识从3d模型绑定关系库获取对应的找到对应的绑定关系信息,再根据此绑定关系信息可以查询到与被操作的3d模型一起绑定的其他3d模型,此被绑定的3d模型即为一个餐桌以及三个餐椅;从操作信息中获取操作类型,并根据不同的操作类型进行处理。

如果操作类型为移动操作,从操作信息中获取操作值,假设所操作值分别在x、y、z轴对应的位移坐标为(tx,ty,tz),然后从被操作的餐椅3d模型以及所有与被操作的3d模型一起绑定的其他模型获取其所有的节点坐标,此所有的节点坐标即为被绑定一起的所有3d模型整体的节点坐标,假设此节点分别在xyz轴的坐标为(px,py,pz),并对此所有的节点坐标进行平移,即将所有的节点坐标与位移坐标相加,此平移后分别在xyz轴上的坐标(px+tx,py+ty,pz+tz)即为移动操作后的坐标,如图1所示。

如果操作类型为旋转操作,从操作信息中获取操作值,假设所操作值对应的旋转角度为a,然后从被操作的餐椅3d模型以及所有与被操作的其他模型一起绑定的其他3d模型获取其所有的节点坐标,此所有的节点坐标即为被绑定一起的所有3d模型整体的节点坐标,对此所有的节点坐标重新计算obb包围盒,此重新计算的obb包围盒即为所有被绑定一起的所有3d模型对应的整体obb包围盒,然后根据以经过此整体的obb包围盒的中心并垂直于地面的直线为旋转轴、并以旋转角度为a对此被绑定一起的所有3d模型整体的节点坐标进行旋转(围绕某点为中心对节点坐标进行旋转的方法在现有技术中已有公开,本发明不再赘述),此旋转后的坐标即为旋转操作后的坐标,如图1所示。

实施例3:

以对照明灯与音响进行双向绑定并对其进行控制操作为例:

基于3d模型绑定关系库以对多个3d模型统一进行操作的方法,如图2和3所示,基于3d模型绑定关系库对多个3d模型绑定操作的系统同实施例1:

本例中涉及一个照明灯3d模型与一个音响3d模型,将照明灯与音响对应的3d模型的对象标识进行双向绑定后,无论对照明灯还是对音响的3d模型进行操作时,与其绑定的其他3d模型也被一起操作;

步骤1.捕捉操作信息。3d模型位移捕捉器从屏幕中捕捉控制照明灯3d模型的操作信息,此操作信息包括:操作对象信息、操作类型和操作值;操作对象就是指被操作的那个3d模型,即音响,操作类型包括:绑定操作或移动操作或旋转操作或控制操作;本例所涉及的绑定操作,其操作值的3d模型的对象标识包括照明灯3d模型的对象标识和音响3d模型的对象标识,其操作值的3d模型中的各对象关联方向信息为双向关联系统,即可以根据其他的任意一个3d模型的对象标识查询到其他所有与其绑定的3d模型的对象标识;当控制操作时的操作值为控制指令,此控制指令如:开启或者关闭等;并将绑定操作的操作信息传输给3d模型绑定关系库,将其他操作的操作信息传输3d模型绑定操作器;

步骤2.初始化绑定关系库。3d模型绑定关系库从3d模型操作捕获器中获取绑定操作的多个3d模型的对象标识以及各3d模型之间关系方向信息,此对象标识分别为一个照明灯3d模型的对象标识与一个音响3d模型的对象标识,3d模型之间关系方向信息为照明灯3d模型的对象标识与音响3d模型的对象标识双向关联;可以根据其他的任意一个3d模型的对象标识查询到其他所有与其绑定的3d模型的对象标识;并将绑定关系信息传输给3d模型绑定操作器;

步骤3.统一操作,3d模型绑定操作器从3d模型绑定关系库中获取的绑定关系信息以及从3d模型操作捕获器中获取操作信息,从操作信息中获取操作对象信息,此被操作的3d模型为照明灯。则根据此被操作的照明灯3d模型的对象标识从3d模型绑定关系库获取对应的找到对应的绑定关系信息,再根据此绑定关系信息可以查询到与被操作的3d模型一起绑定的其他3d模型,此被绑定的3d模型即为音响;从操作信息中获取操作类型,并根据不同的操作类型进行处理。

如果操作类型为控制操作,从操作信息中获取操作值,此操作值为控制指令,然后根据此控制指令挨个对被操作的3d模型以及所有与被操作的3d模型一起绑定的其他3d模型进行逐一控制,以至被绑定在一起的3d模型都可以根据控制指令进行统一动作(根据控制指令进行动作的方法在现有技术中已有公开,本发明不再赘述);假设控制指令为开启指令,则根据此控制指令挨个对被操作照明灯的3d模型以及所有与被操作的3d模型一起绑定的音响3d模型进行逐一开启控制,以至被绑定在一起的3d模型都可以根据控制指令进行统一动作;假设控制指令为关闭指令,则根据此控制指令挨个对被操作照明灯的3d模型以及所有与被操作的3d模型一起绑定的音响3d模型进行逐一关闭控制,以至被绑定在一起的3d模型都可以根据控制指令进行统一动作。

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