THREE 下另类的 HDR 压缩方法

作者 : 开心源码 本文共817个字,预计阅读时间需要3分钟 发布时间: 2022-05-13 共309人阅读

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 耗时总耗时
模拟器144ms17ms161ms
小米 8509ms55ms564ms

注:RGBELoader 主要是加载网络耗时

// HDR本来加载路径RGBELoader -> PMREMGenerator -> 设置scene.environment// 优化后的路径TextureLoader -> 设置texture属性 -> 设置scene.environment

PMREMGenerator产物导出后的PNG只有1046.863kb,体积减少了4415.182kb

所以就有了这个HDRPrefilterTexture的项目,同时处理小程序下某些机型 bug,同时也优化加载时间,但是仅仅适用于 HDR 需要PMREMGenerator解决的场景。

其实也是一个优化的思路,其余纹理需要经过特定解决才能直接使用的,均可以把产生物导出。

Demo

image

TODO

  1. 支持批量导出 done
  2. 生成导出大小比照表格 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 压缩方法

发表回复