一. STL
STL只能用来表示封闭的面或者体,stl文件有两种:一种是明码格式,另一种是二进制格式。 他的文件格式非常简单
明码:
solid name
facet normal ni nj nk
outer loop
vertex v1x v1y v1z
vertex v2x v2y v2z
vertex v3x v3y v3z'
endloop
endfacet
endsolid name
二进制:
UINT8[80] - Header
UINT32 - Number of triangles
foreach triangle
REAL32[3] - Normal vector
REAL32[3] - Vertex 1
REAL32[3] - Vertex 2
REAL32[3] - Vertex 3
UINT16 - Attribute byte count
end
文件格式简单,只能描述三维物体的几何信息,不支持颜色材质等信息,是三维打印机(不知道是不是什么东西加上一个三维就听起来就能比较眩,比较有技术含量,三维打印机这名称总觉得不如快速成型机来的实在)支持的最常见文件格式。
二. VRML
VRML是类似C的结构化数据,易读性好,但用程序数据提取出来困难。
#VRML V2.0 utf8
Shape
{ appearance Appearance #定义物体的外观属性
{ material Material #定义材质属性
{ emissiveColor 1 0 0 #表示球的表面材质反射红光
}
}
geometry Sphere #定义物体的几何属性
{ radius 1 #表示球体的半径是1个单位
}
}
VRML是一种用在Internet 和Web超链上的,多用户交互的,独立于计算机平台的,网络虚拟现实建模语言。虚拟世界的显示、交互及网络互连都可以用VRML来描述。 VRML的设计是从在WEB上欣赏实时3D图象开始的。VRML浏览器既是插件,又是帮助应用程序,还是独立运行的应用程序,它是传统的虚拟现实中同样也使用的实时3D着色引擎。这使得VRML应用从三维建模和动画应用中分离出来,在三维建模和动画应用中可以预先对前方场景进行着色,但是没有选择方向的自由。VRML提供了6+1度的自由,用户可以沿着三个方向移动,也可以沿着三个方向旋转,同时还可以建立与其它3D空间的超链接。因此VRML是超空间的。
与STL文件比较起来vrl文件(vrml对应的文件格式)具有更强的三维模型表达能力,能支持颜色,材质,光照等常见属性。
三. X3D
X3D是Wed3D协会(Wed3D Consortium)制定的下一代VRML97标准,是VRML的升级版, 功能比VRML强大很多,X3D规范已经被国际标准化组织ISO审批通过。X3D一向被认为比VRML更为成熟,2005年1月Web3D官方网就X3D和VRML各方面性能进行了分析,得出以下X3D在10个方面的明显就有优越性:
1. 具有VRML兼容性。从"Classic VRML"原始代码到VRML 2 worlds ,VRML没有很大的变化。然而X3D通过不懈地努力除保持VRML绝大部分兼容性问题外还解决了播放器之间的非协作性环境的兼容性问题。
2. XML编码被很好的整合运用。XML编码的优越性使得它更便于X3D信息的治理,控制,验证和交换。
3. X3D场景和环境在不同的播放器之间更有猜测性。VRML一个很大的问题是它难于在所有浏览器和播放器中的协调性问题上作进一步开发,这主要是由于VRML标准语言中缺少足够的VRML行为说明。而X3D能很好的解决该问题。
4. X3D 的组成。X3D构成答应轮廓说明裁减成适应特定市场部分(如CAD, Medical, Visualization).
5. X3D 对其他具有播放器协调性和简约化。X3D制作界面对所有的内部和外部脚本语言提供了很好的兼容性。 X3D SAI 解决了所有理论需求的统一说明,这样可以不考虑程序设计语言而进行映射贴图到程序和脚本语言。X3D的Java and ECMAScript的语言捆绑使得X3D制作更简约化。
6. X3D功能更丰富。VRML中大部分功能的需求在X3D得到了解决,在某种意义上,X3D已经很好的整合了建筑学领域(被认为标准化)。你可以认为X3D 是"VRML3" 。
7. X3D 不断的得到提高升级。X3D不断地被增加功能。Proposed Draft Amendment 1 specification 增加了3D材质编辑和着色语言,同时在X3D 最初说明中纠正了不规则物体。X3D的结构使得它很轻易被更新升级,同时也轻易增加新的适合改变图形和商业市场的功能。
8. X3D能够被鉴定为可信赖,可猜测的应用软件。
9. X3D开放源代码兼容软件可以作为开发者资源 。一个几乎适应所有的X3D的开放源代码的插件Flux 播放器已经得到了开发。不像vrml场景,X3D场景可以在其他任何播放器中播放。
10. X3D二进制格式提供了加密术 (用于安全性)和压缩技术(在速度方面)
与上面vrml对应的x3d文件格式如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.2//EN" "http://www.web3d.org/specifications/x3d-3.2.dtd">
<X3D profile = "Immersive" version = "3.2">
<Scene>
<Group>
<Shape>
<Sphere radius = "1"/>
<Appearance>
<Material
emissiveColor = "1 0 0"/>
</Appearance>
</Shape>
</Group>
</Scene>
</X3D>