WebGL在公司的发展空间

应用方向

WebGL 的特性是 3D、高性能、视觉表现。我们公司对于 3D 的需求其实比较少,因此我们应该将重点放在后面 2 个上。

正好今年在做运营类的视频,这一块是可以考虑将 WebGL 应用上去的,比如:

粒子特效

比如类似这样的:

https://github.com/stonerao/three-effect

https://github.com/stonerao/threejs-shader-2

https://github.com/stonerao/threejs-shader

https://github.com/youngdro/3DPoints

形变动画

https://tgideas.qq.com/2017/three/shader/particle-gpu/gpu.html

ECharts 的形变还是太粗糙了;如果我们能基于 shader 做形变,那视觉冲击力绝对有质的提升,而且可控性非常强。

我们的图表绘制后,在页面上就是像素,而 WebGL 的着色器就是基于像素级别的控制的,理论上来说,完全可以实现不同图表之间的无缝切换。

graph LR
    a(提前绘制好图形A和B) --> b(获取A的最后一帧的像素信息和B的第一帧的像素信息) --> c(对比算法) --> d(图形细化为像素) --> e(形变动画) --> f(完成图形切换)

这样的方案,还能让我们不受限于上层图表的开发技术栈,只着眼于像素处理、图像处理。

T4 升级目标

沉下去,深挖 Web 特效、形变、动画这个方向;结合数据,出一个框架。

1、流程建设:梳理出 WebGL 的工作流

2、沉淀积累:形成特效组件库

3、推广应用:以公开课的形式在公司推广宣讲;在产品中也应用上,比如借助我们的动态图表落地到业务中去

技术挑战

算法

各种形变算法、Diff 算法、布局算法、动画算法等等,这个有技术挑战,也比较好拿出来说。

性能

让我们的功能可以在更多的低端机型上运行。

这块有量化数据可以作为说明,包括数量级、计算速度、耗电量等等。

技术选型

让具体执行的人员去调研,目前已知的比如 Three.js VS. Pixi.js 等等都是可以做 shader 的。