基于Java3D的三维模型交互设计系统的开发与应用 - 丘威
更新时间:2024-05-04 19:26:01 阅读量: 综合文库 文档下载
基于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模型效果图
图4 在本系统中表现的船3D模型效果图 本系统具有一定的建模功能,并且模型是可以 按照客户自己的意愿进行个性化定制,如图5用户 想添加一个棱锥,系统可以根据用户的输入是多少 棱锥而创建具体的实体.可以根据用户的输入来决 定球体是高精度还是低精度.同时可以在本系统进 行场景图的灯光效果,实体外观颜色,实体外观贴 图,位置,大小等的编辑.
4.2 三维模型交互设计的实例
第一步:启动服务器程序的服务功能.
第二步:在A和B两台计算机的浏览器的地址 栏分别输入服务端的地址,连接到服务端的登陆页 面.
第三步:A机和B机经过验证登陆后,进入工作 图5 在本系统中添加各种自定义的3D实体 区页面,它们的浏览器就会自动下载服务端的Java Applet程序.A机和B机的显示画面.
第四步:A机和B机用户都点击【选择文件】按 钮,在弹出的对话框中选择要操作的文件名,在这里 假定A和B都打开同一个三维文件.
第五步:经过比较,打开的文件里面的三维实体 在B和C的软件系统中显示的效果与在3D MAX 中的显示效果相符合.在客户端A中使用程序提供 的编辑工具,如实体顶点坐标编辑工具对实体进行 编辑.在这里先选中棱锥,再点击“形体变换”按钮, 接着选择方向,这里选择X方向,于是按键盘的X 键,最后用鼠标拖动一定的距离,就可以实现对实体 的顶点坐标进行编辑.A机编辑完成后,就可以看见 A机最后显示的场景图效果了.
第六步:当A机提交了修改结果后,在B机中
使用程序提供的刷新功能,即点击【刷新】按钮来更 新当前场景图,得到图编辑的结果就是刚刚在A中 修改后的结果,如图5所示.同样,使用其他工具来 编辑实体或增删实体,A机和B机分别进行绘制和 保存操作,都得到了相同的测试效果,实现了图形在 A机和B机之间的交互设计. 5 结束语
Java3D丰富的Java及Java3D类库支持可用于 实现复杂的编程行为.特别是应用Java3D可以快速 地开发Web上的3D应用.文中提出采用VRML和 Java3D相结合的技术,建立虚拟3D模型型体环境 的应用框架.实现对虚拟3D模型型体环境中的3D 模型对象的操作需要获取该对象,给出了在Java3D 中获取3D模型对象实例的方法和给出了在Java3D
模型型体中实现虚拟3D模型型体表现的方法.基 于Java3D的3D模型型体的客户端表现的基本功能 是虚拟空间信息的图形表达,是以国际Web3D协会 正在开发中的网络三维信息传输标准X3D为基础, 将三维信息和与三维空间关联的多媒体信息在客户 端以图形的方式呈现给用户.本系统为用户提供了 在网络环境中对三维设计软件(如3D MAX,Maya 等)生成的三维图形进行浏览、编辑的功能,可以让 模型设计师把3D模型型体的草图提供给用户,让 用户浏览到3D模型型体草图的同时还可以对模型 进行简单的修改,并将修改的数据反馈给设计人员, 设计人员则可以根据用户的建议对草图作进一步的 修改,从而节省了劳力和成本,达到工程设计人性 化、智能化的管理,为设计者和用户之间的交流架起 了一座简单快捷有效的桥梁. 参考文献:
[1]孙瑾秋,张艳宁,潘俊军,等.颌面三维测量技术研究 [J].微电子学与计算机,2007,24(4):165-167.
[2]Web3D.Virtual reality modeling language,ISO/IEC 14772-1[S].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-),硕士,讲师.研究方向为虚拟现实技 术和软件工程.
模型型体中实现虚拟3D模型型体表现的方法.基 于Java3D的3D模型型体的客户端表现的基本功能 是虚拟空间信息的图形表达,是以国际Web3D协会 正在开发中的网络三维信息传输标准X3D为基础, 将三维信息和与三维空间关联的多媒体信息在客户 端以图形的方式呈现给用户.本系统为用户提供了 在网络环境中对三维设计软件(如3D MAX,Maya 等)生成的三维图形进行浏览、编辑的功能,可以让 模型设计师把3D模型型体的草图提供给用户,让 用户浏览到3D模型型体草图的同时还可以对模型 进行简单的修改,并将修改的数据反馈给设计人员, 设计人员则可以根据用户的建议对草图作进一步的 修改,从而节省了劳力和成本,达到工程设计人性 化、智能化的管理,为设计者和用户之间的交流架起 了一座简单快捷有效的桥梁. 参考文献:
[1]孙瑾秋,张艳宁,潘俊军,等.颌面三维测量技术研究 [J].微电子学与计算机,2007,24(4):165-167.
[2]Web3D.Virtual reality modeling language,ISO/IEC 14772-1[S].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-),硕士,讲师.研究方向为虚拟现实技 术和软件工程.
正在阅读:
基于Java3D的三维模型交互设计系统的开发与应用 - 丘威05-04
家长学校优秀学员推荐表(1)07-01
辽宁地区2019年中考物理总复习第一讲机械运动考点跟踪突破训练03-14
涵洞工程作业指导书12-20
民法总论期末考试试题11-15
福建省宁化县八年级地理下学期第一次月考试题(无答案)04-19
带着坚持上路作文450字07-04
VOIP企业解决方案06-25
雅思大作文范文-全球化10-30
甲状腺结节和肿瘤的诊断、治疗与展望08-06
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 三维
- 交互
- 模型
- 基于
- 应用
- Java3D
- 开发
- 设计
- 系统
- 丘威
- 无偿献血 传递温暖新闻稿
- 《昨天与今天》教案
- 江苏无锡金桥双语实验学校2016小升初考试语文真题
- 电设报告 - 图文
- ADSLnbsp常见问题和经典故障一
- 关于开展2012年“三八”节表彰活动的通知
- 《化工工艺学》试题库(部分)(7-7)
- 变压器设计原理
- 安全生产操作规程
- 南城3×50MW供热式火力发电厂发电厂电气部分设计
- java面试题集锦
- 重庆邮电大学2010考研真题
- 2016年“长治市非遗专题灯谜创作大赛”获奖谜作及名单
- 2018年杨浦区初中毕业生学业模拟考试(定稿)
- 高级财务会计期末复习题一单选题
- 国际贸易
- 2016年9月课程考试《司法文书》论文(案例)考核课程
- 联系方式
- 公共危机管理题库和答案
- 关于促进科技中介机构发展的若干意见