Three.js开发神器-开篇

hello,大家好,如果你目前使用three.js开发时,肯定会遇到如下的瓶颈:

  1. 简单的场景动辄几十M,甚至上百M的三维数据(包含模型数据及纹理贴图数据);

  1. 三维效果总是不佳,三维场景灰蒙蒙的、暗淡无光、阴影效果不佳;

  1. 效果好不容易调节开发好了,性能又很差;

  1. 一个很简单的场景有大量的代码,没有工具化处理,要调节一个效果,一般都是改代码来调节,是不是很痛苦(如果你不想掉头发的话,可以看看这款神器)

那么今天给大家介绍的这款神器,有助于减少开发人员掉头发,让你重新认识three.js的开发流程,有助于提升你们WebGL产品;

好了,废话不多说,先上神器的在线Demo,先体验看看效果,插件内置Demo,没有写代码,该神器是Unity3d的一款插件。

插件可到Unity商城搜索Export to three.js

插件在线Demo地址(如遇无法打开的现象,请科学上网访问,插件作者把Demo部署在国外服务器上,demo中的数据包都不大,打开比较慢的话,是你网络的问题哟):https://n3gis.github.io/exportToThree(3.0).html

(三维模型和贴图总共大小:982KB)

(三维模型和贴图总共大小:2.59MB)

(三维模型和贴图总共大小:562KB)

(三维模型和贴图总共大小:2.85MB)

(三维模型和贴图总共大小:11.0MB)

(三维模型和贴图总共大小:24.0MB)

(三维模型和贴图总共大小:29.9MB)

如果大家网速可以,看了在线Demo的话,可以通过调试模式看看数据包与笔者说的数据大小是不是一致的,欢迎大家来验证;

好了,接下来,我们说说这款神器有哪些优势,会给我们解决那些问题:

  1. 可视化调节,流程化处理,解决效率问题。借助Unity3d编辑器可视化来调节三维场景,不用写代码的方式来调节效果了;使用Unity可视化编辑器来调节天空盒、基于Unity的URP渲染管线来调节PBR材质,最后使用插件导致三维场景;

  1. 纹理贴图使用高压缩比的WebP格式,解决数据大小问题。插件支持将hdr、jpg、png等格式的纹理贴图转换成WebP格式(关于WebP格式的优点,大家可以百度去查询),这样贴图数据会有大幅度减小,笔者这里做了一个测试,用了一张1.02M的png图片,分别保存成无损压缩的WebP格式和有损压缩,质量在75%时的对比,数据对比如下图所示:

很明显,质量在75%下的有损压缩数据极小,同时视觉效果与png相当,这样会大大减小网络的下载传输时间;

  1. 插件支持灯光贴图lightingMap的导出,解决视觉效果问题。如果是大型三维场景或者是室内场景,使用Unity3d烘焙灯光阴影后,视觉效果会非常好,同时因为将灯光阴影烘焙到贴图上了,three.js加载三维后没有给灯光和阴影,是不是性能又有提升了呀;

  1. 支持相同模型实例导出,解决性能和数据大小问题。当场景中有大量相同的模型(例如:树),具有相同的模型数据,只是坐标、旋转角度及缩放比例不一样,这样的模型使用插件,开启实例模式导出后,模型结构数据只有一份,减小了模型的数据大小;

  1. 批量导出,渐进式加载三维场景,解决初始化用户等待问题。在大型场景中,可以分批导出模型,这样每个模型包都很小,减小了用户等待的时间;

  1. gzip压缩模型,解决数据大小问题。插件支持将模型导出高压缩比的gzip格式,经过笔者对比,gzip压缩是网页解压速度最快的一种了,对比zip等压缩,gzip在解压速度和压缩比上时最佳的,大家可以测试;

  1. 还有很多功能,今天这章节就介绍到这里,回头会系列介绍该神器的使用;

猜你喜欢

转载自blog.csdn.net/fengzi1103771698/article/details/128889379