本文介绍开源库模型的几种输出格式:DAE,STL,3DPDF。

Assimp是C++写的,AssimpNet是C#重构其中主要数据结构,并开通Assimp中重要方法的调用接口,为不熟悉C++的码农带来了便利。

Assimp一个重要的结构就是Scene,无论是导入的模型,还是自己创建填充Scene结构的模型,都面向Scene操作。

虽然Assimp提供了几种输出格式的方法,但是对于可扩展的程序要求,必要的重写是要考虑的。

3DPDF:

Adobe Reader8+以上开始支持3D模型的写入,貌似只支持U3D格式和PRC 格式。U3D是二进制文件,就如ShapeFile也是二进制文件一样,白皮书给了你格式说明,但是没有告诉你这些是如何组织的,数据存储于数据组织不一致。

天无绝人之路,国外牛人已经发现并解决了这个问题,从Scene输出到PDF的思路就是,将模型输出到IDTF文件,再将IDTF文件转换成U3D文件,U3D写入PDF很容易。以此类推,任何模型的输出PDF都可以实现。

IDTF文件是文本读写的,可以根据Scene和格式白皮书写,但是IDTFScene正如Scene一样,组织结构完善,提供了读写IDTF的便利。

IDTF转换成U3D使用的是IDTFConverter.exe,这个可以单独下载下来,不需要安装什么软件,在转换的同时,注意要把纹理转换成TGA格式。

根据ITextSharp提供的示例,可以把U3D写入PDF,这个PDF只有Adobe Reader8+才能浏览,其他阅读器貌似不行哦。

Collada

Collada文件格式非常易读,因为他是基于XML的,就像GML和CityGML。读写Collada就是对XML文件的读写,同样,国外牛人已经提供了这个文件读写的便利方法,http://code4k.blogspot.com/2010/08/import-and-export-3d-collada-files-with.html,需要FQ才能看到。

STL

与其他格式不同,Stl是3D打印机支持的格式,将为模型的3D打印提供可能。

Stl的输出也是极其简单,网上可以找到写的方法,不赘述。

这三种格式各有千秋:

3DPDF,输出只读模型到PDF,不需要安装模型浏览器,便于携带和查看。

Collada,非常通用的三维模型格式,涵盖模型的各方面信息。

STL,也是通用的三维模型格式,与Collada不同的是不支持纹理,3D打印机格式。

Assimp场景模型输出Collada,STL,3DPDF的更多相关文章

  1. cesium 学习(五) 加载场景模型

    cesium 学习(五) 加载场景模型 一.前言 现在开始实际的看看效果,目前我所接触到基本上都是使用Cesium加载模型这个内容,以及在模型上进行操作.So,现在进行一些加载模型的学习,数据的话可以 ...

  2. iOS模型输出和打印

    在调试时,我们经常用到输出model,查看数据是否正确,还会在控制台"po 模型"操作,一般输出都是这样的格式的: person is <Person: 0x60800003 ...

  3. 分类模型输出y值

    y=w0+w1x1+w2x2+....+wnxn coef_:存储w1,w2,...wn. intercept_:存储w0 dual_coef_*support_vectors_=coef_ (1)S ...

  4. 【python2/3坑】从gensim的Word2Vec.load()的中文vector模型输出时显示unicode码

    服务器上python2.7 打印出的e[0]对应的是 unicode码 于是分别尝试了用e[0].encode('utf-8')转码 和 e[0].decode('unicode-escape')依然 ...

  5. 如何把ANSYS模型输出为CDB文件并导入FLUENT  【转载】

    转载自: http://linziok99.blog.163.com/blog/static/100157302009320134826/ 在main menu中选择Archive Model ,再点 ...

  6. Qt3D使用assimp加载常规模型文件

    Qt3D使用assimp加载三维模型文件,assimp支持很多常规格式的三维模型格式: 其中支持导入的格式有: 3D 3DS 3MF AC AC3D ACC AMJ ASE ASK B3D BLEND ...

  7. 使用 Assimp 库加载 3D 模型

    前言 要想让自己的 3D 之旅多一点乐趣,肯定得想办法找一些有意思一点的 3D 模型.3D 模型有各种各样的格式,obj的,stl的,fbx的等等不一而足.特别是 obj 格式的 3D 模型,完全是纯 ...

  8. 图示详解BERT模型的输入与输出

    一.BERT整体结构 BERT主要用了Transformer的Encoder,而没有用其Decoder,我想是因为BERT是一个预训练模型,只要学到其中语义关系即可,不需要去解码完成具体的任务.整体架 ...

  9. DirectX11 With Windows SDK--19(Dev) 编译Assimp并加载模型、新的Effects框架

    前言 注意:这一章进行了重写,对应教程Dev分支第19章的项目,在更新完后面的项目后会替换掉原来第19章的教程 在前面的章节中我们一直使用的是由代码生成的几何模型,但现在我们希望能够导入模型设计师生成 ...

随机推荐

  1. Linux_install jdk

    Linux安装JDK步骤 1.先从网上下载jdk(jdk-7u1-linux-i586.rpm),下载地址:http://www.oracle.com/technetwork/java/javase/ ...

  2. Sum square difference

    简单: e sum of the squares of the first ten natural numbers is, 12 + 22 + ... + 102 = 385 The square o ...

  3. 深入 JavaScript(6) - 一静一动

    这里是JavaScript核心的内容了. 挺多的JavaScript测试题也是围绕这个出的. 这里的一静一动指的是: 静, 词法作用域 - Lexical scoping 动, 动态绑定this的值 ...

  4. class$1,class$2,class$innerclass中的$的含义

    class文件名中的$的含义如下:   $后面的类是$前面的类的内部类 内部类有以下两种情况: 1.普通的组合类形式,即在一个类内部定义一个普通的类  public class Outer { cla ...

  5. 【2012天津区域赛】部分题解 hdu4431—4441

    1001: 题意:给你13张麻将牌,问可以胡哪些张 思路: 枚举可能接到的牌,然后dfs判断能否胡 1002: 题意: 已知n,m 求 n的所有约数在m进制下的平方和 做法:队长用java高精度写的 ...

  6. [每日一题] OCP1z0-047 :2013-08-05 SELECT语句――列的表达式

    按题意操作如下: hr@MYDB> SELECT first_name,salary,salary*12+salary*12*0.5 "ANNUAL SALARY + BONUS&qu ...

  7. CentOS 6.3下Samba服务器的安装与配置(转)

    CentOS 6.3下Samba服务器的安装与配置   一.简介 Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,而SMB是Server Message Block的缩写, ...

  8. s16_day01

    一.基础 1.编码 ascii-->GB2312-->GB18030-->GBK-->unicode-->UTF8可变长 2.数据类型 int,long,float,co ...

  9. (转)iOS如何取得APP的版本信息跟服务器对比进行升级提示?

    关键是自动取版本信息: [NSString stringWithFormat:@"Version %@",[[NSBundle mainBundle] objectForInfoD ...

  10. Java正則表達式语法

    Java正則表達式语法 字符 说明 \ 将下一字符标记为特殊字符.文本.反向引用或八进制转义符.比如,"n"匹配字符"n"."\n"匹配换行 ...