X3D (Extensible 3D)
Frequently Asked Questions (FAQ)

Version 1.17
Last modified: Wed May 22, 03:20:01 PDT 2002

X3D™(可扩展3D)常见问题集
版本1.17   最后更改:2002年5月22日
m17 汉化:2002年9月 版本1.17. SC1

  此翻译版本已更新,请访问 http://17de.com/x3d/www.web3d.org/x3d/faq/

内容

 

介绍

X3D是下一代的开放式的网络三维的标准。是多年来Web3D联盟 X3D Task Group 和后来成立的Browser Working Group的开发成果。Browser Working Group和X3D Task Group 的密切合作制定新的X3D规格,力求尽量满足业界的对如下方面的需要:

  • 兼容现有的VRML内容,浏览器,制作工具。
  • 扩展机制允许引入新的特性,能快速地审核并在规格中正式加入这些先进的特性。
  • 简洁的 "内核" 特性,对X3D的输入输出支持提供了最佳的适应性。
  • 全VRML的特性支持丰富的现有的VRML内容。
  • 支持XML等其他编码,和其他的网络技术和工具紧密结合。
  • 快速构建并推进技术规格的发展。

为了达到这些需求,引入了基于组件(component-based)的结构 ,以分离发布来支持寻址扩展,兼容性,故障调试, 编码等问题。每个组件包括一部分相关特性,比如一个集合包括相关节点,一个扩展事件的模型,或一个新脚本的支持。

相对需要完全适应全部规格的单一庞大的结构,基于组件的结构可以个别的特性支持创建不同的概貌(profiles)。这些概貌是场景内容的集合,一个关于profiles的例子是小的内核代码 ("core" profile)支持简单的非交互的动画,另一个关于profiles的例子是基本的VRML兼容的代码( "base" VRML-compatible profile)支持完全交互的场景。通过增加新的层("levels"), 组件(Components)可以个别的扩展或修改,或者可以加入新的组件来引入新的特性,比如流(streaming)。通过这种机制,一个部分的开发不会拖慢整体发展的速度,所以技术规格能快速发展。

 

概述
1. 什么是X3D?

X3D是下一代的开放式的网络三维的标准。它是一种可扩展的标准,创作工具、浏览器、三维软件很容易的对其输入输出进行支持。它代替了VRML,但也提供了对现有的VRML内容和浏览器的支持。现有的VRML内容不需要修改就可以用任何X3D-2浏览器播放,新的X3D-1和X3D-2内容可以被存在的VRML应用程序读取。

X3D是基于VRML的,支持VRML的全部规格,完全支持VRML的内容。X3D是可扩展的,可以用来创建简洁高效的3D动画播放器,用来支持最新的流技术和渲染扩展。X3D支持多种编码和API,所以通过XML,X3D能够轻易的整合到网络浏览器或其他的应用程序里。除了和XML的紧密结合,X3D还是MPEG-4支持的3D技术。

2. X3D是什么样的?

新的规格已经完成就要完成,并由Web3D.org校订和发布。人们期望更好的了解工作的进度。现在,以下页面提供了一份建立中的新规格的大纲: http://www.web3d.org/fs_specifications.htm

简单的说,X3D是把VRML97分解为组件,并使用可加入新组件的机制,来扩展VRML97的功能。X3D就和VRML一样。为了转换VRML文件为X3D文件,要增加如下的注释行:
#X3D profile:base

如果内容包含非标准VRML的特性, 要增加如下的注释行:
#X3D component:streaming:1

这将告诉浏览器,层1(level 1):内容中包含流。这可能是一个支持流的节点集合,或可能是一个API-层的软件。假如是节点集合,这允许控制发浏览器存取包含外部原型声明的场景文件。

所以创建场景内容的时候不需要包括一大堆的组件和组件的列表,组件是包括在概貌中的。可以指定在一个概貌中增加许多功能区。举例来说,基本概貌(Base profile)包括新的组件(比如原型和声音)和包括不在 内核概貌(Core Profile)里的组件的新层(levels)(比如Box节点在几何组件里) ,你只要指定概貌, 而不需要列出组件:比如指定 '#X3D profile:base'。

当浏览器升级时,组件将加入到新的概貌中,所以下一带的浏览器可以包括诸如曲面、流这些组件。这就是基本的体系。

因为完全引入VRML比较困难,所以想设定不同层的X3D以方便输入输出。这就是为什么VRML被组合到组件和概貌中的原因。节点或功能被组合到组件中,比如几何组件组合了VRML 的几何节点(geometry nodes)。组件有不同的层,所以几何层1(geometry level 1)不包括Box节点,但几何层2包括。但新的几何节点加入时,就加入相应的新的几何层。

概貌是组件的集合,内核概貌(X3D-1)包括层1组件,用来支持几何和动画。X3D-2是VRML97概貌(VRML97 profile),用来支持所有的VRML97节点,主要是增加了原型 和脚本的功能。

X3D-1产品的能输入X3D-1兼容的内容,这些内容也可以被 X3D-1、X3D-2、或 VRML97 浏览器读取。

注意到这里并没有提到XML。因为XML的支持并不是必须的。现在的VRML97浏览器就是X3D-2兼容的。这是基本规格的要求。XML是附加的编码方法,就象二进制编码。XML编码和相关的API是用来把X3D和其他基于网络的技术整合的扩展机制,任务组(Task Group)做了许多工作来保证X3D将被其他XML工具支持。用来把内容在不同编码之间转换的转换软件也将开发出来。根据发布内容的范围编码被分割到不同的文档中。

一般来说,所有的VRML内容和工具里现在就可以在X3D的框架下使用了。X3D还可以增加那些非VRML97的特性,比如曲面(Nurbs)和GeoVRML(地理VRML)支持。这些特性被作为规格的一部分,成为所有浏览器的 缺省节点支持,而不再是作为一种性质扩展。X3D还使软件公司更容易选择对某层的X3D输入输出支持,确保对某层的完整支持而不是部分的支持。对于那些不需要VRML层功能的软件公司,X3D提供了一种方式创建简洁有效的浏览器,比如Shout3D。重要的是,X3D提供了一种方式,VRML97浏览器公司可以对现有的浏览器扩展新的特性,这些特性可以简单快速地整合到X3D的规格中,而不象以前那样总作为一种性质扩展。 加上可选的XML编码机制,X3D和其他网络技术可以更好的整合。

3. VRML也是可扩展的,为什么X3D的扩展机制比VRML的外部原形(EXTERNPROTO)提供了更多的扩展性?

一个组件能包含许多节点(nodes),比如Nurbs概貌(Nurbs profile)包含了所有相关的曲面节点(nurbs nodes)。组件中也可以增加其他的功能,比如新的脚本语言支持、用户界面支持等。组件也可以仅仅包括外部原型(externprotos)。

VRML只有外部原型(Externproto)的扩展机制,但并不是一种真正用来建立功能扩展组的机制。X3D的组件、层、概貌机制可以做到。并不需要所有的公司用原型或外部原型来实现这些扩展。

进一步,组件不仅只被看作一种节点,而被看做是整个功能区。举例来说,我们可能需要在X3D文件里镶入VRML脚本(ECMAScript)的某些项。组件机制允许做到这种扩展。

4. X3D 组件、层、概貌(Components, Levels, and Profiles)是什么?

X3D的是广泛应用的工业标准,设计者意识到不同的公司不需要支持X3D提供的所有特性。举例来说,如果一个公司想制作简洁高效的3D动画引擎,就可能不需要对那些 几何地质渲染(geology rendering)的特性提供支持。因此,支持这些特性的集合就被封装到一个“组件”里。通常一个特殊功能组被分在一个组件里。(比如 "Geo component" 地理组件处理地理数据(geographic data),"geometry component"几何组件处理那些包含几何节点的组(geometry "nodes"), "scripting component"脚本组件引入脚本支持)。

虽然X3D可以通过组件来引入新的节点特性,但X3D仍然支持通过外部原形(Externprotos),原形(protos),脚本(scripts)进行扩展。实际上,组件支持也可以通过外部原形,原形或脚本来实现。

概貌(profile)是包含了不同功能区的组件的组,举例来说,完整概貌("Full" profile)处理所有的VRML97节点和功能 。概貌甚至也能包含其它概貌的功能(举例来说,完整概貌("Full" profile)包含较小的基于几何的内核概貌("Core" profile)的功能。

当认为一组概貌对很多运用都很重要的时,这些概貌被设置为确省概貌设置,这就建立了新版本(Versions)的X3D。新版本意味着比旧版本提供更多的功能。

公司可以创建支持不同版本(Versions),不同特性(profiles),不同组件(components)的浏览器、输入输出插件。举个例子,较小的播放器可能是X3D-1兼容的。VRML97全兼容的浏览器就是X3D-2兼容的。X3D-3可能支持包括诸如曲面,流之类的额外的功能。

5. 如何建立新的组件和概貌?

软件公司可以建立自己产品支持的新的组件,然后向X3D Board提交以获得正式批准。当组件被提交是,他的名称包括提交组件的公司名的前缀,正如OpenGL扩展包括建立扩展的公司名的前缀(比如 OW_)。然后组件将经过 X3D board、Web3D联盟、和业界的评测。

当一个组件被多家以上的接受和实现后,前缀就会改为 EXT_。当组件被 X3D board 批准后,前缀就会改为 X3D_.

当X3D Board 认为某些组件很重要或已经被广泛采用时,这些组件就会包括在性的概貌中。

6. 软件公司需要支持所有的 组件、层、概貌?

不。有了概貌和组件的机制,公司可以根据自己的需要来决定支持哪些概貌和组件。 根据概貌,场景内容可以被自己公司的程序读取,而且只要其他程序支持相关的组件和概貌,就可以保证场景内容内在这些程序里运行。

许多公司并不想支持VRML97那样的庞大的复杂的规格。X3D的模块结构意味着公司可以从只支持X3D-1开始,然后逐渐加入他们认为实用的概貌。

7. 如果各个公司都创建了一大堆组件,那会有麻烦么?

不。被 X3D 规格接受的组件这提供了一种让 X3D 兼容的应用程序可以协同工作的机制。对这些组件创建新的层(levels),这样许多新的特性将被加入先有的组件中。

各个公司可以开发组件并且把组件提交给X3D,这样就带动了 X3D迅速而有效的发展。保证了 X3D 的发展和繁荣,而不在先前的标准那样废退。

8. 为什么要支持X3D?

X3D的优势:

  • 即使你的产品使用自有的格式,如果支持X3D,只需要很小的付出,你就可以使用更多的工具,共享更多的内容,保持和其他程序更好的兼容性。你可以两全其美——你自有的格式加上工业标准的兼容!
  • “X3D兼容!”的产品将会在市场竞争中受益,这也带动了X3D的工业化发展。
  • 商业化和开放源代码的运作模式对X3D的发展是很重要的。这样的话,每次业界有了什么新发展时,你的应用程序就不要重复开发了。
  • X3D很容易兼容!X3D-1的实现尤其简单。
  • 通过支持X3D,你的公司帮助了整个3D工业的发展!在X3D的目标是统一平台和统一市场,促进整个工业的成长。
  • X3D 内容是模块化的和可重复使用的,节省了开发的时间和金钱。
  • X3D 是VRML内容,输出/输入,软件工具之间的杠杆。象3ds MAX那样包括VRML输出包的软件就具备X3D的兼容性。
  • X3D 支持可选的XML编码,可以和其他的网络技术紧密结合。
  • X3D 支持也提供了一种 MPEG-4 支持的方式。X3D-1是 MPEG-4 3D渲染的基础。
  • 根据可扩展和模块化的结构,浏览器可以只支持需要的概貌,所以公司可以根据自己的需要建立简洁有效的的浏览器。
技术概述
1. 为什么要加入XML语言(Extensible Markup Language)?

以XML作为X3D的语法是为了解决如下问题:

  1. 可移植性 - VRML97的结构和符号是基于Open Inventor的场景语法的,除了VRML,VRML97语法几乎不适合其他所有的语法。然而现在在统治地位的语法是XML。标记(Markup)对数据归档和 移植提供了较长生命周期的。
  2. 页面整合性 - 在开发页面时,基于XML页面整合的系统,场景内容和执行都变得简单。
  3. 易于和下一代的网络技术整合 - W3C联盟(World Wide Web Consortium)的成员付出了很多努力去发展XML。XML 获得了Netscape Communicator 和Internet Explorer等浏览器的广泛支持。X3D需要能和下一代的网络技术紧密结合,而XML正好是下一代的网络技术的趋势。
2. 已经有通过的文档类型定义么?Document Type Definition (DTD)?

X3D Task Group 花了许多时间来寻找一种方式用XML描述VRML97节点。专家组最后通过了 一个文件类型定义 DTD (Document Type Definition)。以下是该定义的链接 http://www.web3d.org/TaskGroups/x3d/translation/x3d-compromise.dtd.

3. 其它的基于XML的技术是什么?

X3D Task Group 对 W3C 的关于XML的标准进行了研究。如下的技术是X3D特别关注的: SMIL (Synchronized Multimedia), SVG (Scalable Vector Graphics), XHTML (the W3C's XML-ization of HTML), Schema, (enables complex datatypes in XML) and DOM (Document Object Model)。Web3D联盟也是W3C的成员,所以 X3D Task Group 能够紧跟每个领域的发展,在每个领域中找到最佳的发展道路。

4. 有什么工具支持X3D?

和X3D相关的工具包括,X3D文件 VRML97/XML-based 样式表(Stylesheet)编辑转换工具. Don Brutzman 制作了一个图表指明了许多现有的工具和X3D之间的关系。这是文挡的链接 。

5. XML 标记如何和网页浏览器结合?

一旦建立一套XML标签,依据浏览器如何使用XML,可以通过以下的方式使用XML:

  1. 样式表(Stylesheet): 直接使用XML文件。依照样式表(stylesheet)语言文件——比如XSL,XSL文件指示如何显示XML标签。
  2. 数据岛(Data islands):XML的值被结合到另一个文件里,比如HTML中命名HTML tables, divs之内的标签。这意味着XML将包括值或参考值到文档中,就是在HTML标签中使用标签自身包括的值。这是Microsoft指定的方案。
    (注意: 方式1和2 有时适用于页面整合。)
  3. 插件支持(Support by plugin): 镶入的对象标签(object tag)可以指示下载支持代码的位置,传递的参数等。Netscape 6 等使用“pluglets”支持,更使网络浏览器和对象紧密结合。
  4. 直接对象支持(Direct object support): 网络浏览器通过增加对象样式,指定处理方法对标签提供内在支持。浏览器必须是可扩展的,这样标签和其执行过程就可以结合到浏览器里。
6. 为了使用X3D,需要去了解多少缩写词?

所有的X3D创作者都需要知道如何自己编写DTDs (Document Type Definitions - 文档类型定义), CSS (Cascading Stylesheets - 层叠样式表), XSL (Extensible Stylesheets - 扩展样式表)之类的东西么?不。

所有这些工作都由X3D Task Group负责。X3D规格定义了一个DTD使VRML97节点和域与X3D的一一对应。创作者使用这些定义好的标签,因此不再需要开发自己的DTD。会制作转换软件把VRML文件转换为X3D文件,这样现有VRML模型资源就可以继续使用。开放源码的X3D文件分解/输入/输出软件范例,将能鼓励3D软件商更容易的在其VRML输入/输出 上增加X3D输入/输出功能。

7. 什么地方可以找到更多XML的资源?

以下是一些你可以找到的资源:

  1. http://www.w3.org/XML/
  2. http://www.xml.com/
  3. http://www.oasis-open.org/cover/xml.html
  4. http://xml.about.com/
8. 组件化的优势是什么?

以下列举了一些组件化的优点:

  1. 缩小的,轻量化的内核 - VRML97是相对庞大的标准,完全实现是比较复杂的。把VRML的功能分割到一系列较小的内核,就可以比较容易的实现X3D,减少实现的复杂性, 因而改善了执行过程的可维护性。
  2. 可扩展性 - 通过扩展和概貌的概念,我们可以在内核之上可以增加更多的功能。这样我们就可以容易地加入更多的新特性,也可以现有的特性上加上新的扩展。
  3. 再一次把 Web3D Working Groups 联合起来 - 可扩展的结构允许VRML Working Groups在内核之上浏览器的基础上加入新的规格。比如可能在X3D中包括H-Anim, EAI, Living Worlds, GeoVRML 等扩展。
  4. 减小空间 - 这是绝对需要的。比如在机顶盒,需要尽可能地节省空间,每项功能都会增加成本。使用概貌就能减少浏览器的空间占用,只需要加入相应的较小的功能设置。

注意: 这里涉及到一些技术规格。比如扩展特性,使用到内核,并且一般都需要配合某些特定操作系统使用。这就是说扩展特性,一般都不会和其他的浏览器或现有的执行代码兼容。X3D Browser Working Group 和 X3D Task Group 注意到并公布了这些问题。

9. 组件化可行么?

有许多复杂的内容都是围绕跨平台执行和跨浏览器组件的。从这些现有的内容中,X3D努力发掘一些使组件化可行的因素。

  • 参考书。比如《组件化软件-超越基于对象的编程》(Szyperski, Clemens; "Component Software: Beyond Object-Oriented Programming"; Addison Wesley; 11/1997; 411 pages)。
  • NPS的Bamboo项目显示,甚至象C++动态连接库类的都可以跨平台跨操作系统的实现组件化。参见 http://www.npsnet.nps.navy.mil/npsnet/Bamboo.html.
  • Netscape上Mozilla开放源码实现了跨平台的COM,这也可以被看作是一种组件化机制(但没有专门提出这是一种编码/处理方式)。
  • 核心内核的实现的同时,可以安装一些合适的特有的兼容组件/扩展。
  • 一些全VRML97实现方案可以是集成的,符合VRML97概貌 (但也需要完全安装).
  • 使用文件类型定义(DTD)指定了某个XML标签设置,同时也能用一个标签或属性,来指向能够渲染这个最新定义标签内容的组件。比如:我们可以先使用XML定义一个新的Torus节点,同时使这个XML包括实现Torus的组件的指向。
  • 开放的、不同的工作组,对组件化机制的定义和支持和自动化这种机制的协定是很有价值的,也是对发展最好的促进。
  • 现有的Java3D开放源码和即将完成的blaxxun C++ community源码,使我们都能按照组件化的观点研究并加以改进方案。

 

10. Box, ElevationGrid 之类的节点去除了么?

不。X3D并没有缩减功能,而是分割功能。因为可以用较低层的IndexedFaceSet节点轻松实现Box、Sphere、Cone、ElevationGrid 之类的节点,所以这些节点的确不将被包括在内核中,这些节点将会在扩展中实现,比如VRML97扩展。这样就简化了内核,并使内核实现和维护更加容易。

11. X3D就象VRMLLite么?

不。VRMLLite是VRML邮件列表上讨论的一种简化的VRML的概念。构想就是把不重要的功能从当前浏览器中剥离。X3D不会剥离任何功能 - 内核的概念也许和VRMLLite相似,但可以进一步扩展并改进功能才是整个X3D的核心思想是。

12. 内核中包括什么节点?

1999年9月27-29日举行的一个会议决定了哪些节点将包括在X3D的核心中。参见这次会议的记录。这个列表后来稍微地增加了。现在这些节点在X3D规格表9.2(核心概貌中的节点 - Table 9.2 :Nodes for conforming to the core profile)中有详细表述。

13. 什么是X3D的版本和概貌?

X3D的是广泛应用的工业标准,设计者意识到不同的公司不需要支持X3D提供的所有特性。举例来说,如果一个公司想制作简洁高效的3D动画引擎,就可能不需要对那些 几何地质渲染(geology rendering)的特性提供支持 。因此,某一组特性就被包括在某一个“概貌”中。每一个概貌指定了一组特定的功能区域,比如"Geo"概貌是处理地理信息的;概貌也可以包括许多不同的功能区域,比如完整概貌处理所有的VRML97节点和功能;概貌甚至也能包含其它概貌的功能,比如完整概貌包含较小的基于几何的核心概貌的功能。

当认为一组概貌对很多运用都很重要的时,这些概貌被设置为确省概貌设置,这就建立了新版本的X3D。新版本意味着比旧版本提供更多的功能。

公司可以创建支持不同版本,不同概貌,的浏览器、输入输出插件。举个例子,较小的播放器可能是X3D-1兼容的。VRML97全兼容的浏览器就是X3D-2兼容的。X3D-3可能支持包括诸如曲面,流之类的额外的功能。

14. 如何建立新的组件和概貌?

软件公司可以建立自己产品支持的新的组件,然后向X3D Board提交以获得正式批准。当组件被提交是,他的名称包括提交组件的公司名的前缀,正如OpenGL扩展包括建立扩展的公司名的前缀(比如 OW_)。然后组件将经过 X3D board、Web3D联盟、和业界的评测。

当一个组件被多家以上的接受和实现后,前缀就会改为 EXT_。当组件被 X3D board 批准后,前缀就会改为 X3D_.

当X3D Board 认为某些组件很重要或已经被广泛采用时,这些组件就会包括在性的概貌中。

15. 软件公司需要支持所有的概貌和版本么?

不。有了概貌和版本的机制,公司可以根据自己的需要来决定支持哪些概貌和组件。 根据概貌,场景内容可以被自己公司的程序读取,而且只要其他程序支持相关的版本和概貌,就可以保证场景内容内在这些程序里运行。

许多公司并不想支持VRML97那样的庞大的复杂的规格。X3D的模块结构意味着公司可以从只支持X3D-1开始,然后逐渐加入他们认为实用的概貌。

16. 如果各个公司都创建了一大堆组件,那会有麻烦么?

不。被 X3D 规格接受的组件这提供了一种让 X3D 兼容的应用程序可以协同工作的机制。对这些组件创建新的层(levels),这样许多新的特性将被加入先有的组件中。

各个公司可以开发组件并且把组件提交给X3D,这样就带动了 X3D迅速而有效的发展。保证了 X3D 的发展和繁荣,而不在先前的标准那样废退。

17. 什么是X3D节点类型(Node Type)?

节点类型(Node Type)是一个对应相关功能节点的摘要节点。附:Object Hierarchy(对象层级),显示了每个节点与摘要节点类型(在对象层级中以"Node"为词尾的节点)的关系和对象层级的分支结构。

  • 范例 - GeometryNode, LightNodes, SensorNode, BindableNode, 等,被作为在VRML97规格中的定义并在X3D DTD中重申。
  • 范例 - 新的Tetrahedron节点定义出自GeometryNode类型 分支,所以在场景结构图中任何可以使用Box, Sphere 或其他几何节点的层级都能使用Tetrahedron节点。
18. 已经有概貌被定义了么?

是的。基于GeoVRML 1.0 规格的10个节点,Don Brutzman 为GeoVRML概貌制定了文档类型定义(DTD)

19. X3D是由Java编写的么?

不。X3D是一种3D场景格式。这种格式可以用C, C++, Java之类的任何语言来执行。 为了最终交付可使用的X3D规格,X3D Task Group发布X3D规格时计划推出两种可获得的开放源代码的执行码范例。现在选择的范例执行码可能将使用Java3D的开放源码编写,或使用Blaxxun's Contact community的C++源代码编写。其他的执行码可能包括 Shout(纯Java) 和 DRaW (FSG)。这就是说X3D执行码不限制只能用Java或C++编写, 或X3D限制只能使用Java applet执行。

20. VRML97浏览器能播放X3D内容么?

X3D在文件格式中使用了XML语法。标准的VRML97浏览器不包括XML解析器,所以一般不能读出X3D内容。然而可以编写转换程序,X3D文件也可以被转换,就象VRML 1.0文件现在被转换为VRML97文件,这样VRML97浏览器也可以支持X3D。转换程序也可以作为现有的VRML97浏览器的插件和VRML97浏览器协同运行。

21. X3D内容可以播放VRML97内容么?

是的。这中对VRML97内容的向下兼容性是X3D规格中规定的。

22. Fahrenheit和X3D的关系?

Fahrenheit体系包括三个API层:Fahrenheit Low Level (FLL), Fahrenheit Scene Graph (FSG), and Fahrenheit Large Model Visualization (FLM)。有些X3D浏览器在渲染层使用Fahrenheit API,就象现在的VRML97浏览器一般使用OpenGL或Direct3D渲染场景。举例来说,OpenWorlds在他们的VRML97浏览器中使用Fahrenheit,并且也打算在用Fahrenheit实现他们的X3D。

23. XGL和X3D的关系?

XGL 是基于XML的文件格式,基于OpenGL渲染库描述3D信息。(参见http://www.xglspec.org/)  X3D和XGL的类似之处就是两者都使用XML格式,都是用来编写3D信息的。然而XGL的目标是较低层次的运用,仅仅是为了描述一些几何体,表面,灯光之类的物体。X3D的目标是比几何特性更高层次的运用,X3D支持事件模型,脚本,感测器,动画和其他的扩展。实际上XML采用了XGL的结构,就确定了X3D的选择开发了一种XML格式。同时,X3D被XML采用以后,通过使用XSLT,X3D就潜在支持其他的XML语言,比如气候表,分子结构,2D图表信息。

开发进程
1. 谁在开发X3D?

Web3D联盟正式的工作组 Browser Working Group X3D Task Group 正在积极地开发X3D。如何参与开发X3D请参见 Working Group 的页面。

2. 为什么要支持X3D?

X3D的优势。

  1. 即使你的产品使用自有的格式,如果支持X3D,只需要很小的付出,你就可以使用更多的工具,共享更多的内容,保持和其他程序更好的兼容性。你可以两全其美——你自有的格式加上工业标准的兼容!
  2. “X3D兼容!”的产品将会在市场竞争中受益,这也带动了X3D的工业的发展。
  3. 商业化和开放源代码的运作模式对X3D的发展是很重要的。这样的话,每次业界有了什么新发展时,你的应用程序就不要重复开发了。
  4. X3D很容易兼容!X3D-1的实现尤其简单。
  5. 通过支持X3D,你的公司帮助了整个3D工业的发展!在X3D的目标是统一平台和统一市场,促进整个工业的成长。
  6. X3D 支持也提供了一种 MPEG-4 支持的方式。X3D-1是 MPEG-4 3D渲染的基础。
3. 现在已经制定了X3D规格么?

是的,但仍然在开发之中。以下网址可以得到X3D规格的草案:http://www.web3d.org/fs_specifications.htm 。一开始,包括Shout Interactive、Blaxxun Interactive、DRaW Computing、New Objectivity、Sony、Lucid Actual 等公司提出了不同的X3D的提议,。X3D Task Group 评估并发展了这些 提议,并在Browser Working Group 的联合之下,综合成一个完整的设计。

4. 有执行码范例或执行码参考么?

X3D group 和 Source Code Task Group 将 展示一个执行码范例,而不是执行码参考。主要的,执行码范例仅是一个范例告诉你如何执行某个项目;但执行码参考更精确的定义了如何执行某个项目。执行码参考将是很长的文章,但范例执行码不是。

5. 我能帮助开发X3D么?

当然!如何注册为x3d-contributor或x3d-reviewer参见 http://www.web3d.org/TaskGroups/x3d/X3dTaskGroupCharter.html#Mail。如果你的公司是Web3D联盟的成员并且计划发布X3D软件,Browser Working Group 是你需要关注的!

6. X3D提议有标准草案(RFC)么?

开始, 只是一个较小的设计队伍在管理开发X3D。这个团队进行了所有的开发,这时并没有标准草案(RFC - Request For Contributions)。后来成立了开放的X3D Task Group,任何想参与的人都可以提出建议。当通过 www-vrml 邮件列表讨论后,会发布一个标准草案(RFC)来处理并决定采纳哪些递交来的提议。

7. 有开放源码的X3D浏览器么?

是的。Java3D Working Group正在开发一个开放源码的X3D执行码,名为Xj3D。 在Linux, Solaris, Win32平台下都测试过这个工作原型,现在已经可以获得他。现在已经可以获得发展中的X3D原型范例的与VRML97兼容的文档类型定义 (DTD)。另外,Blaxxun已经发布了他们的Contact VRML97 浏览器的开放源码,并且打算使用这些作为他们的X3D执行码。

其他的开放源码的VRML97的成果潜在的就可被认做是X3D浏览器的基础,比如已经完成的工作可以作为OVAL项目的一部分。

如果将来可以得到 Cosmo Player 源码,就可以用做开发另一个开放源码的 X3D 浏览器。

8. X3D 需要CosmoPlayer 源码么?

不。背景资料是:CosmoPlayer VRML97 浏览器原来是 SGI 编写的。SGI 后来放弃了Cosmo Software,然后Platinum 购买了Cosmo Software。Platinum 提供了 Cosmo browser 的源码作为Web3D联盟的开放源码。后来 Platinum 被 Computer Associates (CA)收购。 CA现在继续寻找时机出售CosmoPlayerX3D 不再需要获得 CosmoPlayer 源码。

参与者

以下人士参与了这个FAQ的内容编写与翻译。特此感谢!

  • Don Brutzman, <brutzman@nps.navy.mil>
  • Len Bullard, <clbullar@ingr.com>
  • Richard Y. Choi, <web3d@dreamwiz.com>
  • Paul J. Diefenbach, <paul@openworlds.com>
  • Rick Goldberg, <Rick.Goldberg@eng.sun.com>
  • Linda Hahner, <linda.hahner@familiartales.com>
  • Adrian Mann, <asm@invetech.com.au>
  • Chris Marrin, <chris@marrin.com>
  • Eiji Oga, <oga@ruby.famille.ne.jp>
  • Nicholas F. Polys <npolys@virtuworlds.com>
  • Richard F. Puk, <puk@igraphics.com>
  • Martin Reddy, <reddy@ai.sri.com>
  • Sandy Ressler, <web3d.guide@about.com>
  • Christopher K. St. John, <cstjohn@quik.com>
  • Anthony Steed, <A.Steed@cs.ucl.ac.uk>
  • Sherrie Thodt, <thodt@hawaii.edu>
  • Meng Yiqi, <m17design@hotmail.com>
  • [your name here!]
 

注解和补充 Martin Reddy.

这份文档的原始URL: http://www.web3d.org/TaskGroups/x3d/faq/

欢迎到 www.86vr.com 讨论和报告翻译错误

m17保留此份翻译的版权,
此份翻译不得用于商业出版

网络转载请保留此翻译文档的原始URL

http://17de.com/x3d/www.web3d.org/TaskGroups/x3d/faq/