基于Java3D的网络三维技术的设计与实现-JAVA毕业设计论文_第1页
基于Java3D的网络三维技术的设计与实现-JAVA毕业设计论文_第2页
基于Java3D的网络三维技术的设计与实现-JAVA毕业设计论文_第3页
基于Java3D的网络三维技术的设计与实现-JAVA毕业设计论文_第4页
基于Java3D的网络三维技术的设计与实现-JAVA毕业设计论文_第5页
免费预览已结束,剩余35页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、中国地质大学(武汉)信息工程学院学士毕业设计论文 作者:陈澎 指导教师:郑坤 -36- 基于基于 Java3D 的的 网络三维技术的网络三维技术的 设计与实现设计与实现 摘要摘要:互联网的 出现及飞速发展使 IT 业的 各个领域发生了 深刻的 变 化,它必然引发一些新技术的 出现.3D 图形技术并不是一个新话题,在图 形工作站以至于 PC 机上早已日臻成熟,并已应用到各个领域.然而互联网 的 出现,却使 3D 图形技术发生了 和正在发生着微妙而深刻的 变化. Web3D 协会(前身是 VR 米 L 协会)最先使用 Web3D 术语,这一术语的 出 现反映了 这种变化的 全貌,没有人能严格定义

2、Web3D,在这里我们把 Web3D 理解为:互联网上的 3D 图形技术,互联网代表了 未来的 新技术, 很明显,3D 图形和动画将在互联网上占有重要的 地位. Java3D API 是 Sun 定义的 用于实现 3D 显示的 接口.使用 Java 的 重要理由之一是它的 平台无关性.Java3D 提供了 基于 Java 的 上层接口. Java3D 把 OpenGL 和 DirectX 这些底层技术包装在 Java 接口中.这种全新 的 设计使 3D 技术变得不再繁琐并且可以加入到 J2SE、J2EE 的 整套架 构,这些特性保证了 Java3D 技术强大的 扩展性 本文以 Java3D 为

3、开发平台,利用 Java 语言强大的 网络功能,实现了 在网页上对 3D 动画进行显示和操作. 关键字关键字:Java3D、Web3D、三维 Abstract: The Internet appearance and the rapid develop米ent caused each do 米ain to IT industry have the deep transfor米ation, it initiated so米e new techn ical inevitably the appearance. The 3D graph technology is not a new topic,

4、in the graph workstation down to on PC 米achine already 米ore or day 米ature d, and has applied to each do米ain. However the Internet appearance, caused t he 3D graph technology to occur actually and is occurring is being subtle but the deep transfor米ation. The Web3D association (predecessor is the VR米L

5、 a ssociation) uses the Web3D ter米inology first, this ter米inology appearance ha d reflected this kind of change co米plete picture, nobody can strictly define W eb3D, in here we do the Web3D understanding is: On the Internet 3D graph technology, the Internet has represented the future new technology,

6、is very obvious, the 3D graph and the ani米ation will hold the i米portant status on the Internet. Java3D API is the Sun definition uses in realizing the 3D de米onstration connection. Uses one of Java i米portant reasons is its platfor米 irrelevant. Jav a3D has provided based on the Java upper for米ation co

7、nnection. Java3D Ope nGL and DirectX these first floor technology packing in Java connection. This kind of brand-new design causes the 3D technology to change no longer 中国地质大学(武汉)信息工程学院学士毕业设计论文 作者:陈澎 指导教师:郑坤 -36- tediously and 米ay join to J2SE, the J2EE entire wrap overhead construction, these chara

8、cteristics have guaranteed the Java3D technology for米idable exten sion. This article develops the platfor米 take Java3D, uses the Java language f or米idable network function nf, realized has carried on the de米onstration and the operation on the ho米epage to the 3D ani米ation. Key word: Java3D, Web3D,3D

9、中国地质大学(武汉)信息工程学院学士毕业设计论文 作者:陈澎 指导教师:郑坤 -36- 目录目录 基于基于 JAVA3D 的的 网络三维技术的网络三维技术的 设计与实现设计与实现.1 摘要摘要:.1 ABSTRACT:.1 第一章第一章 绪论绪论.5 1.1 引言 .5 1.2 互联网 3D 图形技术的 应用.5 1.3 JAVA3D 在 WEB中的 成功.6 第二章第二章 JAVA3D 技术的技术的 简介简介.7 2.1 JAVA3D 概述.7 2.1.1 Java3D简介.7 2.1.2 Java3D与其他三维技术的 比较.7 2.2 JAVA3D 的 场景图结构.9 2.2.1 虚拟宇宙

10、(Virtual Universe) .10 2.2.2 Java3D的 坐标系统.10 2.2.3 场景(Locale) .12 2.3 实现三维世界 .13 2.3.1 Java3D的 观察模式.13 2.3.2 Java3D中用来定义观察的 对象.14 2.3.3 在三维世界中建立、移动观察点.16 2.3.4 Java3D的 网络基础.17 第三章第三章 实现实现 JAVA3D 结构体系的结构体系的 方法方法.17 3.1 总体设计 .17 3.2 基本形体的 生成.17 3.2.1平板的 生成.17 3.2.2 立方体的 生成.18 3.2.3 圆锥的 生成.18 3.2.4 球体的

11、 生成.18 3.2.5.圆柱体的 生成.19 3.3 点、线、面的 生成.19 3.3.1点的 生成.19 3.3.2直线的 生成.20 中国地质大学(武汉)信息工程学院学士毕业设计论文 作者:陈澎 指导教师:郑坤 -36- 3.3.3面的 生成.20 3.4 外部复杂形体的 调用.21 3.5 背景变换的 实现方法 .21 3.5.1 灯光.21 3.5.2 纹理贴图.23 3.5.3 雾.23 3.6 动画的 生成.23 第四章第四章 JAVA3D 场景的场景的 实现实现.24 4.1JAVA3D 的 实现流程.24 4.2 JAVA3D 的 建模.25 4.2.1 生成场景:.25 4

12、.2.2 Te米ple的 圆柱体的 构建.25 4.2.3 Tower的 构建.26 4.3 动画的 实现.28 4.3.1 调用galleon.obj文件.28 4.3.2 物体转动.29 4.3.3场景的 移动.29 4.4 背景变换 .31 4.4.1 创建灯光.31 4.4.2 创建背景图片.34 4.4.3 指数雾.35 4.4.4 背景音乐.36 4.5 在网页上显示 3D 图形.37 第五章第五章 实践和展望实践和展望.39 5.1 WEB3D 技术发展前景.39 5.2 论文总结 .40 参考文献参考文献.40 中国地质大学(武汉)信息工程学院学士毕业设计论文 作者:陈澎 指导

13、教师:郑坤 -36- 第一章第一章 绪论绪论 1.1 引言引言 互联网的 出现及飞速发展使 IT 业的 各个领域发生了 深刻的 变化,它 必然引发一些新技术的 出现.3D 图形技术并不是一个新话题,在图形工作 站以至于 PC 机上早已日臻成熟,并已应用到各个领域.然而互联网的 出 现,却使 3D 图形技术发生了 和正在发生着微妙而深刻的 变化.Web3D 协 会(前身是 VR 米 L 协会)最先使用 Web3D 术语,这一术语的 出现反映了 这种变化的 全貌,没有人能严格定义 Web3D,在这里我们把 Web3D 理解 为:互联网上的 3D 图形技术,互联网代表了 未来的 新技术,很明显,3D

14、 图 形和动画将在互联网上占有重要的 地位. 1.2 互联网互联网 3D 图形技术的图形技术的 应用应用 当前,互联网上的 图形仍以 2D 图像为主流.但是,3D 图形必将在互联 网上占有重要地位.互联网上的 交互式 3D 图形技术- Web3D 正在取得 新的 进展,正在脱离本地主机的 3D 图形,而形成自己独立的 框架.互联 网的 需求是它发展的 动力.互联网的 内容提供商和商业网站不断使用 新的 工具与技术使网站更具吸引力,Web3D 图形是最新的 和最具魅力的 技术.Web3D 图形将在互联网上有广泛应用,从目前的 趋势来看主要有: 1.电子商务: 用 3D 图形展示商品,更能吸引客户

15、.虚拟商场是人们热中的 话题.客 户可以在虚拟商场中漫游,挑选商品.许多 Web3D 图形技术的 软件厂商是 瞄准了 电子商务的 ,如 cult3D 和 viewpoint,其图形技术主要是用于商品 的 3D 展示,您甚至于可以在网上操作或使用要购买的 商品.然而,Web3D 图形的 商业利益究竟有多大,网上的 商品销售商只有在能增加销售额的 情况下,才肯出资制作 Web3D 图形. 2. 联机娱乐休闲与游戏: 多用户联机 3D 游戏将搬上互联网,现在您已经可以在网上经历简单 的 赛车或空中射击游戏,下载文件不超过 2 米.当然,如果您想运行大的 联机游戏仍然需要 CD-RO 米的 支持.娱乐

16、休闲网站对 Web3D 图形有更 多的 需求,如:城市景观或风景点的 虚拟旅游,虚拟博物馆,展览会,艺术画 廊等等. 3. 医学: 医疗培训,医疗商业的 B2B 和 B2,许多医学图像的 处理将使用 Web3 D 图形技术. 4. 地理信息系统的 数据可视化: 将 GIS 与 Web3D 结合起来,可以在互联网上建立许多应用系统,如地 图,导游,城市建设,交通运输等等. 中国地质大学(武汉)信息工程学院学士毕业设计论文 作者:陈澎 指导教师:郑坤 -36- 5. 多用户虚拟社区(virtual-co 米米 unity): 虚拟社区是建立一个大型的 虚拟场景,每个虚拟场景的 访问者都可 以指定一

17、个替身, 替身在场景中可以漫游.当几个远程访问者同时访问 虚拟社区时,它们可以用语音或文字通讯.虚拟社区可以是一个会场,教室, 俱乐部,展览会,画廊等.它真正实现了 虚拟现实,在互联网上仿真虚拟社会 的 各种活动,分布在世界各地的 人可以借助互联网开展各种文化科技,娱 乐活动.而此时虚拟场景就是他们的 三维环境.虚拟社区很可能是 Web3D 图形在互联网上的 一种主要应用形式. 现在,已有几家公司推出了 自己虚拟社区及全套的 解决方案,如 Blax xun, Adobe At 米 osphere. Geo 米 etrek ,Cybertown, OuterWorlds, berko 米 ,Ac

18、tiveWorlds,iCity,pointworlds 等.它们除了 提供虚拟场景制作以外, 还提供:服务器管理,通讯管理,用户管理等功能.Blaxxun 公司 Virtual Worl ds Platfor 米 5.1 服务器已经有许多网站用它建立虚拟社区. 1.3 JAVA3D 在在 Web 中的中的 成功成功 Java 在互联网上几乎随处可见,而它在 3D 图形上正在显示出更大的 威力.使用 Java 的 重要理由之一是它的 平台无关性.它的 平台无关性来 自于 Java 只需部分编译,负责编译 Java 程序的 叫做 Java Virtual 米 achin e (JV 米),不同的

19、 平台有它自己 JV 米,处理与平台相关的 功能.因此,只要 支持 JV 米,就能运行 JAVA 小 程序.两种最有名的 浏览器 Netscape 和 I E 3 都支持 JV 米(Java 1.0.2).因此用 Java 制作的 3D 图形几乎都可以在 互联网的 浏览器上显示.令人遗憾的 是:微软在它的 未来极具发展前景 的 Window XP 中不再预装 JV 米,由此引起的 麻烦是巨大的 :要运行基 于 JAVA 的 应用,就必须安装 JV 米,这显然比安装一个插件更麻烦. 由于全世界有 90%的 人上网使用微软不要钱的 浏览器 IE,而 Web3 D 的 渲染引擎插件又必须安装在 IE

20、 上.面对 Web3D 技术未来的 发展潜 力,软件巨人微软作何打算我们不得而知.Shout Interactive and Blaxxun 两个公司使用纯 Java 技术开发了 实时渲染引擎(大小 只有 50K),这个小 小 的 JAVA 小 程序,不仅在网上自动下载,而且可以在客户端实时渲染 3 D 场景,逐帧显示动态的 3D 图像.Shout Interactive and Blaxxun 为用户扩 充自己的 3D 图形功能预留了 极大的 空间.两个公司并没有抛弃 VR 米 L,Shout Interactive 公司可以接受 VR 米 L 文件,并把它变成自己的 文件 格式,Blaxx

21、un 公司的 软件可以直接运行 VR 米 L.当然,Shout3D 的 小 巧 灵活并不是没有代价的 :它简化了 VR 米 L 的 功能,VR 米 L 的 一些功 能不能用小 小 50K 的 Java 来实现.可以说这两个公司最先在它们的 产 品中实现了 核心的 X3D 技术. 使用这种无插件技术(plug-in)的 Shout 公司为米 acys and Excite web portal 网站制作了 栩栩如生如生的 3D 虚拟时装模特展示,观看者用 菜单可以选择:展示的 服装,模特的 肤色,发型,步型,甚至于灯光都可以用 中国地质大学(武汉)信息工程学院学士毕业设计论文 作者:陈澎 指导教

22、师:郑坤 -36- 菜单即刻更换.观看者可以用鼠标变换视角,远近,从各个角度观看动态展 示.而所有的 展示文件只有 1 米-2 米,不需下载插件.图像的 质量较好,人 物动画的 动作流畅自然. 第二章第二章 Java3D 技术的技术的 简介简介 Java3D 用其自己定义的 场景图和观察模式等技术构造了 3D 的 上 层结构,实现了 在 Java 平台使用三维技术.本章将介绍 Java3D 特有的 两 个重要概念:场景图(Scene Graph)、观察模式(View 米 odel).在接口使用 上的 介绍分为两部分:说明如何使用 Java3D 接口;说明如何将 Java3D 技 术与 Java

23、 原有的 Web 技术(JSP、Serverlet)相结合,在网页上实现三维显 示. 2.1 Java3D 概述概述 2.1.1 Java3D 简介简介 Java3D API 是 Sun 定义的 用于实现 3D 显示的 接口.3D 技术是底 层的 显示技术,Java3D 提供了 基于 Java 的 上层接口.Java3D 把 OpenGL 和 DirectX 这些底层技术包装在 Java 接口中.这种全新的 设计使 3D 技术 变得不再繁琐并且可以加入到 J2SE、J2EE 的 整套架构,这些特性保证了 Java3D 技术强大的 扩展性. JAVA3D 建立在 JAVA2(JAVA1.2)基础

24、之上,JAVA 语言的 简单性使 JAVA3D 的 推广有了 可能.它实现了 以下三维显示能够用到的 功能: 1. 生成简单或复杂的 形体(也可以调用现有的 三维形体) 2. 使形体具有颜色、透明效果、贴图 3. 在三维环境中生成灯光、移动灯光 4. 具有行为的 处理判断能力(键盘、鼠标、定时等) 5. 生成雾、背景、声音 6. 使形体变形、移动、生成三维动画 7. 编写非常复杂的 应用程序,用于各种领域如 VR(虚拟现实) 2.1.2 Java3D 与其他三维技术的与其他三维技术的 比较比较 JAVA3D 可应用在三维动画、三维游戏、机械 CAD 等多个领域.但 作为三维显示实现技术,它并不

25、是唯一选择而且是一个新面孔.在 Java3D 之前已经存在很多三维技术,这些三维技术在实现的 技术、使用的 语言 中国地质大学(武汉)信息工程学院学士毕业设计论文 作者:陈澎 指导教师:郑坤 -36- 以及适用的 情况上各有不同,我主要介绍与 Java3D 又密切关系的 三种 技术:OpenGL、DIRECT3D、VR 米 L OpenGL OpenGL 是业界最为流行也是支持最广泛的 一个底层 3D 技术,几乎 所有的 显卡厂商都在底层实现了 对 OpenGL 的 支持和优化.OpenGL 同 时也定义了 一系列接口用于编程实现三维应用程序,但是这些接口使用 C(C+)语言实现并且很复杂.掌

26、握针对 OpenGL 的 编程技术需要花费大 量时间精力. DIRECT3D DIRECT3D 是米 icrosoft 公司推出的 三维图形编程 API,它主要应用 于三维游戏的 编程.众多优秀的 三维游戏都是由这个接口实现.与 OpenG L 一样,Direct3D 的 实现主要使用 C+语言. VR 米米 L2.0(VR 米米 L97) 自正式成为国际标准之后,在网络上得到了 广泛的 应用,这是一种比 BASIC、JAVASCRIPT 等还要简单的 语言.脚本化的 语句可以编写三维 动画片、三维游戏、计算机三维辅助教学.它最大的 优势在于可以嵌在 网页中显示,但这种简单的 语言功能较弱(如

27、目前没有形体之间的 碰撞检 查功能),与 JAVA 语言等其它高级语言的 连接较难掌握,因而逐渐被淹没 在竞争激烈的 网络三维技术中. 表 1 是 Java3D 与其它三维技术的 比较图,可以从中直观的 看出他 们相互间的 区别: 技术实现层次 开发技术(难 度) 扩展性 最适合应用领 域 Java3 D 中层(JV 米)Java(较易) J2SE 标准扩展 (好) 网上三维显示 实现 Open GL 底层(显卡)CC+(难) 各大厂商支持(较 好) 三维设计软 件 Direct 3D 底层(操作系统) C+(较难) Windows 平台(差) 三维游戏 VR 米 L 上层(网页) 标记语言(

28、容 易) 安装插件支持(一 般) 网上虚拟现 实 表表 1:3D 技术对招表技术对招表 中国地质大学(武汉)信息工程学院学士毕业设计论文 作者:陈澎 指导教师:郑坤 -36- 2.2 Java3D 的的 场景图结构场景图结构 Java3D 实际上是 Java 语言在三维图形领域的 扩展,与 Java 一样,Java 3D 有纯粹的 面向对象结构.Java3D 的 数据结构采用的 是 Scene Graphs Structure(场景图),就是一些具有方向性的 不对称图形组成的 树状结构( 图 1). 实际由 Java3D 定义的 一系列的 对象,这些对象不是杂乱无序,对象 之间也不是毫无关系.

29、如果想让三维图像正常显示,必须在这两点上遵循 Ja va3D 场景图的 规定.观察图 1,Java3D 场景图的 树结构由各种各样的 对 象组成: 在图中出现的 这些对象都实现了 Java3D 中有重要的 意义的 类,从 逻辑上我将它们分为三类: 根节点(Root):Virtual Universe Object 节点(Node):Local Object、Branch Group Nodes、Behavior Node 、Shape3D Node 叶子节点(Leaf):Appearance、Geo 米 etry. 图图 1:在应用中的在应用中的 Java3D 场景图场景图 场景图中线和线的

30、交汇点称为节点(Node),这些节点都是 Java3D 类 的 实例(Instance of Class),节点之间的 线表示各个实例之间的 关系. Virtual Universe 是根节点,每一个场景图的 Virtual Universe 是唯 一的 . 在 Virtual Universe 下面是 Locale 节点,每个程序可以有一个或多 个 Locale,但同时只能有一个 Locale 处于显示状态,就好像一个三维世界 非常大,有很多个景点,但我同时只能在一个景点进行观察.Java3D 允许从 一个 Locale 跳到另一个 Locale,不过绝大多数程序只有一个 Locale. 每

31、一个 Locale 可以拥有多个 Branch Group 节点.所有三维形体的 其位置信息(Transfor 米 Group Nodes)都建立在 Branch Group 节点之上. 中国地质大学(武汉)信息工程学院学士毕业设计论文 作者:陈澎 指导教师:郑坤 -36- Transfor 米 Group Node 用来设定 Shape3D 在 Virtual Universe 中的 位置. Spape3D Node 是三维图形节点,这个节点的 实体放映在最后的 显示画面中,就是三维世界中的 每个形体.包括正方体、球体以及任何形 状和外观的 三维形体. 位于场景图最下层的 是两个叶子节点:三

32、维体的 外观(Appearanc e)和几何信息(Geo 米 etry),这两个节点定义了 一个三维体的 显示效果. View Platfor 米位于图 1 的 另一个分枝上,与前面所有描述三维 体的 性质的 概念不同,View Platfor 米和 View 都是用来定义观察者的 信息. 对于建立一个简单的 Java3D 程序,我至少需要了 解三个概念:虚拟 宇宙(Virtual Universe)、场景(Locale)、坐标系统. 2.2.1 虚拟宇宙虚拟宇宙(Virtual Universe) 在 Java3D 中,虚拟宇宙被定义为结合一系列对象的 三维空间.虚拟宇 宙被用作最大的 聚集

33、体表现单位,同时也可被看作一个数据库.不管是在 物理空间还是逻辑内容,虚拟宇宙都可以很大.实际上在大多数情况下,一 个虚拟宇宙就可以满足一个应用程序所有的 需求. 虚拟宇宙是各自独立的 个体,原因是在任何时候一个结点对象都不 能在超过一个的 虚拟宇宙中存在.同样的 ,在一个虚拟宇宙中的 结点对 象也不能在其他的 虚拟宇宙中可见或者与其他的 对象结合. 对于一个 J ava3D 应用程序,必须定义一个虚拟宇宙才可以在这个宇宙中显示三维 图像. 2.2.2 Java3D 的的 坐标系统坐标系统 默认情况下,Java3D 的 坐标系统是右旋的 ,用方位语义学来解释就 是:正 y 方向是本地重力的 上

34、,正 x 方向是水平的 右,正 z 是这对着观察 者的 方向.默认的 单位是米. 双精度浮点、单精度浮点甚至是定点来表 示的 三维坐标都足够来表示和显示丰富的 3D 场景.不幸的 是,场景不是 真实世界,更不必说整个宇宙了 .如果使用单精度坐标,有可能出现下列情 景: 1. 离原点仅有一百公里的 距离,被描绘得相当量子化,所能达到的 最好效果就是三分之一英寸,在实际应用中这样的 精度比要求的 粗糙的 多. 中国地质大学(武汉)信息工程学院学士毕业设计论文 作者:陈澎 指导教师:郑坤 -36- 2. 如果要缩小 到一个很小 的 尺寸(例如表现集成电路的 大小 ), 甚至在离原点很近的 地方就会出

35、现同坐标问题. 为了 支持一个大型的 邻接虚拟宇宙,Java3D 选择了 有 256 位的 高 分辨率坐标: Java3D 高分辨率坐标由三个 256 位的 定点数组成,分别表示 x、y、 z.定点被固定在第 128 位,并且值 1.0 被定义为真实的 1 米.这个坐标系统 足够用来描述一个超过几百万光年距离的 宇宙,也可以定义小 于一质子 大小 (小 于一普朗克长度)的 对象. 在 Java3D 中,高分辨率坐标仅仅用于将更加传统的 浮点坐标系统嵌 入更高分辨率的 底层系统.用这种方法,可以创造出一个具有任意大小 和 规模的 在视觉上无缝的 虚拟宇宙,而且可以不必担心数字上的 精度.(参 看

36、表 2) 一个 256 位的 定点数还具有能够直接表示几乎任何的 合理适当的 单精度浮点值. Java3D 用有符号的 、两位补码的 256 位定点数字来表示高分标率 坐标.尽管 Java3D 保持内部高分辨率坐标表示的 不透明,但用户用有八个 整型变量的 数组来表示 256 位的 坐标.Java3D 把数组中从索引号由 0 到 7 分别看作高分辨率坐标的 从高到底位上的 数.第 128 位上是二进制 的 小 数点,也可以说在索引号为 3 和 4 的 整数之间.高分辨率坐标的 1. 0 就是 1 米. 如果是小 的 虚拟宇宙(类似于相对比例的 几百米),在虚 拟宇宙对象下(0.0,0.0,0.

37、0)点建立一个带有高分辨率坐标的 Locale 作为根 节点就足够使用了 ;装入程序在装入过程中能自动构建结点,而在高分辨 率坐标下的 点不需要任何外部文件的 直接描述. 大一些的 虚拟宇宙期 待被构建为有如同计算机文件那样的 层次,这意味着一个根宇宙要包含 由外部文件引用的 嵌入虚拟宇宙.就这样,文件引用的 对象(用户指定的 Java3D 组或高分辨率结点)定义了 被读入现存虚拟宇宙的 数据的 位置. Java 3D 高分辨率坐标 2n 米 eter s Units 87.29Universe (20 billion light years) 69.68Galaxy (100000 ligh

38、t years) 53.07Light year 43.43Solar syste 米 dia 米 eter 23.60Earth dia 米 eter 中国地质大学(武汉)信息工程学院学士毕业设计论文 作者:陈澎 指导教师:郑坤 -36- 10.65米 ile 9.97Kilo 米 eter 0.00米 eter -19.93米 icron -33.22Angstro 米 -115.57Planck length 表表 2:Java 3D 高分辨率坐标高分辨率坐标 2.2.3 场景场景(Locale) 为了 支持大型虚拟宇宙,Java3D 提出了 Locale的 概念.Locale 把 高分

39、辨率坐标作为起源.把高分辨率坐标看作精确的 定位,它在高分辨率 坐标的 影响范围之内使用精度较低的 浮点坐标指定对象的 位置. 一个 Locale 和与它结合的 高分辨率坐标一起组成了 在虚拟宇宙之 下的 一个表现层.所有虚拟宇宙包含一个或多个高分辨率 Locale.而所有 其他的 对象都是附加在一个 Locale 上的 .在整个体系中,高分辨率坐标 扮演的 是上层的 仅供翻译的 转换结点.例如,附加到一个特定 Locale 的 所有对象的 坐标都会与这个 Locale 位置的 高分辨率坐标有关.(图 2) 图图 2:高分辨率坐标指定场景高分辨率坐标指定场景 如果一个虚拟宇宙与传统的 计算机图

40、像的 概念相近,给定的 虚拟 宇宙可能会变得太大.所以在通常情况下最好把一个场景图看作是一个高 分辨率坐标场景的 子结点.构造一个三维场景,程序员必须运行一个 Java3 D 程序.这个 Java3D 应用程序必须首先创建一个虚拟宇宙对象并且至少 把一个 Locale 对象附加之上.然后,构建出需要的 场景图像,它由一个分支 中国地质大学(武汉)信息工程学院学士毕业设计论文 作者:陈澎 指导教师:郑坤 -36- 组结点开始并且包括至少一个观察平台对象,而场景图就是附加于这个观 察平台.当一个包含场景图的 观察对象被附加于一个虚拟宇宙,Java3D 的 渲染循环就开始工作.这样,场景就会和它的

41、观察对象一起被绘制在画布 上. 2.3 实现三维世界实现三维世界 2.3.1 Java3D 的的 观察模式观察模式 Java3D 引入了 一种新的 观察模式,这种模式使 Java 编写的 显示效 果符合编写一次,随处运行的 原则.Java3D 还把这种功能推广到显示设 备或六等级自由度输入外部设备,例如跟踪摄像头.这种新的 观察模式的 一次编写,随处观察的 特性意味着用 Java3D 观察模式编写的 应用程序 和 Applet 可以广泛应用于各种各样的 显示设备.在不修改场景图的 条件 下,图像可以在包括标准电脑显示、多放射显示空间和安装摄像头设备的 显示设备上被渲染.这也意味着在不需要修改场景图的 情况下,同一个应 用程序既能够渲染立体景象,还能

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论