基于RTT的三维模型标签实时显示技术.doc_第1页
基于RTT的三维模型标签实时显示技术.doc_第2页
基于RTT的三维模型标签实时显示技术.doc_第3页
基于RTT的三维模型标签实时显示技术.doc_第4页
基于RTT的三维模型标签实时显示技术.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于RTT的三维模型标签实时显示技术 田壮,聂芸 (华北计算技术研究所,北京100083) 摘要:针对三维模型标签的显示,分析已有处理的不足,提出一种基于RTT(RenderToTexture)的三维模型标签实时显示的解决思路:在三维模型上确定显示标签的目标区域,用RTT相机对标签预渲染到帧缓存中,从帧缓存中提取出二维纹理映射到三维模型上的目标区域,采用OSG(OpenSceneGraph)实现对三维模型标签的实时显示,具有良好的真实感。 关键词:osg;rtt;三维模型标签;实时显示 :TN911.73?34:A:1004?373X(xx)20?0055?04 RTT?basedreal?timedisplaytechnologyof3DmodellabelTIANZhuang,NIEYun (NorthChinaInstituteofComputerTechnology,Beijing100083,China) Abstract:Forthedisplayof3Dmodellabel,theinsufficientoftheexistingprocessingisanalyzed,andanewsolutionof3Dmodellabelreal?timedisplaybasedonrendertotexture(RTT)isproposed.Thetargetareaofdisplaylabelisdeterminedonthe3Dmodel,andthelabelispre?renderedintotheframe?bufferbyRTTcamera.The2Dtextureextractedfromframe?bufferismappedtothetargetareaon3Dmodel.Thereal?timedisplayof3Dmodellabelwasrealizedbyusingopenscenegraph(OSG),andhasgoodrealitysense. Keywords:OSG;RTT;3Dmodellabel;real?timedisplay 0引言 三维虚拟环境是利用虚拟现实技术构建的某一区域真实而全面的可视化描述,集成了地形、地貌、河流、海洋、气象等自然环境的虚拟展现,并提供了相关态势的准确表现,是军事、公共安全、市政等各种应用的重要辅助平台。 在复杂的虚拟三维环境中,因为目标繁多,无法对重复的目标建立特有的三维模型1,所以同一类的虚拟场景的目标使用相同的模型,导致了同一类目标无法具体区分,容易造成混淆,如一个飞行编队中的战机无法从模型上区分,而实际中的各种模型在表面都有明确的不同编号及辅助信息。针对这类问题,一般的解决思路有: (1)在使用3DMax等建模软件建模时,直接把编号信息建在模型上,固定在一个确定的位置上。其缺点是用户应用中无法改变编号信息的位置和信息内容,可用性差。 (3)在模型上方加一个独立的标签用来显示编号信息,从视觉来看是两部分,真实感有一定的缺失。 本文通过RTT技术实现了标签在三维模型上的实时显示,在视觉上标签与三维模型融为一体,与现实世界真实情况相一致,真实感较强。增强了三维模型的信息承载能力。 1OSG及RTT OSG是一个开源的场景图形管理开发库,主要为图形图像应用程序的开发提供场景管理和图形的渲染优化功能5。使用已经成为工业标准的OpenGL底层渲染API。因此OSG具备跨平台性,可以在Windows,MACOS和大多数类型的Unix和Linux操作系统上运行。在OSG中大部分的操作可以独立于本地的GUI。与工业标准和其他图形库相比,OSG的优点显而易见,它的封装并提供了数量众多的提升程序运行时性能的算法,针对包括分页数据库在内的几乎所有的主流数据格式之间的数据接口。 OSG中主要有以下几种图形渲染时用到的缓存: 2三维模型标签处理流程 实现三维模型标签实时显示的步骤如下: 第1步:加载三维模型,如果通过Json文件加载标签执行步骤第7步,否则执行第2步。 第2步:在三维模型中通过鼠标交互选择标签的目标区域;虚拟了RTT相机,投影到三维模型,方便用户选择标签位置。 第3步:输入标签的信息内容,根据标签内容(即:虚拟三维场景中的目标编号信息及其他辅助信息)生成二维文字。 第4步:二维文字添加到子场景,使用RTT相机预渲染子场景生成二维纹理。 第5步:设置纹理映射。 第6步:显示三维模型及标签,执行第8步。 第7步:读取Json文件生成。如果不是第一次加载这个模型,那么可以选择该模型对应的Json文件,可对Json文件中的标签内容进行更改然后直接进行绘制和显示,避免了对于模型目标区域的重复操作。如果要修改标签的位置则转到第2步。 第8步:保存和标签有关的数据(如:虚拟投影摄像机的位置)到Json文件,方便下次调用时进行直接绘制或输出到其他三维显示系统中。 3基于RTT的三维模型标签实时显示相关实现这里重点介绍基于RTT的三维模型标签实时显示的相关实现。 3.1标签目标区域 标签目标区域用于显示三维模型的编号信息。目标区域的选择:主要为用户提供目标模型的选择,这里提供了虚拟的RTT相机投影,方便用户对模型区域的选择。 目标区域的生成:在用户选择好了目标区域后(即虚拟RTT相机所对应的模型位置),需要生成一个与虚拟RTT相机投影区域大小相同的透明四边形面片用来标明模型的编号信息,并且可以设置面片的细分度;在凹凸不平的模型表面,生成细粒度的四边形面片;在较为平滑的曲面生成粗粒度的面片以减少运算量。生成方法:通过虚拟RTT相机的视点坐标向模型发射线求交,返回交点作为构建四边形面片的点。 3.2标签文字 在OSG中,OSGText提供了向场景中添加矢量文字的强大渲染功能,由于第三方插件FreeType的支持,它完全支持TureType字体,实现了文字的无极缩放,良好的抗锯齿能力等。OSG专门定义了一个命名空间来管理文字的渲染,控制文字各种渲染属性的设置。 在OSG中文字显示的机制:创建一个Font对象读取字体文件,把Font与对应的文字相关联,创建绘制字符串图形的纹理贴图。 在文字渲染时,文字会根据字符的形状生成纹理坐标,并为每个字符绘制一个已添加纹理的四边形。本文的文字添加步骤如下: (1)创建一个Font对象并读取字体文件。 (2)创建一个osgText:Text对象,设置文字的属性,同时关联字体,程序为用户提供了字体的选择。如果在场景中显示中文,需要将中文转换为宽字符。 (3)调用addDrawable()方法将步骤(2)的osg?Text:Text实例对象添加到一个Geode实例,然后添加到场景进行渲染。 3.3RTT相机的OSG节点组成及设置 本文通过RTT技术实现将子场景中的二维文字实时渲染到主场景的二维平面的功能,实现方式是在一个场景上创建一个覆盖图,这张覆盖图的生成是通过预渲染一个子场景(已生成的二维文字)到这张贴图上,最终将纹理贴图贴到主场景上,而投影的位置是通过三维模型标签的目标区域预先确定的。 在场景的根节点下有两个子节点:一个是osg:Camera对象用于RTT相机,在RTTCamera节点下添加已经生成的二维文字作为子场景,然后定义一个二维纹理对象osg:Texture2D用来从子场景中提取二维纹理,最后定义一张二维纹理贴图osg:Image,作为覆盖图用于存储二维纹理;另一个是场景组节点,添加了三维模型和承载三维模型标签信息的四边形面片。 4实验结果 实验模型二使用波音737模型,根据飞机的飞行速度实时在机身上显示时速。效果如图7所示。 5结语 本文采用RTT技术,实现了三维虚拟场景中三维模型的具体编号及相关数据的实时显示,效果较好。需要进一步完善:多个标签(飞机的双侧)、图标与文字的组合显示(民航客机)、字的轮廓显示样式等问题。 参考文献 1李剑功,孙延明,赖朝安.基于Java3D的不规则曲面纹理贴图的研究J.现代制造工程,xx(1):41?43. 2DavidFRogers.计算机图形学算法基础M.北京:机械工业出版社,xx. 3程晓筝,李震霄.一种基于表面积比例的地形纹理贴图算法J.计算机仿真,xx,24(8):174?177. 4CATMULLE.AsubdivisionalgorithmforputerdisplayofcurvedsurfacesD.SaltLakeCity,UniversityofUtah,1974.5肖鹏,刘更代,徐明亮.OpenSceneGraph三维渲染引擎编程指南M.北京:清华大学出版社,xx. 6杨石兴.OpenSceneGraph程序设计教程EB/OL.xx?10?26.:/.docin./p?1055452878.html. 7OpenSceneGraph.UserguideEB/OL.xx?03?15.:/.opemsceneGraph. 8SHREINERD.OpenGL编程指南M.李军,译.北京:机械工程出版社,xx. 9邱飞岳,赵柏乐,张维泽,等.基于投影纹理映射的球面斜投影校正方法研究及其应用J.中国生物医学工程学报,xx,31(2):687?702. 10GOLDMAN

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论