jt格式文件与网格压缩
jt格式文件与网格压缩
介绍
jt是一种3D数据格式,主要用于工业,产品可视化,数据交换,并且西门子在2012推动jt成为ISO国际标准。在文件尺寸方面,采用了不少专门的压缩方法,比较轻量化。
jt文件基本组织结构
- 分段(Segment),分元素(Element),并以GUID做记录与标识,方便扩展
- 网格数据以延迟特性的元素记录在另外的段,与主体内容不干扰,可以依需要才予以解析
- 支持网格数据分 LOD
- 可嵌入x_t拓扑几何数据,PMI等,从而可以保持和MCAD数据源的数据同步,这些数据也是以延迟加载特性存在的
网格压缩
3D网格数据一般分为两部分,一部分为拓扑(哪些顶点组成三角形/多边形);另一部分为几何(顶点数据)。
Google的draco库介绍
谷歌开源3D数据压缩算法 Draco 在线看片再也不用缓冲了?,相比通用压缩算法,针对3D数据的特点而开发的压缩可以有更大比率的压缩,这一领域现在也已经被研究二三十年了。
draco 支持输入点云与网格,分别为ply,obj输入格式,压缩后变为draco自身的格式,可解压输出为ply,obj。在拓扑的压缩上,draco里边有一个非常经典 EdgeBreaker编码过程,(draco还支持设置压缩程度,当最高为10时,似乎变换成为一种序列模式,这个是什么样的原理不大清楚),EdgeBreaker方面的国产论文是满天飞的;在几何的压缩上,没有细看draco的处理模式,可能采用了有损的压缩方式。点云的特点是只有几何而没有拓扑,所以draco可以省略掉拓扑方面的处理。
Simens的jt
jt文件还支持装配、部件的组织结构,这是ply,obj,cml,...等等一系列文件所不具备的。jt8.0版本的没有对拓扑的专门处理,而9.0版开始采用了一种对偶网格的方法进行压缩,对偶网格方面的国产论文很少,只找到2~3篇提高对偶网格的,自身并不介绍该方法,相比EdgeBreaker,对偶网格除支持三角形网格之外,还同时支持四边形,五边形等多边的模式。在其他方面,jt采用位长度编码,算术编码,8.0版还有一个Huffman编码,此外在位长度压缩上,9.0版与8.0版有所不同。
搞不大清楚为什么对偶网格方面的论文会比较少,不过如果仅依靠论文,掌握这些算法估计很难。
支持解析jt的库
可解析 jt格式文件 的osg插件
在文末提供一个我自己写的支持解析jt文件的osg插件,基于OpenSceneGraph 3.4.0开发,不过还比较简陋,jt8.1版的支持度相对好一些,9.0~9.5版还缺少Chopper解码,测试也还不够,大批9.0以上的文件估计无法支持,当前主要特性如下:
- 仅显示解析网格数据,未应用颜色
- 尚不支持多线程,延迟加载网格数据
- 代码架构与TKJT不同,理论上可以支持jt格式的写入,TKJT仅考虑显示jt
- 在解码编码方面为规避TKJT的版权约束,采用jt iso文件所提供的代码为蓝本改进,这个过程有点蛋疼,不过除解码外,还支持编码
此外仅提供Debug版的插件,还只算是Demo级别,之所以现在就发出来,是因为出于时间与精力的考虑,准备暂时中止这一方面的探索,想对前面这好几个月在这方面的花费时间与精力做一个备份,以后再视情况与机会改进。
jt格式文件与网格压缩的更多相关文章
- jt格式文件读取,osg显示插件更新
osgdb_jt 最近还是更新了一下 osgdb_jt 插件.解码jt格式核心库jt_toolkit,通过静态链接到Plugin jt产生osgdb_jt插件,使得osg可以可视化jt格式文件. 用法 ...
- jt格式文件与3D数据压缩
介绍 JT是西门子公司推出的PLM通用三维格式,设计为一个开放.高效率的.紧凑,持久性存储的产品数据格式,用于产品可视化.协作和CAD数据共享.JT文件格式包括多方面的数据,以及对曲面边的精准表示,产 ...
- 对TextFile格式文件的lzo压缩建立index索引
转自:http://blog.csdn.net/yangbutao/article/details/8519572 hadoop中可以对文件进行压缩,可以采用gzip.lzo.snappy等压缩算法. ...
- 使用C#压缩解压rar和zip格式文件
为了便于文件在网络中的传输和保存,通常将文件进行压缩操作,常用的压缩格式有rar.zip和7z,本文将介绍在C#中如何对这几种类型的文件进行压缩和解压,并提供一些在C#中解压缩文件的开源库. 在C#. ...
- Linux下zip格式文件的解压缩和压缩
Linux下zip格式文件的解压缩和压缩 Linux下的软件包很多都是压缩包,软件的安装就是解压缩对应的压缩包.所以,就需要熟练使用常用的压缩命令和解压缩命令.最常用的压缩格式有.tar.gz/tgz ...
- RTF格式文件浅析
ps:这两天在分析从微软的word复制一个绕排环绕的表格到openoffice的writer中去的bug,需要了解RTF... RTF是Rich TextFormat的缩写,意即多文本格式.这是一种类 ...
- 【NLP】Tika 文本预处理:抽取各种格式文件内容
Tika常见格式文件抽取内容并做预处理 作者 白宁超 2016年3月30日18:57:08 摘要:本文主要针对自然语言处理(NLP)过程中,重要基础部分抽取文本内容的预处理.首先我们要意识到预处理的重 ...
- Zip文件压缩(加密||非加密||压缩指定目录||压缩目录下的单个文件||根据路径压缩||根据流压缩)
1.写入Excel,并加密压缩.不保存文件 String dcxh = String.format("%03d", keyValue); String folderFileName ...
- linux专题一之文件归档和压缩(tar、file、zip)
本文主要从以下几个方便来说明文件的归档和压缩,同时比较几种不同压缩方法的压缩比率及特点. 文件归档命令tar,tar.gz源码包的安装管理 创建tar包-解压-查询tar包内容 zip命令的用法 为 ...
随机推荐
- Alamofire源码解读系列(十二)之时间轴(Timeline)
本篇带来Alamofire中关于Timeline的一些思路 前言 Timeline翻译后的意思是时间轴,可以表示一个事件从开始到结束的时间节点.时间轴的概念能够应用在很多地方,比如说微博的主页就是一个 ...
- 深拷贝/浅拷贝之Js / AngularJs
var a = [1,2,3,4]; var b = a; b[1] = 8; console.log("a:" + a );//1,8,3,4 consloe.log(" ...
- SQL使用视图的优缺点
视图是为了查询方便!也就是多个表的总结!但是不能对视图增删改! 在做数据库开发中使用视图的优点有: 1.视图的好处就是在你做复杂的查询逻辑时可以简化你的思考过程. 2.用视图可以隐藏一定的信息,用过滤 ...
- Nest客户端的基本使用方法
通过Nuget安装好Nest的相关Dll,之后我们就可以开始了, 1.初始化Nest客户端 string indexName = "customer"; Uri uri = new ...
- 使用react native制作的一款网络音乐播放器
使用react native制作的一款网络音乐播放器 基于第三方库 react-native-video设计"react-native-video": "^1.0.0&q ...
- 关于ajax post请求跨域问题的解决心得
最近啊,公司有个项目,需要做一个手机端APP的后台管理系统.所以用到了度文本编辑框,经过了好好一番周折,终于弄好了,带到上线的时候发现啊,只能使用ip去访问网页的时候上能穿图片他不会报跨域的问题,而使 ...
- 间谍网络——tarjan求SCC
洛谷传送门 看着这道题给人感觉就是tarjan求SCC,然而还得判断是否能控制全部间谍,这就得先从可以贿赂的点dfs一遍. 如果没有全部被标记了,就输出NO,再从没被标记的点里找最小的标号. 如果全被 ...
- shell脚本基本知识点
Shell 是一个用C语言编写的程序,它是用户使用Linux的桥梁.用户通过这个界面访问Linux操作系统内核的服务.Shell既是一种命令语言,又是一种程序设计语言. 1.Shell 环境 Shel ...
- commitProperties方法
自定义的组件,如果重写commitProperties方法,那么在该方法内部一定要注意super.commitProperties()的调用.
- qt 文本中显示中文
QTextCodec *codec = QTextCodec::codecForName("utf8");QTextCodec::setCodecForLocale(codec); ...