一.   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>

常见三维文件格式之STL, VRML, X3D相关推荐

  1. 常见三维文件格式之STL

    STL只能用来表示封闭的面或者体,stl文件有两种:一种是明码格式,另一种是二进制格式. 他的文件格式非常简单 明码: solid name facet normal ni nj nk    oute ...

  2. 常见三维文件格式 STL VRML X3D

    一.   STL STL只能用来表示封闭的面或者体,stl文件有两种:一种是明码格式,另一种是二进制格式. 他的文件格式非常简单 明码: solid name facet normal ni nj n ...

  3. 常见三维文件格式之VRML X3D

    VRML VRML是类似C的结构化数据,易读性好,但用程序数据提取出来困难. #VRML V2.0 utf8 Shape {    appearance Appearance #定义物体的外观属性   ...

  4. 常见三维文件格式之IGES

    IGES文件由五或六段组成: (1)标志(FLAG)段: (2)开始(START)段: (3)全局(GLOBAL)段: (4)元素索引(DIRECTORY ENTRY)段: (5)参数数据(PARAM ...

  5. maya导入abc动画_三维文件格式知多少 | abc、glTF、fbx、obj、dae、stl、3ds...

    三维文件格式 三维软件之间互相导入导出一般会涉及到一些格式不兼容的问题,这里就给大家普及一下这些常用的三维文件格式.不同的格式有着不同的定位及用处,有开源的也有商业的.目前很多三维软件之间互导迫在眉睫 ...

  6. Python语言学习之文件格式后缀那些事:python和常见各种文件格式后缀介绍、使用方法之详细攻略

    Python语言学习之文件格式后缀那些事:python和常见各种文件格式后缀介绍.使用方法之详细攻略 目录 常见各种文件格式后缀介绍 .pyc文件介绍 .py文件介绍 .pxd 文件 .pyd 文件 ...

  7. 常见音频文件格式的特点。

    常见音频文件格式的特点. http://www.360doc.com/content/11/1125/18/8050095_167351161.shtml 要在计算机内播放或是处理音频文件,也就是要对 ...

  8. [转]辨别常见与不常见音乐文件格式的质量好坏!

    辨别常见与不常见音乐文件格式的质量好坏! 要在计算机内播放或是处理音频文件,也就是要对声音文件进行数.模转换,这个过程同样由采样和量化构成,人耳所能听到的声音,最低的频率是从20Hz起一直到最高频率2 ...

  9. 【常见视频文件格式分析】

    常见视频文件格式分析 先说大家目前常常在电脑上看的电影,其主要来源有两大类: A.从网络下载的视频文件.由于目前市面上所看到的视频,即电影,电视剧,MV等,有很多种不同格式,8 v9 Q2 J( v( ...

最新文章

  1. mysql字段获取当前日期格式_mysql数据库,获取当前日期及格式化
  2. python初步入门_python如何入门
  3. lucene索引word/pdf/html/txt文件及检索(搜索引擎)
  4. bootstrap --- 按钮
  5. js修改mysql数据库数据_Node.js操作mysql数据库增删改查
  6. 关于Jakarta EE软件包名称更改的思考
  7. linux blender骨骼绑定,在Linux系统中安装开源3D创建套件Blender的方法
  8. 进程间的通信之1-----管道
  9. 主机路由在计算机中的应用
  10. php如何封装类内乡通南阳的_PHP类(三)-类的封装
  11. PhoneGap的Android端插件开发
  12. Codeforces Round #339 (Div. 1) C. Necklace 构造题
  13. 计算机基础——网卡(网络适配器network adaptor)
  14. Win7开机自动拨号上网
  15. 少数民族高考成绩查询2021,2021少数民族高考加多少分?
  16. Google Earth Engine(GEE)——NASA-USDA增强型SMAP全球土壤水分数据以10公里的空间分辨率提供全球的土壤水分信息
  17. 两年数据对比柱形图_同期数据对比,你会做这样特殊的柱形图吗?趋势、差异值一目了然...
  18. 振作起来,开始认真搞了
  19. 最新总裁导航系统PHP网站源码+开源版
  20. 资源宝分享wordpress主题后门检测清理技巧

热门文章

  1. Python图片压缩
  2. 基于元胞自动机的森林火灾matlab模拟
  3. 【数据结构】数据结构练习题2——栈+队列
  4. 如何解析复杂的C语言声明
  5. 树莓派pico的软件安装及使用
  6. engauge digitizer安装
  7. RabbitMQ中的死信及死信队列详解
  8. 复制Excel模板,填写Excel模板,然后下载
  9. [Music]加州旅馆
  10. CentOS Linux安装中文字体库,解决中文乱码问题