THREE 下另类的 HDR 压缩方法
HDRPrefilterTexture
详情
在 THREE 中使用 HDR 需要经过 PMREMGenerator 解决才能使用,并且在小程序 WebGL 环境下有部分机型在前后切换页面会偶现生成出错误的纹理(见小程序 WebGL 奇妙的 Bug 之旅 ),该项目的功能是导出PMREMGenerator生成产物到 PNG,再利用 PNG 无损压缩实现体积减少
输入大小为 5.3MB 的http://www.yanhuangxueyuan.com/threejs/examples/textures/equirectangular/venice_sunset_2k.hdr
| 环境 | REGBLoader 耗时 | PMREMGenerator 耗时 | 总耗时 |
|---|---|---|---|
| 模拟器 | 144ms | 17ms | 161ms |
| 小米 8 | 509ms | 55ms | 564ms |
注:RGBELoader 主要是加载网络耗时
// HDR本来加载路径RGBELoader -> PMREMGenerator -> 设置scene.environment// 优化后的路径TextureLoader -> 设置texture属性 -> 设置scene.environment而PMREMGenerator产物导出后的PNG只有1046.863kb,体积减少了4415.182kb
所以就有了这个HDRPrefilterTexture的项目,同时处理小程序下某些机型 bug,同时也优化加载时间,但是仅仅适用于 HDR 需要PMREMGenerator解决的场景。
其实也是一个优化的思路,其余纹理需要经过特定解决才能直接使用的,均可以把产生物导出。
Demo
image
TODO
- 支持批量导出 done
- 生成导出大小比照表格 done
仓库地址
deepkolos/hdr-prefilter-texture
deepkolos/three-platformize
LiveDemo
https://deepkolos.github.io/hdr-prefilter-texture/index.html
说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » THREE 下另类的 HDR 压缩方法
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » THREE 下另类的 HDR 压缩方法