一种独立于三维场景空间的目标标签表现方法技术

技术编号:7542245 阅读:189 留言:0更新日期:2012-07-13 06:07
本发明专利技术一种独立于三维场景空间的目标标签表现方法:将目标的名称、类别、国籍、位置等属性信息,通过独立于三维场景空间的二维表层(overlay)显示在场景中。优点是:基于二维表层(overlay)的标签独立于三维场景,是叠加在三维场景空间之上的一个层,与三维场景空间不属于同一个坐标系,不随三维场景中摄像机的拖动或旋转而发生任何变换,对于观察者来说,基于overlay的标签显示始终面向观察者,而且当目标模型随场景摄像机远近移动而放大缩小时,标签大小始终保持不变,方便用户的观察。

【技术实现步骤摘要】

本专利技术涉及计算机图形学
,主要涉及三维空间中利用独立于三维场景的二维表层(overlay)来实现目标标签显示,并加入碰撞检测技术,实现目标标签有序排列的方法。
技术介绍
三维场景中的二维表层(overlay)被放置在称为“表层(Overlay) ”的渲染队列中。这个渲染队列与其他唯一不同之处在于“表层(Overlay)”的渲染队列的渲染操作在所有其他渲染队列渲染之后进行(换句话说,它在整个三维场景的“最上面”)。表层的定位基于屏幕,是二维坐标系统,与三维场景空间属于不同的坐标系,所谓表层就是一个“覆盖在”场景中所有其他物体上面的二维层。表层(Overlays)允许你在一般的场景内容上绘制二维或三维元素,例如提示信息(heads-up displays (HUDs))、菜单系统、状态栏等。表层中主要的对象是容器(OverlayContainer)和元素(OverlayElement),容器可以被互相嵌套,也可以包含其他元素,子容器相对于父容器定位,其定位方式有绝对坐标 (pixel)定位和相对坐标(relative)定位两种方式。另外,表层中的每个组件都有一个相应的“深度”。在二维概念中,我们把这个深度称之为z-order,其意义在于较深(z-order 值较小)的组件会被绘制在底层,而后会被较浅(z-order值较大)的组件覆盖。碰撞检测的基本原理就是利用相交检测的方法判断空间物体是否相交,其基本思想是用体积略大而几何特性简单的包围盒来近似地描述几何对象,进而通过构造树状层次结构可以越来越逼近对象地几何模型,直到几乎完全获得对象的几何特性,从而可以通过包围盒重叠的部分进行相交测试。本方法中所采用的AABB包围盒(Axis Aligned Bounding Box)碰撞检测方法是利用AABB构建的层次结构二叉树,将目标标签对象定义为包含该对象的且平行与坐标轴的最小六面体,AABB包围盒碰撞检测方法是一种在碰撞检测的研究历史中使用最久最广的碰撞检测方法。
技术实现思路
本专利技术所要解决的主要技术问题是(1)如何使目标标签不随摄像机的移动旋转而放大缩小,其可视面始终面向用户。(2)如何将通过屏幕象素点定位的表层(overlay)挂载在场景中移动的目标节点上。(3)当前视口如果目标标签数量过多,如何让标签有序排列,避免目标标签重叠现象的发生。本专利技术的技术方案是(1)三维场景中的实体会随着观察者的远近而相应的放大和缩小,会随着观察者观察角度的旋转自身相应的旋转,作为目标标签来说,观察者需要从标签中了解目标的属性信息,需要以二维的方式表现出来,不能放大缩小旋转,需要始终面向观察者,随时为观察者提供准确的信息,本方法中目标标签基于独立于三维场景空间的二维表层(overlay) 来展现,将目标的各项属性信息以容器为单位排列在二维表层上,并挂载在相应的目标节点上,随目标一同移动更新,为观察者提供实时准确的信息。(2)三维场景中的二维表层(overlay)被放置在称为“表层(Overlay) ”的渲染队列中。一般用来显示提示信息(heads-up displays (HUDs))、菜单系统、状态栏等,表层独立于三维场景,也就是说,和三维空间中的实体属于不同的坐标系,表层定位是通过屏幕象素点定位的,而场景中的节点是通过三维空间坐标定位的,在本专利技术中,所使用的方法是,在创建标签类的同时,得到当前相关场景节点的指针,编写坐标转换函数,实现场景坐标到屏幕象素点的转换,然后刷新场景帧的同时,更新定位目标标签的位置,实际效果看起来就像是目标标签跟随场景节点一同移动和更新。(3)由于目标标签不随场景摄像机的变换而变换,始终保持着一定的大小,如果场景中目标过多,不可避免的会发生目标标签重叠的现象,在本专利技术中,为了防止这种现象的发生,加入了 AABB包围盒(Axis Aligned Bounding Box)碰撞检测机制,就是说为每个标签创建了几何特性简单的包围盒来近似地进行描述,通过包围盒重叠的部分进行相交测试, 当发生重叠现象时,重新对即将发生重叠现象的标签进行有序排列。本专利技术的优点是第一,二维表层(overlay)支持纹理填充,可以使标签的表现形式更加的丰富,例如可以加入各种定制的图片。较以前的单独用文字来描述目标信息的方法更加直观。第二,基于二维表层(overlay)的目标标签,独立于三维场景空间,其可视面始终面向摄像机,且不随摄像机的变换而发生任何变换。以前的标签大多数都是基于场景实体来实现的,将标签作为实体挂载在场景节点上随目标模型一同移动更新,与场景节点属于同一个场景空间,共用一个坐标系,当摄像机发生变换时再通过一系列的复杂的运算来控制节点上的标签变换。第三,加入AABB包围盒(Axis Aligned Bounding Box)碰撞检测机制可以有效的避免标签重叠现象的发生,当发生重叠现象时,通过场景侦的实时刷新对当前的标签进行有序排列,方便观察者得到更多准确的信息。附图说明图1为示意图。图2为目标标签场景节点挂载及碰撞检测实现流程示意图。具体实施例方式本专利技术提出了,具体为将目标的名称、类别、国籍、位置等属性信息通过独立于三维场景空间的二维表层(overlay)显示在场景中,并通过坐标转换函数将相关场景节点的三维场景坐标转换为屏幕象素点投影坐标后对标签进行定位,在场景帧刷新的同时,不断更新标签的屏幕象素点坐标,使其始终随场景节点的移动而移动。如果当前视口中目标标签的数量较多,利用AABB包围盒(Axis Aligned Bounding Box)碰撞检测机制,随场景帧刷新的同时检测目标标签碰撞,当目标标签发生碰撞(重叠),重新对目标标签进行定位,让目标标签有序排列显示。其具体的实施分为以下两个步骤方法1、目标标签类的定义单独为目标标签定义一个类,方便调用和管理,下面就类的一些主要成员函数作以下介绍(1)构造函数的定义,在构造函数中完成对目标标签所需要用到材质纹理,字体, 字体大小,字体颜色,目标属性信息等进行初始化,定义一个指针,指向创建当前标签类的相关节点指针。(2)目标标签表层创建函数,在此函数中创建表层(overlay),及表层容器 (OverlayContainer)禾口元素(OverlayElement),并对其进定位。(3)场景坐标到屏幕投影坐标转换函数,此函数通过当前场景节点的指针得到当前场景节点的三维空间场景坐标,然后转换为屏幕投影象素点坐标。(4) AABB包围盒(Axis Aligned Bounding Box)碰撞检测函数,为目标标签构建 AABB包围盒,得到平行于视口平面的包围盒平面,并转换其四个顶点坐标为屏幕象素点坐标,得到最大最小屏幕象素点XY值。2、目标标签的场景节点挂载及碰撞检测实现三维场景中的二维表层(overlay)与三维空间中的实体属于不同的坐标系,独立于三维场景,三维场景节点不支持二维表层挂载,为了在效果上实现目标标签随场景节点移动,需在每一次场景渲染的同时,即每次渲染场景帧开始时,重新定位二维表层的屏幕象素点坐标,使之视觉效果上呈现目标标签随节点同时移动的效果,其具体的流程步骤如下(1)遍历所有目标标签对象,得到当前与标签相关的场景节点指针,通过摄像机指针得到当前视本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:龙韬戴玲明芳向慧古尚利
申请(专利权)人:中国船舶重工集团公司第七零九研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术