什么是X3D?
X3D一种无需任何授权费用的开放标准的文件格式以及运行时架构,使用XML来描述与交换3D场景和对象。它是一套ISO认可了的标准,为应用程序中嵌入实时图形内容而提供存储、恢复及回放的系统,在一种开放式架构中支持各式各样的领域与用户种类。
X3D具有一整套丰富的组件化特性,能胜任工程、科学可视化、CAD与建筑、医学可视化、培训与仿真、多媒体、娱乐、教育,以及更多的工作。
虚拟现实建模语言演变成明显更成熟、更优雅的X3D标准,可以作为所有应用程序及网络应用程序之间3D数据实时通信开发工作的开端。
X3D特性一瞥
- 整合了XML:这是与以下内容整合的关键:
- Web Services
- 分布式网络
- 跨平台、跨应用程序的文件与数据交换
- 组件化:允许轻量级的3D运行时核心引擎
- 可扩展性:允许为垂直市场应用程序和服务添加组件以便扩展功能
- 重塑能力(Profiled): 标准化的扩展套件,以满足特定的应用需求
- 渐进的:易于更新同时保留VRML97内容到X3D
- 为网络/嵌入式应用准备:从移动电话到超级计算机
- 实时性:图形是高质量的、实时的、交互式的,并且3D数据中包含音频和视频。
- 良好定义性:使得构建一致的、一贯的以及无BUG的实现(Implementation)更简单
X3D支持
- 3D图形及可编程渲染 - 多面体、参数化几何体、多层次变换、灯光、材质、多通道/多级纹理映射、像素与顶点渲染及硬件加速。
- 2D图形 - 空间化的文本;2D矢量图形;2D/3D混合
- CAD数据 - CAD数据转换为一种开放的格式,供出版和交互式媒体使用。
- 动画 - 利用计时器及插补器来驱动连续性动画;仿人体动画与变形
- 空间化的音频与视频 - 可视化的声源映射到场景中的几何体上
- 用户交互性 - 基于鼠标的拾取与拖拽;键盘输入
- 导航 - 摄像头;用户在3D场景中的移动;碰撞检测,靠近与可见性检测
- 用户定义的对象 - 可以通过创建用户自定义的数据类型来扩展浏览器内置功能
- 脚本 - 可以通过编程语言和脚本语言动态改变场景
- 网络 - 能够整合单一X3D场景和网络上X3D场景的资源;通过超链接的方式对象链到其他场景或WWW上其他资源
- 物理仿真与实时通信 - 仿人体动画;空间地理信息数据;与分布式交互仿真(DIS)协议整合
X3D Profile与一致性概述
(注:Profile这个词相当难翻译,甚至有种只可意会不可言传的感觉,在X3D中,它是指对某个应用领域或某个应用级别的一种定义或声明,可以控制应用程序对系统资源的使用,在具体的应用中,我们可以把它理解为应用范围或应用级别)X3D的模块式架构使得可以有各种层次的profile,可以提供 1)增强虚拟环境沉浸性及加强交互能力,或者 2)专注于市场应用中--由模块化功能(组件)组成的小的可下载的占更小空间--数据的交换格式。以便易于被应用程序和内容开发者理解和实现,
一种基于组件的架构支持创建各种不同的能够单独支持的profile。通过添加新的“层次”(level),组件可以单独被扩展或修改,也可以增加新的组件来引进新的特性,如流。通过这种机制,X3D规范中的一些发展可以很快活动起来,因为一个领域的开发不会拖慢整个X3D规范的进度。重要的是,对内容的一致性要求保证了声明PROFILE,组件和层次这些必须项不会出现歧义。
基本的X3D轮廓(Profiles)
- Interchange 是应用程序间通信的最基本的级别声明。它支持几何体、纹理、基本的灯光和动画。其中运行时没有模型被渲染,使得它非常容易整合到任何应用程序中。
- Interactive 通过加入各种传感器节点,实现用户导航和交互,如 PlanseSensor。TouchSensor,加强的计时器和灯光,使得3D环境具有一些基本的交互能力。
- Immersive 具有完整的3D图形和交互能力,包括音频支持、碰撞检测、雾和脚本。
- Full 所有定义的节点,包括NURBS、H-Anim和地理组件。
另外的X3D Profile
- MPEG-4 Interactive 是Interactive profile的一个小容量的版本,为广播、手持设备和移动电话设计。
- CDF (CAD Distillation Format) 则还在开发中,将CAD数据转换为一种开放的格式,供出版和交互式媒体使用。