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 的。