WebAssembly 在 3D 模型解码中的应用
出处:
mp.weixin.qq.com
作者:
王楠、陈泽槟
在 Web 3D 渲染场景中,使用建模软件构建好的 3D 模型文件,模型的细节越精细对应的文件体积也会越大,考虑到 Web 下网络传输的影响,往往会对 3D 模型文件应用压缩算法以减少文件体积,此时就需要在 Web 端对经过压缩的模型进行快速高效的解码。WebAssembly 在 CPU 计算密集的场景有着更优的性能,同时结合 Web Worker 一起使用的话,还不会阻塞渲染主线程,非常适合用来实现 3D 模型解码的解码器(以下简称 decoder)。 本文将以 glTF 格式的 3D 模型为例,介绍实际业务场景中是如何应用 WebAssembly 来实现 3D 模型的解码。首先,本文将简要介绍保时捷礼物的业务背景和 glTF 格式相关压缩算法;其次,分别介绍基于 WebAssembly 的 Draco 和 Meshopt 两种压缩算法的解码器实现;最后,在保时捷业务场景中尝试应用 glTF 两种压缩算法,并对 glTF 模型的不同压缩率和模型加载耗时进行了对比。