• 正文概述
  • GLTF介绍:

    glTF 称为“ 3D 界的 JPEG”,使用了更优的数据结构,为应用程序实时渲染而生。glTF 有以下几大特点: – 由现有 OpenGL 的维护组织 Khronos 推出,目的就是为了统一用于应用程序渲染的 3D 格式,更适用于基于 OpenGL 的引擎; – 减少了 3D 格式中除了与渲染无关的冗余信息,最小化 3D 文件资源; – 优化了应用程序读取效率和和减少渲染模型的运行时间; – 支持 3D 模型几何体、材质、动画及场景、摄影机等信息(因为gltf已经把整个场景都放到里面去了所以当然支持动画蒙皮子类等等)。 glTF 导出格式有两种后缀格式可供选择:.gltf 和 .glb: – .gltf 文件导出时一般会输出两种文件类型,一是 .bin 文件,以二进制流的方式存储顶点坐标、顶点法线坐标和贴图纹理坐标、贴图信息等模型基本数据信息;二是 .gltf 文件,本质是 json 文件,记录对bin文件中模型顶点基本数据的索引、材质索引等信息,方便编辑,可读性较好; – .glb 文件格式只导出一个 .glb 文件,将所有数据都输出为二进制流,通常来说会更小一点,若不关心模型内的具体数据可直接选择此类型。

    GLTF 打开

    方式一:推荐使用gltf-viewer来打开,能直接修改查看各种属性;

    在这里插入图片描述

    方式二:,VScode安装一个插件“gltf tools”就可以一边查看json一边修改与查看模型了(只能看gltf不能看二进制的glb内容);同时最新的gltf tools还支持四种引擎Babylon.js Cesium Filament Three.js;

    在这里插入图片描述

    通过 Draco 进行压缩

    Draco 及 gltf-pipeline 介绍 Draco 是一种库,用于压缩和解压缩 3D 几何网格(geometric mesh)和点(point cloud)。换句话说,它显著缩小了 3D 图形文件的大小,同时对 3D 图形的观看者来说又根本不严重影响视觉效果。它还旨在改善 3D 图形的压缩和传输。 Draco是由Google推出的一个用于3D模型压缩和解压缩的工具库,glTF资源可通过、Draco开发命令行工具gltf-pipeline进行编码压缩,gltf-pipeline可通过npm的方式安装使用。谷歌团队宣称:“ Draco 是为了提升压缩效率和速度而设计和研制的。代码支持压缩点、连接信息、纹理坐标、颜色信息、正常量以及与几何形状有关的任何其他一般属性。有了 Draco,使用 3D 图形的应用程序可以小巧得多,又不影响视觉逼真度。对于用户来说,这意味着现在应用程序下载起来更快了,浏览器中的 3D 图形加载起来更快了,现在只需要少量的带宽就可以传输虚拟现实和增强现实了,而且可以迅速呈现、画面极其逼真。” Draco开源库地址 Draco 是作为 C++ 源代码发布的,可以用来压缩 3D 图形,另外还发布了处理编码数据的 C++ 和 Javascript 解码器。

    #全局安装
    npm install -g gltf-pipeline
    #压缩glb文件 -b表示输出glb格式,-d表示压缩
    gltf-pipeline -i model.glb -b -d
    #压缩glb文件并将纹理图片分离出来
    gltf-pipeline -i model.glb -b -d -t
    #更多参数查阅
    gltf-pipeline -h

    Draco压缩的分析:

    通过 Draco 进行压缩基本上是有损的,有两点表现: – Draco 通过 Edge breaker 3D 压缩算法改变了模型的网格数据的索引方法,缺少了原来的网格顺序; – Draco 通过减少顶点坐标、顶点纹理坐标等信息的位数,以减少数据的存储量。

    --input, -i                   Path to the glTF or glb file.[string] [required]
    --output, -o                  Output path of the glTF or glb file. Separate   
                                   resources will be saved to the same directory.  
                                                                           [string]
    --binary, -b                  Convert the input glTF to glb.                                      //将输入的glTF转换为glb
                                                         [boolean] [default: false]
    --json, -j                    Convert the input glb to glTF.                                      //将输入的glb转换为glTF
                                                         [boolean] [default: false]
    --separate, -s                Write separate buffers, shaders, and textures                       //编写单独的缓冲区、着色器和纹理而不是把它们嵌入到glTF中
                                   instead of embedding them in the glTF.          
                                                         [boolean] [default: false]
    --separateTextures, -t        Write out separate textures only.                                   //只写出单独的纹理
                                                         [boolean] [default: false]
    --stats                       Print statistics to console for output glTF                         //将统计信息打印到控制台以输出glTF文件
                                   file.                 [boolean] [default: false]     
    --keepUnusedElements          Keep unused materials, nodes and meshes.                            //保留未使用的材质、节点和网格
                                                          [boolean] [default: false]
    --draco.compressMeshes, -d    Compress the meshes using Draco. Adds the                            //使用Draco压缩网格。添加KHR_draco_mesh_压缩扩展
                                    KHR_draco_mesh_compression extension.
                                                          [boolean] [default: false]
    --draco.compressionLevel      Draco compression level [0-10], most is 10,                           //Draco压缩级别[0-10],大多数是10,最小值为0。值为0将会连续应用 编码并保留face顺序。
                                    least is 0. A value of 0 will apply sequential
                                    encoding and preserve face order.
                                                               [number] [default: 7]   
    --draco.quantizePositionBits  Quantization bits for position attribute when                        //位置坐标属性的量化位使用Draco压缩。
                                    using Draco compression.  [number] [default: 11]
    
    --draco.quantizeNormalBits    Quantization bits for normal attribute when                           //法线属性的量化位使用Draco压缩
                                    using Draco compression.   [number] [default: 8]
    
    --draco.quantizeTexcoordBits  Quantization bits for texture coordinate                               //纹理坐标的量化位属性。
                                    attribute when using Draco compression.
                                                              [number] [default: 10]
    
    --draco.quantizeColorBits     Quantization bits for color attribute when using                        //使用时颜色属性的量化位德拉科压缩
                                    Draco compression.         [number] [default: 8]
    
    --draco.quantizeGenericBits   Quantization bits for skinning attribute (joint                        //蒙皮属性(关节的量化位索引和关节权重)ad自定义属性使用Draco压缩时。
                                    indices and joint weights) ad custom attributes
                                    when using Draco compression. [number] [default: 8]
    
    --draco.uncompressedFallback  Adds uncompressed fallback versions of the                            //添加未压缩的回退版本压缩网格
                                    compressed meshes.    [boolean] [default: false]
    
      --draco.unifiedQuantization   Quantize positions of all primitives using the            //统一定义的量化网格所有基本体的边界框。 如果这个选项未设置,对每个应用量化原始的可能会导致差距出现在不同图元之间。
                                    same quantization grid defined by the unified
                                    bounding box of all primitives. If this option
                                    is not set, quantization is applied on each
                                    primitive separately which can result in gaps
                                    appearing between different primitives.
                                                          [boolean] [default: false]

    参考资料:

    GLTF2.0

    压缩算法

    3D文件压缩库——Draco简析

    Draco Compressed Meshes with glTF and 3D Tiles

    1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
    2. 分享目的仅供大家学习和交流,请不要用于商业用途!
    3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入!
    4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
    5. 如有链接无法下载、失效或广告,请联系管理员处理!
    6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
    7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员!
    8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
    声明如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性

    GLB下载网(glbxz.com)gltf文件下载-glb格式下载-模型制作 » gltf格式一、简介

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载要提取码
    百度网盘提取码都是gltf。
    分享过期和重复下载怎么办
    分享过期请使用备份下载,重复下载是不另扣费的,请放心下载。
    模型和平台不兼容怎么办
    可以用网站在线编辑功能,修改模型属性,大小,方向,坐标,中心,透明等问题,然后重新导出既可https://glbxz.com/38636.html
    • 7879会员数(个)
    • 16034资源数(个)
    • 40本周更新(个)
    • 39125 今日更新(个)
    • 1139稳定运行(天)

    提供最优质的资源集合

    加入VIP
    开通VIP 享更多特权,建议使用 QQ 登录
    ×