[发明专利]一种3D对象在虚拟场景中的节点化组织方法在审
申请号: | 201810475996.X | 申请日: | 2018-05-17 |
公开(公告)号: | CN108734788A | 公开(公告)日: | 2018-11-02 |
发明(设计)人: | 程正 | 申请(专利权)人: | 成都明镜视觉科技有限公司 |
主分类号: | G06T19/00 | 分类号: | G06T19/00 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 610041 四川省成都市*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 节点对象 虚拟场景 缩放 局部坐标系 世界坐标系 实际位置 属性位置 父节点 节点树 子节点 子节 渲染 场景 移动 | ||
一种3D对象在虚拟场景中的节点化组织方法,针对3D对象在场景中进行节点化的过程中所涉及的节点对象的三个属性位置(position)、旋转(rotation)、缩放(scale)以及局部坐标系(Local)和世界坐标系(World)进行处理,局部坐标系表示节点对象相对于父节点对象的位置、旋转以及缩放,世界坐标系表示节点对象在3D空间中的实际位置、旋转以及缩放;所述3D对象在虚拟场景中的节点化组织方法包括对节点对象进行定义、对节点进行渲染处理对新生节点的处理、将一个节点树分支下的子节或者子节点树移动到另一个节点下的处理四个部分。
技术领域
本发明涉及计算机图形技术领域,具体来说,3D对象在虚拟场景中节点化组织方法的技术实现。
背景技术
3D场景中组织虚拟节点的一种方式是扁平化的组织方式,即所有的节点处于平行位置,相互之间没有父子关系,修改一个节点的属性不会影响其他节点,由于这种组织方式计算量相对较少,也不用考虑其他节点的变化带来的一些额外的判断(通常是由节点的不均等缩放造成的矩阵计算问题),所以一般的模型展示引擎普遍采用这种组织方式,但是这种组织方式的缺点也同样明显,在大型复杂环境下,对象与对象之间存在明显的层级关系,如餐桌上的茶杯,这时如果要正确的让茶杯随着餐桌一同运动,则需要分别设置餐桌对象和茶杯对象的属性才能并且在设置茶杯的属性时还需要考虑餐桌的运动才能呈现出正确的效果,这样对于有复杂层级关系的大型应用来说是致命的,而且现有技术只在PC端3D引擎中实现,所以为了应对复杂的场景应用,需要设计一套能够处理复杂层级关系的场景组织方法,实现节点对象在节点树中变化后渲染形态一致的技术。
发明内容
为了达到上述目的,本发明提供一种3D对象在虚拟场景中的节点化组织方法,针对3D对象在场景中进行节点化的过程中所涉及的节点对象的三个属性位置(position)、旋转(rotation)、缩放(scale)以及局部坐标系(Local)和世界坐标系(World)进行处理,局部坐标系表示节点对象相对于父节点对象的位置、旋转以及缩放,世界坐标系表示节点对象在3D空间中的实际位置、旋转以及缩放;所述3D对象在虚拟场景中的节点化组织方法包括对节点对象进行定义、对节点进行渲染处理对新生节点的处理、将一个节点树分支下的子节或者子节点树移动到另一个节点下的处理四个部分;其中,对节点对象进行定义,包括如下几个步骤;
s11、用position、rotation以及scale分别表示节点对象在世界坐标系下的位置、旋转以及缩放;
s12、用localPosition、localRotation、localScale分别表示节点对象在局部坐标系下的位置、旋转以及缩放;
s13、节点对象通过_parent属性设置其父节点,通过_children数组索引其子节点,以建立节点数的双向链表,保证从任意一个节点可以遍历到整颗节点树;并且提供了iterateUp以及iterateDown调用分别用来从当前节点向上遍历到场景节点树的根节点,以及向下遍历该节点的所有子节点;
对节点进行渲染,是通过分别计算出节点的position、rotation、scale属性值来组成矩阵传给渲染引擎进行渲染实现的;其中,position、rotation、scale的计算均需要调用iterateUP遍历其所有父节点通过localPosition计算出最终的position、rotation和scale,切rotation的计算需要使用四元数;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都明镜视觉科技有限公司,未经成都明镜视觉科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810475996.X/2.html,转载请声明来源钻瓜专利网。