Antsam

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::




X3D is a powerful and extensible open file format standard for 3D visual effects, 
behavioral modelling and interaction. It provides an XML-encoded scene graph 
and a language-neutral Scene Authoring Interface (SAI). The XML encoding enables 
3D to be incorporated into web services architectures and distributed environments, 
and facilitates moving 3D data between applications. The Scene Authoring Interface 
allows real time 3D content and controls to be easily integrated into a broad range 
of web and non-web applications. 

平时的很多工作都是同X3D打交道,今天算写点想法吧。

X3D是一套三维交互应用方面的解决方案,而且是一种标准。为什么会
出现X3D呢?大家可以看看sourceforge中很多的开源实时3D渲染库,大都
又很多文件格式的插件,例如:mdl、md2、md3、BSP等。为什么?数
据来源,我们写绘制引擎,没有数据来源,什么都是白搭。但是如果有自
己的文件格式,为什么还会需要这么多吗?但是设计一个成熟的文件格式
其实非常有难度的,那么X3D帮你做到了,X3D支持三种编码:classic vrml、
xml和二进制编码。第一种主要是为了同就版本兼容,后两种为X3D提供了
很多的优势和方便。

有了数据以后,你可以自己来写绘制引擎,但是怎么来管理这些数据?
X3D给你提供了一套场景管理的构架(scene graph),其实这里包含了
很多中对于不同的场景的管理,比如为地形提供了elevate grid等。

你觉得你的程序需要支持脚本。
X3D给你提供了一套language binding的方案和构架。

那支不支持人物动画(IK)和编辑?
X3D包含了一块Human-Anim的结构,专门解决这个问题。

那支不支持现在流行的Shader?
X3D现在正在制定这个标准,而且已经除了一部分结果:支持GLSL、CG
和HLSL。

那它什么都做了,我们还需要作什么?
你自己写了绘制,那么怎么把上面X3D提供的东西结合到你的绘制里面
去,是你的程序支持上面X3D提供的功能。

那现在我们该做什么?
我们数据有了,并且能绘制它们,现在我们可以用它来做产品了^_^。

那还能作甚么?
不管mdl、md2、md3还是X3D提供的文件都是一样的,一到内存,就
只有点线面的结构了(当然还有纹理和材质)。那么你想对
点线面做什么就能做什么了,可以用来做空间剖分(BSP、QuadTree等)。

X3D的整个构架非常通用,包含的东西也很广泛,但是根据不同的需要
可以进行剪切,X3D制定了六个标准剪切:
A  Core profile 
B  Interchange profile 
C  Interactive profile 
D  MPEG-4 interactive profile 
E  Immersive profile 
F  Full profile 

X3D本来的目的可能是用于基于Web的多媒体,但是后来很多时候都看作一种
多媒体三维交互程序的通用构架和解决方案。

为什么说构架和解决方案?
因为X3D中定义了类的结构和类之间的相互关系,上面有什么用词不当,请见谅^_^。

http://www.web3d.org/
posted on 2005-03-11 19:33  Antsam  阅读(1707)  评论(2编辑  收藏  举报