- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
浅析虚拟现实建模实现
浅析虚拟现实建模实现
摘要:虚拟现实技术是目前发展最快的一项多学科综合技术,在军事、教育、建筑设计等领域都有着广泛的应用。传统的实现虚拟现实建模的方式有很多种,如OpenGL,VRML,Direct3D等,这些技术都各有其优缺点。Java是目前最为流行的面向对象程序设计语言之一,具有开发简便和平台无关等特点,文章介绍了Java中实现虚拟现实建模的两种方法:Java3D和JOGL,并通过示例详细阐述了其实现过程和原理。
关键词:虚拟现实;Java;Java3D;JOGL
随着科技的发展和人类的进步,虚拟现实技术(Virtual Reality,VR)已成为相关领域中继多媒体技术、Internet网络技术之后研究、开发与应用的热点,也是目前发展最快的一项多学科综合技术。它集中体现了计算机技术、计算机图形学、传感技术、人体工程学、人机交互理论等多个领域的最新成果。
Java是一种完全的面向对象程序设计语言,具有开发简便和平台无关等优点。在Java中进行三维图形或虚拟现实开发主要有两种方式:Java3D和JOGL。Java3D综合了以上建模语言的优点,是Java语言中一个用于三维图形开发的API,其低级API依赖于现有三维图形系统如Direct3D,OpenGL,QuickDraw3D和XGL等,这样就能充分利用系统的三维特性。同时,用Java3D开发的基于Web的小程序可以与Internet很好地集成而无需下载相关的插件。JOGL提供了一种将Java和OpenGL绑定的方法,这样既能发挥java语言所固有的优点,又能利用OpenGL函数实现对图形的底层操作控制,使得开发图形应用程序更为简单灵活,本文将详细介绍这两种Java中的虚拟现实建模的方法。
一、Java3D概述
Java3D的构造涉及的概念很多,下面重点介绍两个最基本并且必不可少的概念:虚拟宇宙(Virtual Universe)和场景图(Locale)。
(一)虚拟宇宙(Virtual Universe)
在Java3D中,虚拟宇宙被定义为结合一系列对象的三维空间。虚拟宇宙被用作最大的聚集体表现单位,同时也可以被看作一个数据库。不管是在物理空间还是逻辑内容,虚拟宇宙都可以很大。在大多数情况下,一个虚拟宇宙就可以满足一个应用程序的所有需求。
虚拟宇宙是各自独立的个体,原因是在任???时候一个结点对象都不能在超过一个的虚拟宇宙中存在。同样的,在一个虚拟宇宙中的任何结点对象也不能在其他的虚拟宇宙中可见或者与其他的对象结合。对于一个Java3D应用程序,必须定义一个虚拟宇宙才可以在这个“宇宙”中显示三维图像。
(二)场景图(Locale)
场景图(Locale):Java3D的场景图是指由Java3D API构成的一幅图形或图像,它是由一个或多个Java3D API对象组成的,组成Java3D的场景图的每个对象被称为节点对象,这些叶对象构成了场景图的内容。
一旦一个场景图对象被创建,并与其他场景对象连接形成一个子图,该子图能够全部附属于一个虚拟世界。在把一个子图放到虚拟世界之前,整个的子图能够编译成为一个优化的内部格式。所有场景图对象的一个重要特征是:他们只能够在一个场景图的创建期间被访问或修改,特殊允许的情况除外。用户创建一个或更多场景子图,并把它们放进一个虚拟的世界,同时包括至少一个观察平台对象,而场景图就是附加于这个观察平台。当一个包含场景图的观察对象被附加于一个虚拟宇宙之后,Java3D的渲染循环就开始工作。这样,场景就会和它的观察对象一起被绘制在画布上。在Java3D节点之间的单独连接总是表示一个直接的关系:从父系到子系。Java3D限制场景图不可以包含循环,因此,一个Java3D场景图是一个直接的非循环图形(Directed acyclic graph)。从上述内容不难看出,当使用Java3D API编写三维图形、图像应用程序时,其重点应当集中在构造场景中的节点内容上,即在三维画布上创建几何形体、描述几何形体的外观属性以及场景的光源和形体的行为等。
(三)Java3D性能分析
Java3D程序创建出来的场景图可以直接被渲染,但是这样做效率并不高,每一个场景图内建的适应性使每个场景的执行效率不是最优的,但是还有更有效的方法提高渲染的效率。Java3D内部有一套虚拟世界表示法和转换方法。有两种方法可以使Java3D系统转化到内部表示法。一种是编译每个分支子图。另一种方法是将分支图插入到虚拟世界以使它处于激活状态。
一旦分支图被激活或编译,Java3D渲染系统就会将分支图转化为更有效的内部表示法,这种转化,最重要的就是提高了渲染的性能。同
您可能关注的文档
最近下载
- 苏教版五年级下册数学计算题每日一练带答案(共30天).docx VIP
- 学校多媒体教室维护方案.docx VIP
- 人教版高中英语选择性必修一 UNIT 3 Period 3.ppt VIP
- PMCF-plan完整可编辑版.docx VIP
- 热力学统计物理课件【共317张PPT】.ppt VIP
- 公路工程地基处理手册_0062-0122.pdf VIP
- 部编人教版三年级上册语文全册说课稿.doc VIP
- 地方国有资本投资运营企业内部控制研究-以L企业为例.pdf VIP
- 动力电池使用维护与拆解技术:动力电池拆解技术PPT教学课件.pptx VIP
- 苏教版五年级下册数学计算题每日一练带答案(共20天).docx VIP
文档评论(0)