Xj3D 的结构 |
作者: Justin Couch
最后更新: $Date: 2002/05/08 23:02:13 $
修订: $Revision: 1.1 $
原文:http://www.xj3d.org/arch/architecture.html
翻译:http://m17design.myetang.com/x3d/www.xj3d.org/arch/architecture.html介绍
Xj3D 是一系列的代码,用来实现X3D规格的VRML/X3D浏览器。这些代码也可以用在其他方面。下面就会解释编写这些代码的目的,和这些代码的结构。
当X3D规格开始制定时,这些基本代码被计划用作实现规格可行性的实验。新的规格更加复杂,包括原先的UTF-8编码和XML编码。通过XML,网络浏览器使用DOM(文档对象模型 Document Object Model)来存取数据变得可行。同时,还希望能用更加完整的系统,来统一原先不同的内部脚本和外部存取界面。
下面介绍的Xj3D结构,就是为了达到以下三个目标:
附图 1 描绘了Xj3D结构主要部分的UML组件图表 。每个组件负责一些可从应用中分割的部分。虽然可以把给定的组件分割为更小的部分,但设计还是倾向于分割成较大的部分。
按照功能性,我们把组件分割为一些可独立操作的部分。虽然VRML执行被认为是最接近现有VRML规格的部分,但其实并没有真正的中心组件。VRML和抽象模型中的内容通过执行组件 再现为内核场景图。然后直接使用原始渲染场景图的组件,比如使用抽象的不同渲染技术渲染。在研究设计文档时你会发现,这主要是抽象化为一些子部分的过程。同时可以在后台融入更多的标准, 比如DOM, EAI 或脚本等public fascade。
VRML执行组件也依靠其他的组件。首先,它是比如渲染器(renderer)之类低层组件之 上的抽象组件。VRML执行组件再现一个结构,同时转换它为内部的可渲染的形式,并传给渲染器。按照渲染组件的执行,这个可渲染的形式不再使用原来的场景图,甚至最终也不一定需要渲染。
围绕VRML执行组件,更多的组件并不直接使用渲染组件,也不提供渲染组件外壳。这些组件提供最终用户开发工具包和基本代码结合的通路。比如在Java3D world中,将会使用loader系统,提供独立于文件格式的抽象的文件读取处理。网络浏览器的用户可能需要通过DOM模型来使用XML文档,所以需要提供组件以处理基于DOM格式的整合应用。
有两个特性是非常重要的 - 可自定义性,不需要连接到X3D规格上;DOM Level 2 事件执行。第一个特性提供了一些 JAXP 执行,但不需要保证所有执行,当制定了新的标准系统时,第二个特性可以执行新的内容。DOM事件对于X3D的发展是非常重要的,可以通过DOM通知程序X3D文档已经改变,比如其中的一些域已经改变,或已经添加删除了一些节点。
除了基本节点的功能,这个组件还提供所有基本的运行时服务,比如脚本,原型和路由。这是VRML渲染系统的核心,在此基础上,你不需要考虑它的结构,就可以安排不同的外部存取机制。这个组件在所有组件中是最大和最复杂的。
SAI组件和其它界面一样运作,和渲染内核是分离的。SAI和EAI或脚本在存取功能上并没有本质不同。
现有的代码只是停留在较低层DOM类。所有DOM树的数据最后都要通过这些组件。不需要使用X3D树。将来的组件都将添加在这里并和已有X3D规格结合。
[
Xj3D Homepage |
Xj3D @ Web3d |
Screenshots |
Dev docs |
Dev Releases |
Contributors |
Getting Started
]
最后更新: $Date: 2002/05/08 23:02:13 $ |
原文:http://www.xj3d.org/arch/architecture.html
转载页面请保留链接
http://m17design.myetang.com/x3d/