示商品,更能吸引客户。虚拟商场是人们热中的话题。客户可以在虚拟商场中漫游,挑选商品。许多Web3D图形技术的软件厂商是瞄准了电子商务的,如cult3D和viewpoint,其图形技术主要是用于商品的3D展示,您甚至于可以在网上操作或使用要购买的商品。然而,Web3D图形的商业利益究竟有多大,网上的商品销售商只有在能增加销售额的情况下,才肯出资制作Web3D图形。
2.联机娱乐休闲与游戏:
多用户联机3D游戏将搬上互联网,现在您已经可以在网上经历简单的赛车或空中射击游戏,下载文件不超过2M。当然,如果您想运行大的联机游戏仍然需要CD-ROM的支持。娱乐休闲网站对Web3D图形有更多的需求,如:城市景观或风景点的虚拟旅游,虚拟博物馆,展览会,艺术画廊等等。
3.医学:
医疗培训,医疗商业的B2B和B2,许多医学图像的处理将使用Web3D图形技术。
4.地理信息系统的数据可视化:
将GIS与Web3D结合起来,可以在互联网上建立许多应用系统,如地图,导游,城市建设,交通运输等等。
5.多用户虚拟社区(virtual-community):
虚拟社区是建立一个大型的虚拟场景,每个虚拟场景的访问者都可以指定一个"替身","替身"在场景中可以漫游。当几个远程访问者同时访问虚拟社区时,它们可以用语音或文字通讯。虚拟社区可以是一个会场,教室,俱乐部,展览会,画廊等。它真正实现了虚拟现实,在互联网上仿真虚拟社会的各种活动,分布在世界各地的人可以借助互联网开展各种文化科技,娱乐活动。而此时虚拟场景就是他们的三维环境。虚拟社区很可能是Web3D图形在互联网上的一种主要应用形式。
现在,已有几家公司推出了自己虚拟社区及全套的解决方案,如Blaxxun,AdobeAtmosphere.Geometrek,Cybertown,OuterWorlds,berkom,ActiveWorlds,iCity,pointworlds等。它们除了提供虚拟场景制作以外,还提供:服务器管理,通讯管理,用户管理等功能。Blaxxun公司VirtualWorldsPlatform5.1服务器已经有许多网站用它建立虚拟社区。
§1.3JAVA3D在Web中的成功
Java在互联网上几乎随处可见,而它在3D图形上正在显示出更大的威力。使用Java的重要理由之一是它的平台无关性。它的平台无关性来自于Java只需部分编译,负责编译Java程序的叫做JavaVirtualMachine(JVM),不同的平台有它自己JVM,处理与平台相关的功能。因此,只要支持JVM,就能运行JAVA小程序。两种最有名的浏览器Netscape和IE3都支持JVM(Java1.0.2)。因此用Java制作的3D图形几乎都可以在互联网的浏览器上显示。令人遗憾的是:微软在它的未来极具发展前景的WindowXP中不再预装JVM,由此引起的麻烦是巨大的:要运行基于JAVA的应用,就必须安装JVM,这显然比安装一个插件更麻烦。
由于全世界有90%的人上网使用微软不要钱的浏览器IE,而Web3D的渲染引擎插件又必须安装在IE上。面对Web3D技术未来的发展潜力,软件巨人微软作何打算我们不得而知。ShoutInteractiveandBlaxxun两个公司使用纯Java技术开发了实时渲染引擎(大小只有50K),这个小小的JAVA小程序,不仅在网上自动下载,而且可以在客户端实时渲染3D场景,逐帧显示动态的3D图像。ShoutInteractiveandBlaxxun为用户扩充自己的3D图形功能预留了极大的空间。两个公司并没有抛弃VRML,ShoutInteractive公司可以接受VRML文件,并把它变成自己的文件格式,Blaxxun公司的软件可以直接运行VRML。当然,Shout3D的小巧灵活并不是没有代价的:它简化了VRML的功能,VRML的一些功能不能用小小50K的Java来实现。可以说这两个公司最先在它们的产品中实现了核心的X3D技术。
使用这种"无插件技术"(plug-in)的Shout公司为Macy'sandExcitewebportal网站制作了栩栩如生如生的3D虚拟时装模特展示,观看者用菜单可以选择:展示的服装,模特的肤色,发型,步型,甚至于灯光都可以用菜单即刻更换。观看者可以用鼠标变换视角,远近,从各个角度观看动态展示。而所有的展示文件只有1M-2M,不需下载插件。图像的质量较好,人物动画的动作流畅自然。
第二章Java3D技术的简介
Java3D用其自己定义的场景图和观察模式等技术构造了3D的上层结构,实现了在Java平台使用三维技术。本章将介绍Java3D特有的两个重要概念:场景图(SceneGraph)、观察模式(ViewModel)。在接口使用上的介绍分为两部分:说明如何使用Java3D接口;说明如何将Java3D技术与Java原有的Web技术(JSP、Serverlet)相结合,在网页上实现三维显示。
§2.1Java3D概述
2.1.1Java3D简介
Java3DAPI是Sun定义的用于实现3D显示的接口。3D技术是底层的显示技术,Java3D提供了基于Java的上层接口。Java3D把OpenGL和DirectX这些底层技术包装在Java接口中。这种全新的设计使3D技术变得不再繁琐并且可以加入到J2SE、J2EE的整套架构,这些特性保证了Java3D技术强大的扩展性。
JAVA3D建立在JAVA2(JAVA1.2)基础之上,JAVA语言的简单性使JAVA3D的推广有了可能。它实现了以下三维显示能够用到的功能:
1.生成简单或复杂的形体(也可以调用现有的三维形体)
2.使形体具有颜色、透明效果、贴图
3.在三维环境中生成灯光、移动灯光
4.具有行为的处理判断能力(键盘、鼠标、定时等)
5.生成雾、背景、声音
6.使形体变形、移动、生成三维动画
7.编写非常复杂的应用程序,用于各种领域如VR(虚拟现实)
2.1.2Java3D与其他三维技术的比较
JAVA3D可应用在三维动画、三维游戏、机械CAD等多个领域。但作为三维显示实现技术,它并不是唯一选择而且是一个新面孔。在Java3D之前已经存在很多三维技术,这些三维技术在实现的技术、使用的语言以及适用的情况上各有不同,我主要介绍与Java3D又密切关系的三种技术:OpenGL、DIRECT3D、VRML
OpenGL
OpenGL是业界最为流行也是支持最广泛的一个底层3D技术,几乎所有的显卡厂商都在底层实现了对OpenGL的支持和优化。OpenGL同时也定义了一系列接口用于编程实现三维应用程序,但是这些接口使用C(C++)语言实现并且很复杂。掌握针对OpenGL的编程技术需要花费大量时间精力。
DIRECT3D
DIRECT3D是Microsoft公司推出的三维图形编程API,它主要应用于三维游戏的编程。众多优秀的三维游戏都是由这个接口实现。与OpenGL一样,Direct3D的实现主要使用C++语言。
VRML2.0(VRML97)
自1997年12月正式成为国际标准之后,在网络上得到了广泛的应用,这是一种比BASIC、JAVASCRIPT等还要简单的语言。脚本化的语句可以编写三维动画片、三维游戏、计算机三维辅助教学。它最大的优势在于可以嵌在网页中显示,但这种简单的语言功能较弱(如目前没有形体之间的碰撞检查功能),与JAVA语言等其它高级语言的连接较难掌握,因而逐渐被淹没在竞争激烈的网络三维技术中。
表1是Java3D与其它三维技术的比较图,可以从中直观的看出他们相互间的区别:
技术
实现层次
开发技术(难度)
扩展性
最适合应用领域
Java3D
中层(JVM)
Java(较易)
J2SE标准扩展(好)
网上三维显示实现...
OpenGL
底层(显卡)
C\C++(难)
各大厂商支持(较好)
三维设计软件...
Direct3D
底层(操作系统)
C++(较难)
Windows平台(差)
三维游戏...
VRML
上层(网页)
标记语言(容易)
安装插件支持(一般)
网上虚拟现实...
表1:3D技术对招表
§2.2Java3D的场景图结构
Java3D实际上是Java语言在三维图形领域的扩展,与Java一样,Java3D有纯粹的面向对象结构。Java3D的数据结构采用的是SceneGraphsS
上一篇:
java+课程设计+扫雷(论文和程序)
下一篇:
2012邮政局信息公开总结