1、基于J ava3D 的三维模型交互设计系统的开发与应用丘威(嘉应学院计算机科学与技术系, 广东梅州514015摘要:首先概括地介绍了Java3D 技术在三维模型交互设计的应用. 提出了采用Java3D 用于虚拟三维模型的描述, 通过远端客户机读取服务端客户上传的三维图形数据, , 使用程序提供的绘图工具对图形进行编辑并将结果保存到服务端相应的文件, 间的信息交互, 共享数字化的设计信息, 使Internet 关键词:Java3D ;VRML ;Web3D ; 虚拟场景中图分类号:TP129:-7180(2008 11-0195-04Application of 3D Model Interac
2、tionDesign System B ased on Java 3DQ IU 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
3、the system structure , put forward the method to catch the 3D scene object in 2stance 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. K ey w ords :virtual scene1引言Java
4、3D 是Sun 定义的用于实现3D 显示的编程接口,Java3D 提供了基于Java 的上层接口. Java3D 把Open G L 和Direct X 这些底层技术包装在Java 接口中. 这种全新的设计使3D 技术变得不再繁琐并且可以加入到J 2SE 、J 2EE 的整套架构, 这些特性保证了Java3D 技术强大的扩展性. 文中提出了采用Java3D 用于三维模型的描述, 采用Java3D 实现虚拟三维模型交互显示, 实现与用户交互的虚拟三维交互建模实现方案, 本系统是通过远端客户机读取服务端客户上传的三维图形数据, 并在Web 页上对三维格式的机械设计图、建筑模型图等等进行还原, 不同
5、地域间的用户不仅可以在终端机器上完成对三维模型实体的浏览、缩放、移动、操作, 还可以使用程序提供的绘图工具对图形进行编辑并将结果保存到服务端相应的文件, 通过对服务器端文件的读写操作来实现用户之间的信息交互, 有助于减少工程师、建筑师和其他用户之间进行交流的障碍, 并使他们可以更多地共享数字化的设计信息, 使Internet 成为设计工作的主要协作平台.2用Java3D 描述系统模型Web3D 联盟是Web3D 技术管理组织, 主要负责有关Web3D 标准的研究、定义和推广工作, 为了适应Web 的新应用1. 尽管VRML 在Web3D 应用中已比较广泛2, 但也存在其局限性:首先是浏览VRM
6、L 场景需要下载安装相应的浏览器插件, 使用户感到不便. 另外VRML 是用于建立基于互联网的虚拟场景的描述语言, 其提供的交互能力很不足, 场景描述信息与程序控制脚本共存与一个VRML 文件中不便开发者使用. 有不少的计算机公司推出了各种不同的Web3D 实现方案, Sun 公司公布的Ja 2va3D 则为Web3D 提供了语言级的支持,Java3D 是Java 用于三维程序编程的一组API. Java 语言面向对象和跨平台特性, 使得Java3D 特别适合网络环境上的应用3. 无插件的Web3D 应用一般采用Java 开发, 用户在下载三维场景的同时, 三维渲染引擎则以Applet 小程序
7、的形式被下载到客户端执行.本系统完全使用面向对象的Java 程序设计,Ja 2va3D 技术作为一种较新的技术, 台上有着突出的优势. 其中的Java Applet 据库编程, SP 本系统分为服务, 上传文件的功能, 主要采用了Java 文件上传和JD 2BC 技术. 在数据库方面, 使用了My Sql. 服务器端程序和客户端程序通过HTTP 连接作为服务器和客户端的数据交互接口. 客户端则提供了图形数据的还原和编辑图形的功能, 采用了Java Applet 的方式,Java Applet 可嵌在网页上运行的特性和Java 3D 强大的图形表现能力为开发系统提供了有力的技术支持4.Java
8、语言的平台无关性和M Y SQL 数据库的跨平台性, 使得本项目软件适合不同平台下的用户. 在数据调度策略方面本系统采用一次性全部装载三维格式文件数据, 数据驻留客户端机器内存的方法, 节约了传送的代价, 减轻了服务器端的压力, 加快了客户端的反应速度. 系统模型如图1所示 .图1Web 环境下的系统功能模型图Java3D 是Java 在三维图形方面的扩展, 同时结合了Java 语言的网络功能, 很好地解决了网络, 跨平台环境的三维可视化问题. 对于一些高级应用, 如实现计算过程的三维可视化、复杂的交互功能等, Java3D 具有比VRML 无法相比的能力5. 另外, 大量的研究集中在Web3
9、D 及虚拟现实等技术的实施细节之上, 针对这些问题给出了很多优秀的算法, 这些成果有待于进一步转化为实际应用.采用Java3D 作为基于网络的虚拟建筑环境的开发平台, 有助于在应用中不断采用更为先进的算法, 形成独立的技术核心6.Java 本身是一种编程语言, , , 而采用其他商. 采用Java3D 实现三维虚拟场, 用户与三维场景交互以及其他与虚拟环境相关功能, 如场景外观纹理的实时替换, 在三维场景内实现建筑属性的查询等.3逻辑结构设计本系统的逻辑结构的三维的数据结构采用的是Scene Graphs Structure (场景图 , 就是一些具有方向性的不对称图形组成的树状结构.Java
10、 3D 场景图是一棵由两个部分或分支组成的树, 这两个部分是:内容(content 和视图(view . 视图分支含有复杂Ja 2va 3D 视图模型的所有细节, 它还定义视点. 内容分支描述了您将在场景中看到什么. 它包含所有图形对象(球体、立方体或更复杂的几何对象 、用来移动它们的转换、光、行为、组节点和烟雾. 大多数工作将集中在内容分支上. 本系统的JAVA3D 场景数据结构图如图2所示图2Java3D 三维模型图数据结构图在一个Java3D 应用程序看到的逼真三维模型691微电子学与计算机2008年从程序的角度看来, 实际就是由Java3D 定义的一系列的对象, 这些对象不是杂乱无序,
11、 对象之间也不是毫无关系. 如果想让三维图像正常显示, 必须在这两点上遵循Java3D 场景图的规定. 基于Java3D 的虚拟3D 模型表现还使用协同处理策略, 将客户的请求分散处理, 根据当前客户端和服务器的CPU 使用情况和网络占用情况, 自动分配计算任务, 能大大降低整个系统对服务器的依赖, 有效提高系统整体性能. 在3D 模型表现环境的应用中, 经常需要获得单个类型3D 模型表现对象实例, 因为许多行为和操作都是针对单个3D 模型对象, 比如3D 模型中有若干栋建筑, 需要在Java3D 程序的运行时刻将它的外观(表面纹理 改变, 来观察其在环境中不同的效果如果在一个VRML , 将
12、其导入到Java3D 象进行处理. Shape3D G eome 2try 对象的引用. Shape3D 对象除了定义了三维形体的几何特征, 还定义了形体的外观(Appearance 属性. 一个VRML 的Shape 对象被导入到Java3D3D 模型中将被转换为Java3D 的Shape3D 对象, 这样就动态地访问该对象. 例如要改变一个Shape3D 的外观属性, 那么首先要做的是将外观属性设为可写. shape3D. setCapability (ALLOW APPEARANCE WRITE ; 然后就可以对Shape3D 对象的Appear 2ance 对象进行操作了. 在程序运行
13、中还可以动态的删除或添加Shape3D 节点, 从而可以实现3D 模型替换的功能.4系统实现4. 1系统功能实现本系统所构造的3D 模型, 必须运行一个Ja 2va3D 程序. 这个Java3D 应用程序必须首先创建一个虚拟3D 模型对象并且至少把一个Locale 对象附加之上. 然后, 构建出需要的3D 模型型体, 它由一个分支组结点开始并且包括至少一个观察平台对象, 而3D 模型型体就是附加于这个观察平台. 当一个包含3D 模型型体的观察对象被附加于一个虚拟3D 型体,Java3D 的渲染循环就开始工作. 这样,3D 模型型体就会和它的观察对象一起被绘制在画布上. 系统的设计采用了三层模式
14、的结构, 用户只需打开浏览器链接到服务器, 浏览器就会自动将客户端程序下载到本地机器运行, 通过与服务端程序的通讯实现了图形数据的传输, 达到了让不同地域的图形设计人员与用户, 设计人员与设计人员之间对各种3D 设计软件生成的图形进行交互式设计的目标.本系统可以在Web 方式下自由地浏览3D 数据文件(3DS ,OBJ ,J 3D , 还可扩展其他格式 , 而不需要另外花钱购买并安装3D 设计软件(如3D MAX , MA YA 等 , 也不需要用户下载并安装额外的浏览器插件. 三维模型在本系统可以完全“复原”回在其他3D 设计软件(如3D MAX 等 的3D 效果. 如图3所示为在3D MA
15、X 3D 模型型体效果图. 图4模型型体效果图图3在3D MAX 中设计的一个船3D 模型效果图图4在本系统中表现的船3D 模型效果图本系统具有一定的建模功能, 并且模型是可以按照客户自己的意愿进行个性化定制, 如图5用户想添加一个棱锥, 系统可以根据用户的输入是多少棱锥而创建具体的实体. 可以根据用户的输入来决定球体是高精度还是低精度. 同时可以在本系统进行场景图的灯光效果, 实体外观颜色, 实体外观贴图, 位置, 大小等的编辑. 4. 2三维模型交互设计的实例第一步:启动服务器程序的服务功能.第二步:在A 和B 两台计算机的浏览器的地址栏分别输入服务端的地址, 连接到服务端的登陆页面.第三
16、步:A机和B 机经过验证登陆后, 进入工作791第11期丘威:基于Java3D 的三维模型交互设计系统的开发与应用图5在本系统中添加各种自定义的3D 实体区页面, 它们的浏览器就会自动下载服务端的Java Applet 程序. A 机和B 机的显示画面.第四步:A机和B 机用户都点击钮, , 假定A 和B .第五步:在B 和C 3D MAX 中的显示效果相符合. 在客户端A 中使用程序提供的编辑工具, 如实体顶点坐标编辑工具对实体进行编辑. 在这里先选中棱锥, 再点击“形体变换”按钮, 接着选择方向, 这里选择X 方向, 于是按键盘的X 键, 最后用鼠标拖动一定的距离, 就可以实现对实体的顶点
17、坐标进行编辑. A 机编辑完成后, 就可以看见A 机最后显示的场景图效果了.第六步:当A 机提交了修改结果后, 在B 机中使用程序提供的刷新功能, 即点击【刷新】按钮来更新当前场景图, 得到图编辑的结果就是刚刚在A 中修改后的结果, 如图5所示. 同样, 使用其他工具来编辑实体或增删实体,A 机和B 机分别进行绘制和保存操作, 都得到了相同的测试效果, 实现了图形在A 机和B 机之间的交互设计.5结束语Java3D 丰富的Java 及Java3D 类库支持可用于实现复杂的编程行为. 特别是应用Java3D 可以快速地开发Web 上的3D 应用. 文中提出采用VRML 和Java3D 相结合的技
18、术, 建立虚拟3D 模型型体环境的应用框架. 实现对虚拟3D 模型型体环境中的3D 模型对象的操作需要获取该对象, 给出了在Java3D 中获取3D 模型对象实例的方法和给出了在Java3D 模型型体中实现虚拟3D 模型型体表现的方法. 基于Java3D 的3D 模型型体的客户端表现的基本功能是虚拟空间信息的图形表达, 是以国际Web3D 协会正在开发中的网络三维信息传输标准X3D 为基础, 将三维信息和与三维空间关联的多媒体信息在客户端以图形的方式呈现给用户. 本系统为用户提供了(如3D MAX ,Maya 、编辑的功能, 可以让, 让3D 模型型体草图的同时还可以对模型进行简单的修改, 并
19、将修改的数据反馈给设计人员, 设计人员则可以根据用户的建议对草图作进一步的修改, 从而节省了劳力和成本, 达到工程设计人性化、智能化的管理, 为设计者和用户之间的交流架起了一座简单快捷有效的桥梁. 参考文献:1孙瑾秋, 张艳宁, 潘俊军, 等. 颌面三维测量技术研究J.微电子学与计算机,2007,24(4 :165-167. 2Web3D. Virtual reality modeling language , ISO/IEC14772-1S.Standard International ,1997:34-38. 3李银兵, 闫敬. 基于虚拟现实技术的可视化生态复垦J.微电子学与计算机,2007,24(2 :200-202. 4邹经宇, 薛玉彩. 基于城市虚拟三维环境的城市公共空间视觉延续性的比较研究C /第二届“虚拟现实与地理学”学术研讨会学术论文集. 北京,2002:110-119.5杨宝民, 朱一宁. 分布式虚拟现实技术及其应用M .北京:科学技术出版社,2000:1-10.6丘威, 张立臣, 钟治初. 在线虚拟电子电路实验室的VRML 实现J.微电子学与计算机,2007,24(2 :62-64.作者简介:丘威男, (1974- , 硕士, 讲师. 研究方向为虚拟现实技术和软件工程.8
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1