当前位置:文档之家› 基于Java3D的三维模型交互设计系统的开发与应用_丘威

基于Java3D的三维模型交互设计系统的开发与应用_丘威

基于Java3D的三维模型交互设计系统的开发与应用 丘 威 (嘉应学院计算机科学与技术系,广东梅州514015) 摘 要:首先概括地介绍了Java3D技术在三维模型交互设计的应用.提出了采用Java3D用于虚拟三维模型的描 述,通过远端客户机读取服务端客户上传的三维图形数据,实现与用户交互的虚拟三维交互建模方案,使用程序提 供的绘图工具对图形进行编辑并将结果保存到服务端相应的文件,通过对服务器端文件的读写操作来实现用户之 间的信息交互,共享数字化的设计信息,使Internet成为设计工作的主要协作平台. 关键词:Java3D;VRML;Web3D;虚拟场景 中图分类号:TP129 文献标识码:A 文章编号:1000-7180(2008)11-0195-04 Development and Application of3D Model Interaction Design System Based on Java3D QIU Wei (Department of Computer Science and Technology,Jiaying University,Meizhou 514015,China) Abstract:This paper introduced the Java3D application in 3D model interaction design,adopt the Client/Server structure and distributing computing model to design the system structure,put forward the method to catch the 3D scene object in- stance and presented the wandering method to implement virtual scene in the Java3D scene.With Java3D,implement the interaction 3DM scene with the user,and implement a part of detail. Key words:Java3D;VRML;Web3D;virtual scene 1 引言 Java3D是Sun定义的用于实现3D显示的编程 接口,Java3D提供了基于Java的上层接口.Java3D 把OpenGL和DirectX这些底层技术包装在Java接 口中.这种全新的设计使3D技术变得不再繁琐并 且可以加入到J2SE、J2EE的整套架构,这些特性保 证了Java3D技术强大的扩展性.文中提出了采用 Java3D用于三维模型的描述,采用Java3D实现虚拟 三维模型交互显示,实现与用户交互的虚拟三维交 互建模实现方案,本系统是通过远端客户机读取服 务端客户上传的三维图形数据,并在Web页上对三 维格式的机械设计图、建筑模型图等等进行还原,不 同地域间的用户不仅可以在终端机器上完成对三维 模型实体的浏览、缩放、移动、操作,还可以使用程序 提供的绘图工具对图形进行编辑并将结果保存到服 务端相应的文件,通过对服务器端文件的读写操作 来实现用户之间的信息交互,有助于减少工程师、建 筑师和其他用户之间进行交流的障碍,并使他们可 以更多地共享数字化的设计信息,使Internet成为 设计工作的主要协作平台. 2 用Java3D描述系统模型 Web3D联盟是Web3D技术管理组织,主要负 责有关Web3D标准的研究、定义和推广工作,为了 适应Web的新应用[1].尽管VRML在Web3D应用 中已比较广泛[2],但也存在其局限性:首先是浏览 VRML场景需要下载安装相应的浏览器插件,使用 户感到不便.另外VRML是用于建立基于互联网的 虚拟场景的描述语言,其提供的交互能力很不足,场 景描述信息与程序控制脚本共存与一个VRML文 件中不便开发者使用.有不少的计算机公司推出了 各种不同的Web3D实现方案,Sun公司公布的Ja- va3D则为Web3D提供了语言级的支持,Java3D是 Java用于三维程序编程的一组API.Java语言面向 对象和跨平台特性,使得Java3D特别适合网络环境 上的应用[3].无插件的Web3D应用一般采用Java 开发,用户在下载三维场景的同时,三维渲染引擎则 以Applet小程序的形式被下载到客户端执行. 本系统完全使用面向对象的Java程序设计,Ja- va3D技术作为一种较新的技术,在开发网络图形平 台上有着突出的优势.在系统的开发过程中,用到了 其中的Java Applet编程、Java 3D图形编程,Java数 据库编程,网络编程以及JSP技术.本系统分为服务 器端程序和客户端程序,服务端的程序提供了客户 上传文件的功能,主要采用了Java文件上传和JD- BC技术.在数据库方面,使用了My Sql.服务器端 程序和客户端程序通过HTTP连接作为服务器和 客户端的数据交互接口.客户端则提供了图形数据 的还原和编辑图形的功能,采用了Java Applet的方 式,Java Applet可嵌在网页上运行的特性和Java 3D 强大的图形表现能力为开发系统提供了有力的技术 支持[4].Java语言的平台无关性和MY SQL数据库 的跨平台性,使得本项目软件适合不同平台下的用 户.在数据调度策略方面本系统采用一次性全部装 载三维格式文件数据,数据驻留客户端机器内存的 方法,节约了传送的代价,减轻了服务器端的压力, 加快了客户端的反应速度.系统模型如图1所示. 图1 Web环境下的系统功能模型图 Java3D是Java在三维图形方面的扩展,同时结 合了Java语言的网络功能,很好地解决了网络,跨 平台环境的三维可视化问题.对于一些高级应用,如 实现计算过程的三维可视化、复杂的交互功能等, Java3D具有比VRML无法相比的能力[5].另外,大 量的研究集中在Web3D及虚拟现实等技术的实施 细节之上,针对这些问题给出了很多优秀的算法,这 些成果有待于进一步转化为实际应用. 采用Java3D作为基于网络的虚拟建筑环境的 开发平台,有助于在应用中不断采用更为先进的算 法,形成独立的技术核心[6].Java本身是一种编程语 言,不会涉及任何商业类技术问题,,而采用其他商 业Web3D技术平台,开发者不能了解其底层实施细 节,不利于长期发展.采用Java3D实现三维虚拟场 景的显示,用户与三维场景交互以及其他与虚拟环 境相关功能,如场景外观纹理的实时替换,在三维场 景内实现建筑属性的查询等. 3 逻辑结构设计 本系统的逻辑结构的三维的数据结构采用的是 Scene Graphs Structure(场景图),就是一些具有方 向性的不对称图形组成的树状结构.Java 3D场景图 是一棵由两个部分或分支组成的树,这两个部分是: 内容(content)和视图(view).视图分支含有复杂Ja- va 3D视图模型的所有细节,它还定义视点.内容分 支描述了您将在场景中看到什么.它包含所有图形 对象(球体、立方体或更复杂的几何对象)、用来移动 它们的转换、光、行为、组节点和烟雾.大多数工作将 集中在内容分支上.本系统的JAVA3D场景数据结 构图如图2所示. 图2 Java3D三维模型图数据结构图 在一个Java3D应用程序看到的逼真三维模型 从程序的角度看来,实际就是由Java3D定义的一系 列的对象,这些对象不是杂乱无序,对象之间也不是 毫无关系.如果想让三维图像正常显示,必须在这两 点上遵循Java3D场景图的规定.基于Java3D的虚 拟3D模型表现还使用协同处理策略,将客户的请 求分散处理,根据当前客户端和服务器的CPU使用 情况和网络占用情况,自动分配计算任务,能大大降 低整个系统对服务器的依赖,有效提高系统整体性 能.在3D模型表现环境的应用中,经常需要获得单 个类型3D模型表现对象实例,因为许多行为和操 作都是针对单个3D模型对象,比如3D模型中有若 干栋建筑,需要在Java3D程序的运行时刻将它的外 观(表面纹理)改变,来观察其在环境中不同的效果. 如果在一个VRML文件中定义了若干栋建筑,那么 将其导入到Java3D中,必须做的事情之一就是获得 每栋建筑物的单个实例,以便将它们作为单独的对 象进行处理.Shape3D对象维持了对一系列Geome- try对象的引用.Shape3D对象除了定义了三维形体 的几何特征,还定义了形体的外观(Appearance)属 性.一个VRML的Shape对象被导入到Java3D3D 模型中将被转换为Java3D的Shape3D对象,这样就 动态地访问该对象.例如要改变一个Shape3D的外 观属性,那么首先要做的是将外观属性设为可写. shape3D.setCapability(ALLOW APPEARANCE WRITE);然后就可以对Shape3D对象的Appear- ance对象进行操作了.在程序运行中还可以动态的 删除或添加Shape3D节点,从而可以实现3D模型 替换的功能. 4 系统实现 4.1 系统功能实现 本系统所构造的3D模型,必须运行一个Ja- va3D程序.这个Java3D应用程序必须首先创建一 个虚拟3D模型对象并且至少把一个Locale对象附 加之上.然后,构建出需要的3D模型型体,它由一 个分支组结点开始并且包括至少一个观察平台对 象,而3D模型型体就是附加于这个观察平台.当一 个包含3D模型型体的观察对象被附加于一个虚拟 3D型体,Java3D的渲染循环就开始工作.这样,3D 模型型体就会和它的观察对象一起被绘制在画布 上.系统的设计采用了三层模式的结构,用户只需打 开浏览器链接到服务器,浏览器就会自动将客户端 程序下载到本地机器运行,通过与服务端程序的通 讯实现了图形数据的传输,达到了让不同地域的图 形设计人员与用户,设计人员与设计人员之间对各 种3D设计软件生成的图形进行交互式设计的目 标. 本系统可以在Web方式下自由地浏览3D数据 文件(3DS,OBJ,J3D,还可扩展其他格式),而不需要 另外花钱购买并安装3D设计软件(如3D MAX, MAYA等),也不需要用户下载并安装额外的浏览 器插件.三维模型在本系统可以完全“复原”回在其 他3D设计软件(如3D MAX等)的3D效果.如图3 所示为在3D MAX设计的一个船3D模型型体效果 图.图4为在本系统中的船3D模型型体效果图. 图3 在3D MAX中设计的一个船3D模型效果图

相关主题