预览加载中,请您耐心等待几秒...
1/8
2/8
3/8
4/8
5/8
6/8
7/8
8/8

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号CN106909640A(43)申请公布日2017.06.30(21)申请号201710083905.3(22)申请日2017.02.16(71)申请人杭州新迪数字工程系统有限公司地址310012浙江省杭州市西湖区西斗门路3号天堂软件园D幢6层C座、6层D座申请人武汉新迪数字工程系统有限公司(72)发明人陈志杨彭维蒋跃华岳志林(74)专利代理机构杭州君度专利代理事务所(特殊普通合伙)33240代理人郑芳王桂名(51)Int.Cl.G06F17/30(2006.01)G06T19/20(2011.01)权利要求书2页说明书5页(54)发明名称基于webgl的三维模型轻量化展示技术(57)摘要本发明涉及一种基于webgl的三维模型轻量化展示技术,包括下述步骤:(1)获取模型的几何和材质,根据模型树生成场景树,若有动画则生成动画树;(2)获取几何的离散三角形和线段;(3)缩小化三角形索引,以提高压缩算法压缩率;(4)压缩三角形法向数据;(5)缩小化线段的索引;(6)几何对象进行分块处理;(7)几何分块用lzma压缩生成若干bin文件;(8)几何和材质的属性、场景树和动画树数据json化,生成js文件;(9)读取并解压文件,还原三角形和线段,建立场景和动画并渲染。本发明提供了将多格式三维模型转化为轻量化的中间格式数据方法,并可基于webgl直接在浏览器中进行展示,缩减了模型大小,提高了模型在网页中的加载和显示速度。CN106909640ACN106909640A权利要求书1/2页1.一种基于webgl的三维模型轻量化展示技术,其特征在于包括下述步骤:(1)对第三方格式的三维模型进行预处理,获取所有几何对象并去除重复的对象,再根据其材质信息生成对应的材质对象,根据模型树结构生成对应的场景树结构,若模型存在动画,则生成对应的动画树结构;(2)对所有几何对象进行预处理,获取几何对象的离散三角形和离散线段数据,离散三角形包括顶点数据、UV数据、法向数据和索引数据,离散线段包括顶点数据和索引数据;(3)对离散三角形的索引数据进行排序并对其值进行缩小化处理,以提高压缩算法对索引数据的压缩率;先找出每个三角形的索引的最小值,以最小值重新定义三角形索引顺序,而后将所有三角形以第一个顶点和第二个顶点的索引大小进行从小到大的排序,最后利用错位相减法对所有三角形的索引进行缩小化处理;(4)对离散三角形的法向量按照象限区分后进行整数化处理,减少法向数据存储的字节数;(5)对离散线段的索引数据进行缩小化处理;(6)对所有几何对象进行分块处理;(7)对所有的几何对象的分块分别进行lzma的压缩处理并生成后缀为bin的若干文件;(8)对所有几何对象和材质对象的属性数据、场景树和动画树进行json化处理,生成后缀为js的主文件,记录几何对象、材质对象、场景树结构、动画树结构以及其他自定义数据;(9)前端分别读取js主文件和bin文件,对bin文件进行解压后,再对离散三角形和离散线段的数据进行还原处理,根据场景树结构和动画树结构分别建立场景和动画对象,之后利用webgl渲染场景和动画对象。2.根据权利要求1所述的基于webgl的三维模型轻量化展示技术,其特征在于步骤(1)按下述方法进行:先通过相关api获取模型中所有几何对象节点,然后对重复节点去冗余,记录其相关属性数据,同时获取几何对象对应的材质信息,生成材质对象,最后根据模型树结构生成对应的场景树结构。3.根据权利要求2所述的基于webgl的三维模型轻量化展示技术,其特征在于步骤(2)按下述方法进行:根据设置的精细度,通过相关api控制离散精度,获取离散三角形和离散线段数据;其中,离散三角形的数据定义为:顶点数据为每个顶点坐标由三个单精度浮点数表示,UV数据为每个顶点的UV由两个单精度浮点数表示,法向数据为每个顶点的法向量由三个单精度浮点数表示,索引数据为每个三角形的索引由4位的三个整数表示;其中,离散线段的数据形式为:顶点数据为每个顶点坐标由三个单精度浮点数表示,索引数据为每个线段的索引由4位的两个整数表示。4.根据权利要求3所述的基于webgl的三维模型轻量化展示技术,其特征在于步骤(3)按下述方法进行:对于每个三角形的三个索引v1、v2和v3,在右手法则的约束下,找出其中的最小值,假定最小值为v2,则新的索引顺序为v2、v3、v1,将所有三角形按照第一个顶点和第二个顶点的索引大小进行从小到大的排序,假设排序后的离散三角形索引为f(n)=(v1,v2,v3,v4,v5,v6,…,vn),其中n为所有三角形的顶点数量,利用错位相减法进行缩小,对于第一个三角形(v1,v2,v3),执行v2=v2–v1和v3=v3–v1的运算,对于其他三角形,