Assimp场景模型输出Collada,STL,3DPDF
本文介绍开源库模型的几种输出格式: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的更多相关文章
- cesium 学习(五) 加载场景模型
cesium 学习(五) 加载场景模型 一.前言 现在开始实际的看看效果,目前我所接触到基本上都是使用Cesium加载模型这个内容,以及在模型上进行操作.So,现在进行一些加载模型的学习,数据的话可以 ...
- iOS模型输出和打印
在调试时,我们经常用到输出model,查看数据是否正确,还会在控制台"po 模型"操作,一般输出都是这样的格式的: person is <Person: 0x60800003 ...
- 分类模型输出y值
y=w0+w1x1+w2x2+....+wnxn coef_:存储w1,w2,...wn. intercept_:存储w0 dual_coef_*support_vectors_=coef_ (1)S ...
- 【python2/3坑】从gensim的Word2Vec.load()的中文vector模型输出时显示unicode码
服务器上python2.7 打印出的e[0]对应的是 unicode码 于是分别尝试了用e[0].encode('utf-8')转码 和 e[0].decode('unicode-escape')依然 ...
- 如何把ANSYS模型输出为CDB文件并导入FLUENT 【转载】
转载自: http://linziok99.blog.163.com/blog/static/100157302009320134826/ 在main menu中选择Archive Model ,再点 ...
- Qt3D使用assimp加载常规模型文件
Qt3D使用assimp加载三维模型文件,assimp支持很多常规格式的三维模型格式: 其中支持导入的格式有: 3D 3DS 3MF AC AC3D ACC AMJ ASE ASK B3D BLEND ...
- 使用 Assimp 库加载 3D 模型
前言 要想让自己的 3D 之旅多一点乐趣,肯定得想办法找一些有意思一点的 3D 模型.3D 模型有各种各样的格式,obj的,stl的,fbx的等等不一而足.特别是 obj 格式的 3D 模型,完全是纯 ...
- 图示详解BERT模型的输入与输出
一.BERT整体结构 BERT主要用了Transformer的Encoder,而没有用其Decoder,我想是因为BERT是一个预训练模型,只要学到其中语义关系即可,不需要去解码完成具体的任务.整体架 ...
- DirectX11 With Windows SDK--19(Dev) 编译Assimp并加载模型、新的Effects框架
前言 注意:这一章进行了重写,对应教程Dev分支第19章的项目,在更新完后面的项目后会替换掉原来第19章的教程 在前面的章节中我们一直使用的是由代码生成的几何模型,但现在我们希望能够导入模型设计师生成 ...
随机推荐
- WDCP一些常用的一健安装包可选安装组件
为有更好的性能,也为更简洁的系统,一些不是常用或不是基本的功能,都将做为可选的安装组件需要用到的就安装 memcache的安装 wget -c http://down.wdlinux.cn/in/me ...
- Delphi XE5 附破解补丁
Embarcadero RAD Studio XE5 Version 19.0.13476.4176: http://altd.embarcadero.com/download/radstudio/x ...
- angular controller js 压缩后报错解决方案
简单介绍下ng-annotate这个项目,这个项目正好提供了gulp的插件. gulp配置文件: var gulp = require('gulp'); var ngAnnotate = requir ...
- C# 文件创建时间,修改时间
System.IO.FileInfo fi = new System.IO.FileInfo(@"D:\site\EKECMS\skin\Grey\default#.html"); ...
- OSSEC配置
http://gavinshaw.blog.51cto.com/385947/1020540
- ural 1723 Sandro's Book
http://acm.timus.ru/problem.aspx?space=1&num=1723 #include <cstdio> #include <cstring&g ...
- WINDOWS基本数据类型示例
最近也学学这些,争取把所有东东都串起来. #include <Windows.h> #include <stdio.h> int WINAPI WinMain( HINSTAN ...
- http协议的各个版本及区别
这个东西在一篇博文上面看见的,谢谢原博主提供!又学习了...
- HASH JOIN算法
哈希连接(HASH JOIN) 前文提到,嵌套循环只适合输出少量结果集.如果要返回大量结果集(比如返回100W数据),根据嵌套循环算法,被驱动表会扫描100W次,显然这是不对的.看到这里你应该明白为 ...
- Go语言环境配置 Sublime Text + GoSublime+ gocode + MarGo组合
买来<Go Web编程>一书学习Go语言,结果按照书中的步骤搭建,发现部分站点已经失效了,查了网上好多教程也没有人能够说清楚如何搭建.还是自己动手找方法吧,经过自己的不懈努力终于搭建好了. ...