Verge3D场景数据压缩方式
概要
Verge3D通常使用glTF文件格式加载场景。在这种格式中,场景数据的大部分通常包含在一对.gltf / .bin文件或单个.glb文件中(取决于所选的导出方法)。为了减小应用程序的整体大小,可以压缩这些文件,然后由引擎而不是原始文件加载。
样本文件的大小比较:原始文件 vs GZIP压缩文件 vs LZMA2压缩文件
Verge3D支持加载以.xz文件格式压缩的场景文件,该格式包含LZMA2压缩算法。在Verge3D中使用场景压缩的优点是:
- LZMA2提供高压缩级别,可以显著减小文件大小
- 与常见的服务器端GZIP压缩相比,压缩级别更高,也需要在服务器上进行配置
- 在浏览器端快速解压缩
在下列情况下,特别推荐使用LZMA压缩:
- .gltf / .bin或.glb场景文件相对较大,因此有必要进行压缩以减小体积
- 网络连接速度很慢,因此每MB都很重要
- 标准服务器端GZIP压缩要么不受支持要么不满意,或者无法访问服务器来配置它
创建压缩文件
要在导出时自动创建.xz文件,您只需在导出设置中打开相应的选项即可。
3ds Max:
Blender:
加载xz压缩文件
Verge3D应用程序可以使用一对文件my_scene.gltf / my_scene.bin或单个文件my_scene.glb来加载场景。在这两种情况下,您都需要具有相应的xz压缩文件,例如:my_scene.gltf.xz / my_scene.bin.xz或 my_scene.glb.xz。他们必须在原来的附近。
您还需要指定压缩场景文件的路径,以便应用程序可以加载它。
对于基于播放器或自定义应用程序,其中包含主.js文件中指定的.gltf场景文件的路径,如下所示:
var URL = '__URL__my_scene.gltf';
或: var
url = 'my_scene.gltf';
您只需将其更改为压缩文件的路径:
var URL = '__URL__my_scene.gltf.xz';
或: var url = 'my_scene.gltf.xz';
对于基于播放器的应用程序,会在URL中指定场景.gltf的文件,例如:
http://localhost:8668/player/player.html?load=../applications/my_awesome_app/my_awesome_app.gltf
你可以简单地将其替换为压缩.gltf.xz文件的路径:
http://localhost:8668/player/player.html?load=../applications/my_awesome_app/my_awesome_app.gltf.xz
如果使用.glb和.glb.xz文件而不是.gltf / .bin,则 同样适用.glb和.glb.xz文件。
手动压缩文件或通过命令行压缩文件
或者,您可以使用存档实用程序(如7-Zip,XZ Utils或其他)创建.xz文件 。
由于优化目的,.xz解压缩程序的Verge3D实现对压缩文件施加了一些限制,因此不能加载每个.xz文件。.tar.xz文件也不受支持。考虑到这一点,建议使用下面描述的设置。
Windows系统
1)流行的文件压缩工具7-Zip 可用于创建.xz文件。
要压缩文件,您可以右键单击它,然后选择“7-Zip” - >“Add to arcive ...” - 这将打开相应的对话框窗口:
压缩设置应如下所示:
- 存档格式:xz
- 压缩级别:任何(正常,最大和超级给出最佳结果)
- 压缩方法:LZMA2(唯一可用的选项)
- 字典大小:最大8 MB - 越多越好(引擎不支持超过8 MB)
其余选项可以默认保留。
您也可以使用7-Zip的命令行:
7z.exe a -m0=LZMA2:d23 scene.gltf.xz scene.gltf
7z.exe a -m0=LZMA2:d23 scene.bin.xz scene.bin
2)或者,您可以使用名为XZ Utils的特殊命令行工具 。它的Windows可执行文件都可以 在这里的预建的二进制文件部分。
用法很简单:
xz.exe -k -f -6 scene.gltf
xz.exe -k -f -6 scene.bin
Linux系统
1)7-Zip命令行可以在大多数Linux发行版中安装即用,也可以从官方存储库中获得名为p7zip的软件包。
用法类似于Windows中的用法:
7z a -m0=LZMA2:d23 scene.gltf.xz scene.gltf
7z a -m0=LZMA2:d23 scene.bin.xz scene.bin
2)XZ Utils也可以在大多数Linux发行版中安装即用或从官方存储库中获得。
用法类似于Windows中的用法:
xz -k -f -6 scene.gltf
xz -k -f -6 scene.bin
MacOS系统 (未测试通过)
1)7-Zip命令行端口可以通过 Homebrew作为名为p7zip的软件包安装:
$ brew update
$ brew install p7zip
用法与Linux中的相同。
2)XZ utils的二进制文件可用于MacOS 10.5+ 这里的预建的二进制文件部分。用法与Linux中的相同。
Verge3D场景数据压缩方式相关推荐
- loadrunner-3-3场景计划方式与运行模式
场景计划方式 两种手工场景计划方式不同的概念: 场景模式如图所示:Group Name 中的所有脚本按照特定的场景计划来执行. 组模式如图所示:Group Name 中的每个脚本可独立设置. Star ...
- 终端针对2G/3G退网场景处理方式介绍
本文介绍两种终端针对2G.3G网络频谱释放场景处理方式. 呼叫过程中网络返回SIP ERROR 终端IMS呼叫过程中,网络返回PRACK message error,不同的运营商可能会有不同的要求. ...
- HBase数据压缩方式的介绍与实战
1.HBase数据压缩方式的介绍 为了提高 HBase 存储的利用率,很多 HBase 使用者会对 HBase 表中的数据进行压缩.目前 HBase 可以支持的压缩方式有 GZ(GZIP).LZO.L ...
- 炫云3ds Max插件场景处理方式
炫云在插件提交界面的高级设置中,提供四种已修改场景的处理方式.那么,这些方式究竟有什么不同,又该如何选择使用呢? 暂存修改,提交完成后恢复现场 如果用户在提交界面没有进行手动更改,炫云插件会默认第一种 ...
- [PowerShell]人人都值得学一点PowerShell实现自动化(2)有哪些可用的场景及方式?
部分读者反应太多知识要学了,学完一轮又一轮,笔者也不想单单为了制造学习而学习,所有Excel催化剂所发布的内容,都是笔者所亲自使用到的,当然很多领域也没有深挖到很底的程度. PowerShell使用场 ...
- TensorFlow系列——一些api的使用场景及方式
1.string_split: 在制作tfrecord的时候,将多个类别特征使用分隔符组装到一起,用一个特征列来存储,降低存储代价.而在训练时候使用string_split将其分隔,分别处理. 参考: ...
- 倾斜摄影超大场景的三维模型OSGB格式转换3DTILES,为什么数据文件大小会变大?
倾斜摄影超大场景的三维模型OSGB格式转换3DTILES,为什么数据文件大小会变大? 在将倾斜摄影超大场景的三维模型从OSGB格式转换到3DTILES格式时,数据文件大小可能会比原始数据文件变大的原因 ...
- Spring5 - 向IOC容器中添加组件的4种方式
文章目录 概述 方式一: @CompentScan 适用场景 Code 方式二: @Bean 适用场景 Code 方式三: @Import 适用场景 Code Demo1 Code Demo2 + 实 ...
- 笔记-信息系统开发基础-架构设计-软件体系结构评估方式
软件体系结构评估方式主要有以下三种: 1.基于调查问卷或检查表的评估方式 调查问卷是一系列可以应用到各种体系结构评估的相关问题,其中有些问题可能涉及到体系结构的设计决策:有些问题涉及到体系结构的文档, ...
最新文章
- Python 中print 和return 的区别
- 感觉没睡好就..-shenmedoumeixie....
- Fedora16安装mplaye和smplayer
- busybox tftp
- html/css学习笔记(一)
- EMNLP'21 | 让压缩语言模型自动搜索最优结构!
- Python稳基修炼的经典案例14(计算机二级、初学者必会字符格式处理)
- Quartz.net任务调度(石英钟定时任务)
- PETS:伯克利大神Sergey Levine指导的概率集成轨迹采样算法
- Spring Boot 知识笔记(集成zookeeper)
- 手机 html5 hammer drag widget,javascript – HTML5使用Hammer.js拖放事件拖放div上的元素
- paip.提高开发效率----自动数据库SQL备份
- python-unicode十进制数字转中文
- 2018Oracle11g下载与安装菜鸟教程(一)
- python酷q机器人_NoneBot+酷Q,打造QQ机器人
- autojs自动阅读脚本源代码免费分享
- linux apache 查看mpm 配置方式,apache httpd mpm配置
- DevOps--Chef/Puppet
- Excel实用教程-IF函数怎么用
- python对英雄皮肤进行图片采集~