空间信息可视化有与虚拟现实实验报告学院:资源与土木工程学院班级:测绘1402姓名:古再丽努尔·喀日学号: 20141668指导老师:郭甲腾2017 年 5 月成绩评定表目录VRML编程环境熟悉 (4)VRML绘制基本几何模型 (7)VRML空间变换与群节点设计 (16)VRML 绘制复杂造型 (20)VRML环境设计与视点控制 (22)VRML动画交互 (28)结课作业 (37)实验一 VRML编程环境熟悉智能自动完成在编辑 VRML 文本时能够根据上下文关系及其在场景图中的位置给出一个包含合适的 VRML 标识文本的列表以供选择。
这些 VRML 标识文本关键字关键字、PROTO 原型定义名称、节点名称、域的名称、域类型、SFNode 节点和 MFNode 节点的子域、标准 VRML 脚本对象及其属性和方法的名称。
动态错误检测。
场景图树的可视化显示节点的代码能够根据场景图的结构展开或收起以方便编辑,可以在结构视图中选择要编辑的节点或域。
多文档同时编辑在同一个 VrmlPad 中同时打开多个文件以便进行文件之间的复制、剪切、粘贴的操作, 或方便的查找替换文本。
同一个文件也可以使用两个窗口来浏览同一文件的不同部分。
根据当前打开的文件能够很容易的找到与之相关的文件(例如Inlines、Anchor、EXTERNPROTOs)并进行编辑。
整合脚本调试器可以使用此整合的脚本调试器在内嵌的 vrmlscript 脚本中,或在用 Cortona 控件插入VRML的网页中查找并修复。
这个调试器有这些控制脚本的执行的功能:可以暂停脚本的执行,运行至指定行,设置断点,一步步的运行脚本。
监视脚本的数据状态:当前调用的堆栈;相关的前后代码中变量,数组,对象;计算包含这些数据的表达式。
在调试阶段修改变量,数组,或对象的值。
在调试阶段添加并测试新的脚本代码。
使用 Quick Watch window(快速监视窗口)检验或修改变化的数据。
使用CodeTips(代码上的弹出提示)快速监视脚本中的变量值。
VrmlPad 可以提示用户语法、值类型的错误或警告。
提供域值是否在适当范围中。
可以校验是否有重复的节点定义,是否有不匹配的域名或路由。
网络三维技术的出现最早可追朔到VRML,VRML(Virtual Reality Modeling Language)即虚拟现实建模语言。
VRML开始于20世纪90年代初期。
1994年3月在日内瓦召开的第一届WWW大会上,首次正式提出了VRML这个名字。
1994年10月在芝加哥召开的第二届WWW大会上公布了规范的VRML1.0草案。
1996年8月在新奥尔良召开的优秀3D图形技术会议-Siggraph\'96上公布通过了规范的VRML2.0第一版。
它在 VRML1.0的基础上进行了很大的补充和完善。
它是以SGI 公司的动态境界Moving Worlds提案为基础的。
1997年12月VRML作为国际标准正式发布, 1998年1月正式获得国际标准化组织ISO批准简称VRML97。
VRML97只是在VRML2.0基础进行上进行了少量的修正。
VRML规范支持纹理映射、全景背景、雾、视频、音频、对象运动、和碰撞检测--一切用于建立虚拟世界的所具有的东西。
但是VRML并没有得到预期的推广运用,不过这不是VRML的错,要知道当时14.4k 的modems是普遍的。
VRML是几乎没有得到压缩的脚本代码,加上庞大的纹理贴图等数据,要在当时的互连网上传输简直是场噩梦。
1998年。
VRML组织把自己改名为Web3D组织,同时制订了一个新的标准,Extensible 3D (X3D),到了2000年春天,Web3D组织完成了VRML到X3D的转换。
X3D整合正在发展的XML、JAVA、流技术等先进技术,包括了更强大、更高效的3D计算能力、渲染质量和传输速度。
在此期间,一场Web3D格式的竞争正在进行着。
在去年SIGGRAPH上,展示了超过30种Web3D格式。
当然,只会有其中的一小部分能够脱颖而出最终生存下来。
在本文后半部分将会对一些有实力且目前已经取得了一定市场的格式作介绍。
最近一些厂商瞄准了一个市场,就是从二维图像生成三维物体。
一般都是通过拍摄一个物体的多个方向,再由特殊的软件转化为3D网格。
象viewpoint、realVIZ、Immersion。
尽管出现了如此之多的解决方案,难道让我们每个人都跳上了Web3D的列车了吗?一些困难和障碍仍然存在。
首先是没有统一的标准。
每种方案都使用不同的格式和方法。
Flash能够在今天大行其道是因为它是唯一的,JAVA在各平台得到运用也因他是唯一的。
没有标准,3D在Web上的实现过程还将继续挣扎。
另外插件的问题也是一个困绕。
几乎每个厂商开发的标准都需要自己插件的支持,这些插件从几百K到几兆不等,在带宽不理想的条件下必然限制了一部分人的使用热情。
VRML创作工具很多是“所见即所得”式的,通过图形界面可以方便地创作虚拟境界,但VRML不仅仅是普通的三维设计,尽管这些工具很容易上手,却往往屏蔽掉了VRML标准的具体细节,因为如果想深入掌握VRML,还需要全面了解节点、域、检测器等技术细节,而达成此目的的最好方法就是用编写文本文件的方式创作VRML境界。
VRML文件名全称为:***.wrl或***.wrz。
可由文本编辑器或由VrmlPad编写。
VRML文件可由VRML浏览器直接运行,也可装插件用IE浏览器运行。
本人用的BS_Contact_VRML-X3D_62.exe,装好后可直接运行本地文件,也可在开始菜单设置(开始--程序--BS Contact VRML X3D--Make BS Contact VRML your default viewer in IE)即可通过IE浏览器访问网上的VRML文件了。
VRML是“Virtual Reality Modeling Language”的缩写形式,意思是“虚拟现实造型语言”。
熟悉WWW的人们都知道,受HTML语言的局限性,VRML之前的网页只能是简单的平面结构,就算Java语言能够为WWW增色不少,但也仅仅停留在平面设计阶段,而且实现环境与参与者的动态交互是非常烦琐的。
于是,VRML就应运而生了。
第一代Web是以HTML为核心的二维浏览技术,第二代Web是以VRML 为核心的三维浏览技术。
第二代Web把VRML与HTML、Java、媒体信息流等技术有机地结合起来,形成一种新的三维超媒体Web。
RML被称为继HTML之后的第二代Web语言,它本身是一种建模语言,也就是说,它是用来描述三维物体及其行为的,可以构建虚拟境界(Virtural World), 可以集成文本、图像、音响、MPEG影像等多种媒体类型,还可以内嵌用Java、ECMAScript等语言编写的程序代码。
VRML的基本目标是建立因特网上的交互式三维多媒体,基本特征包括分布式、三维、交互性、多媒体集成、境界逼真性等。
VRML的出现使得虚拟现实象多媒体和因特网一样逐渐走进我们的生活,简单地说,以VRML为基础的第二代万维网=多媒体+虚拟现实+因特网。
第一代万维网是一种访问文档的媒体,能够提供阅读的感受,使那些对Windows风格的PC环境熟悉的人们容易使用因特网,而以VRML为核心的第二代万维网将使用户如身处真实世界,在一个三维环境里随意探究因特网上无比丰富的巨大信息资源。
每个人都可以从不同的路线进入虚拟世界,和虚拟物体交互,这样控制感受的就不再是计算机,而是用户自己,人们可以以习惯的自然方式访问各种场所,在虚拟社区中“直接”交谈和交往。
事实上,目前采用VRML技术取得成功的案例已经很多,例如探路者到达火星后的信息就是利用VRML在因特网上即时发布的,网络用户可以以三维方式随探路者探索火星。
VRML的工作原理 :VRML是一种用在Internet 和Web超链上的,多用户交互的,独立于计算机平台的,网络虚拟现实建模语言。
虚拟世界的显示、交互及网络互连都可以用VRML 来描述。
VRML的设计是从在WEB上欣赏实时3D图象开始的。
VRML浏览器既是插件,又是帮助应用程序,还是独立运行的应用程序,它是传统的虚拟现实中同样也使用的实时3D着色引擎。
这使得VRML应用从三维建模和动画应用中分离出来,在三维建模和动画应用中可以预先对前方场景进行着色,但是没有选择方向的自由。
VRML提供了6+1度的自由,用户可以沿着三个方向移动,也可以沿着三个方向旋转,同时还可以建立与其它3D空间的超链接。
因此VRML是超空间的。
VRML 定义了一种把3D图形和多媒体集成在一起的文件格式。
从语法角度看,VRML文件是显式地定义和组织起来的3D多媒体对象集合;从语义角度看,VRML文件描述的是基于时间的交互式3D多媒体信息的抽象功能行为。
VRML文件描述的基于时间的3D空间称为虚拟境界(Virtual World),简称境界,所包含的图形对象和听觉对象可通过多种机制动态修改。
VRML文件可以包含对其他标准格式文件的引用。
可以把JPEG、PNG和MPEG 文件用于对象纹理映射,把WAV和MIDI文件用于在境界中播放的声音。
另外,还可以引用包含Java或ECMAScript代码的文件,从而实现对象的编程行为。
所有这些都是由其他标准提供的,之所以在VRML中选用它们,是因为它们在Internet上的广泛应用。
VRML 97规范描述了它们在VRML中的用法。
VRML使用场景图(Scene Graph)数据结构来建立3D实境,这种数据结构是以SGI开发的Open Inventor3D工具包为基础的一种数据格式。
VRML的场景图是一种代表所有3D世界静态特征的节点等级:几何关系、质材、纹理、几何转换、光线、视点以及嵌套结构。
几乎所有生产厂商,无论是CAD、建模、动画、VR,还是VRML,他们的结构核心都有场景图。
境界中的对象及其属性用节点(Node)描述,节点按照一定规则构成场景图(Scene Graph),也就是说,场景图是境界的内部表示。
场景图中的第一类节点用于从视觉和听觉角度表现对象,它们按照层次体系组织起来,反映了境界的空间结构。
另一类节点参与事件产生和路由机制,形成路由图(Route Graph),确定境界随时间的推移如何动态变化。
VRML文件的解释、执行和呈现通过浏览器实现,这与利用浏览器显示HTML文件的机制完全相同。
浏览器把场景图中的形态和声音呈现给用户,这种视听觉呈现即所谓的虚拟世界(境界)。
用户通过浏览器获得的视听觉效果如同从某个特定方位体验到的,境界中的这种位置和朝向称为取景器(Viewer)。
VRML的访问方式是基于客户/服务器模式的。