0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

采用Java和VRML相结合实现虚拟机房的设计

电子设计 来源:郭婷 作者:电子设计 2019-01-15 08:07 次阅读

VRML(虚拟现实建模语言)是以虚拟现实为特征的3D Web技术的核心,它是一种描述交互式三维对象和世界的文件格式,它允许你去描述一个现有的或想象的景物并将它放入虚拟的三维环境中。随着国际互联网的普及,网络技术和硬件设施的飞速发展,虚拟现实技术将成为今后网络多媒体发展方向的主流。VRML作为一种ISO国际标准将得到越来越广泛的应用。

1 虚拟机房的总体设计

虚拟机房三维立体场景包含机房内的各种三维立体造型,如黑板、电脑桌、电脑椅、电脑、空调、交换机、门窗等。系统总体结构图如图1所示。

采用Java和VRML相结合实现虚拟机房的设计

2.2 几何建模的实现

VRML2.O有着丰富的造型功能,利用基本几何体Geometry节点和描述物体表面性质的Appearance节点,可以创建各种形态的三维实体;再利用Light节点和Viewpoint节点可以建立光照和视点,从而创建出逼真的虚拟场景。

采用Java和VRML相结合实现虚拟机房的设计

各子对象的创建主要运用的是几何建模技术,先从形状和外观上进行建模,再添加纹理映射的方法实现建模。纹理数据来自实地用数码相机拍摄的照片。

2.2.1 交换机的建模

现代机房中交换机是必不可少的设备,交换机的建模采用Billboard组节点来实现。值得注意的是Billboard组节点中使用的纹理图背景必须是透明的,这是使用Billboard组节点的关键。通过Billboard组节点可以快速方便地创建一些静态的模型,例如虚拟机房中的空调等都可以用Billboard组节点创建。使用Billboard组节点创建的模型,形象逼真,具有很好的视觉效果;并且代码量小,渲染速度快。

利用Billboard节点创建交换机的源代码如下所示。

Billboard { axisOfRotation 0.0 1.0 0.O

children[Shape{appearance Appearance{

texture ImageTexture {url"jiaohuanji.png"}}

geometry Box{size 3.O 3.0 3.0})]}

运行效果如图3所示。

采用Java和VRML相结合实现虚拟机房的设计

2.2.2 门的建模

虚拟机房的门是先使用VRML中的IndexedFaceSet面集节点建立造型,再贴上实拍的门的纹理贴图,做出逼真的虚拟门,关键代码如下。

采用Java和VRML相结合实现虚拟机房的设计

采用Java和VRML相结合实现虚拟机房的设计

现实生活中的任何物体都是由各个平面组合而成的,而VRML的IndexedFaceSet面集节点就是通过创建物体造型的各个面,再赋予材质和颜色,还可以添加不同的纹理贴图,从而创建逼真的物体造型。利用VRML的IndexedFaceSet面集节点几乎可以创建现实生活中存在的任何物体造型。虚拟机房中的房屋造型、电脑桌、电脑椅、电脑等造型都是使用IndexedFaceSet面集节点创建,再添加上实拍的纹理贴图,创建而成的。

2.3 交互功能的实现

在虚拟机房场景中,使用Touchsensor节点、TimeSensor节点、OrientationInterpolator节点和Script节点,并用ROUTE把各个事件联系起来,创建了门的开、关的交互动作。

在虚拟机房的虚拟场景中,当鼠标指向门时,会出现一个手形指针,这时单击鼠标,门就会缓慢地开开,再单击鼠标,门又会缓慢地关闭。实现代码如下所示。

采用Java和VRML相结合实现虚拟机房的设计

3 虚拟文件性能优化

三维场景的呈现是通过浏览器已默认视点为参照对场景描述文件的解释而完成的,每当视点发生改变,浏览器就会重新计算场景中各对象的新位置并重新进行渲染,因而会出现当改变视点时,浏览器渲染的速度跟不上视点的变化速度,从而产生停顿的现象。为了解决此问题,采取了如下措施:

(1)最大可能地使用重用机制。在场景内,有不少反复出现的物体,比地板砖、电脑、电脑桌、椅子、灯等,这些对象中形状完全相同者,采用DEF和USE的实例引用法进行复制,极大地简化了文件,减轻了浏览器的负担。

(2)利用Inline节点,减少文件的体积,提高代码的 重用率;

(3)利用LOD细节层次节点实现场景切换技术,实现 同一对象模型的自动转换。为场景中某一对象建立多个不同的模型,当视点离对象较远时采用简单模型,较近时采用细化模型。

4 总结

文章介绍了在线虚拟机房的模型、场景建模技术的详细设计和实现,构建了一个基于VRML虚拟现实建模语言的虚拟机房。VRML具有语法简单、三维建模功能强大、便于网上发布等优点,但仍不能满足各行各业的需求,一些高级交互功能的实现必须借助于Java等功能强大的高级语言来实现。Java和VRML相结合来建立三维虚拟世界,将会在网络上展现更逼真的三维虚拟场景,给使用者更真实的感觉。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • JAVA
    +关注

    关注

    19

    文章

    2921

    浏览量

    103385
  • 交换机
    +关注

    关注

    19

    文章

    2508

    浏览量

    96595
  • 虚拟现实
    +关注

    关注

    15

    文章

    2260

    浏览量

    92648
收藏 人收藏

    评论

    相关推荐

    请问QTE可以同几种JAVA虚拟机集成

    《嵌入式linux应用开发完全手册》第500页中有讲:“QTE可以同几种JAVA虚拟机集成。JAVA程序可以基于QTE的工作平台上运行,提供同源程序相同的效果”我就是想请问,是否有那个版本的QTE是有带
    发表于 05-24 05:45

    浅谈Java虚拟机的研究与移植

    Kaffe移植的关键技术及方案基于ST20嵌入式系统的Java虚拟机研究与移植
    发表于 04-25 09:49

    基于VRML-Java虚拟装配系统开发

    在讨论虚拟装配技术内涵的基础上,提出基于VRML-Java虚拟装配系统体系结构,该系统实现了装配模型与显示模型的分离,以及系统的平台无关性。分析了
    发表于 04-18 10:04 40次下载

    Java虚拟机向ARM平台的移植

    介绍Java 虚拟机的概念,以常用的KVM 为例,讲述了将Java 虚拟机移植到ARM 平台的方法,重点介绍了移植过程中的编译选项。
    发表于 09-23 11:54 38次下载

    Java虚拟机向ARM平台的移植

    介绍Java 虚拟机的概念,以常用的KVM 为例,讲述了将Java 虚拟机移植到ARM 平台的方法,重点介绍了移植过程中的编译选项。
    发表于 09-23 11:54 22次下载

    基于VRMLJava3D的虚拟漫游系统研究

    采用3DSMAX对别墅场景进行建模,提出将VRMLJava3D相结合为该场景添加交互功能的方案;阐述了建模方法、用Java3D控制场景的方
    发表于 12-25 12:43 20次下载

    微软java虚拟机下载

    微软java虚拟机下载:Java虚拟机(JVM)是Java Virtual Machine的缩写,它是一个虚构出来的计算机,是通过在实际的计
    发表于 02-26 08:26 38次下载

    基于VRML的火箭炮虚拟结构漫游技术

    针对火箭炮结构教学存在的理解抽象困难、难以观察到内部结构等问题,提出了构建火箭炮基于VRML虚拟漫游场景。3DS MAX、UG、Vrml 等软件相结合的方法对火箭炮结构漫游场景进行
    发表于 08-06 23:01 23次下载

    Java虚拟机基础

    JVM基础----java虚拟机的学习内容。
    发表于 10-30 10:21 0次下载

    深入JAVA虚拟机

    深入JAVA虚拟机
    发表于 03-19 11:24 1次下载

    JAVA虚拟机的体系结构及基本类型

    JAVA虚拟机的体系结构 下图是JAVA虚拟机的结构图,每个Java虚拟机都有一个类装载子系统,
    发表于 09-27 11:30 0次下载
    <b class='flag-5'>JAVA</b><b class='flag-5'>虚拟机</b>的体系结构及基本类型

    基于负载预测的虚拟机动态调度算法研究与实现

    在云计算系统中为了实现负载均衡和资源的高效利用,需要在虚拟机粒度上对云计算系统进行调度,通过热迁移技术将虚拟机从高负载物理节点迁移到低负载物理节点。把负载预测技术和虚拟机动态调度技术
    发表于 11-24 14:44 9次下载
    基于负载预测的<b class='flag-5'>虚拟机</b>动态调度算法研究与<b class='flag-5'>实现</b>

    Java虚拟机参数调优

    随着JAVA在应用系统级的项目开发中的使用越来越广泛,虚拟机、垃圾收集、热点编译、J2EE等新技术层出不穷,JAVA作为系统级开发的一个选择的优势也越来越明显,在此同时其不能完全编译、垃圾收集等与生
    发表于 04-03 11:29 1次下载

    由浅入深的了解Java虚拟机

    说到Java虚拟机,相信作为Java程序员的小伙伴们都不陌生,他们每天都在写Java代码,写的代码都是在一个叫做Java
    的头像 发表于 01-01 17:50 2130次阅读

    Java:JVM虚拟机的入门知识

    Java开发现在面试越来越难了,进大厂必备的JVM、多线程高并发这都是最基础的知识了,今天我们一起来学习Java虚拟机入门。
    的头像 发表于 07-01 11:43 2152次阅读
    <b class='flag-5'>Java</b>:JVM<b class='flag-5'>虚拟机</b>的入门知识