基于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实现虚拟
java创建文件三维模型交互显示,实现与用户交互的虚拟三维交
互建模实现方案,本系统是通过远端客户机读取服
务端客户上传的三维图形数据,并在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,还可扩展其他格式),而不需要
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论