摘要:网页动画,现在很重要,特效也多得很,原生写动画,太难了,还容易出问题,很多开源库就来了,用 canvas 的,用 webgl 的都有,就是为了方便,为了性能更好,
前端渲染库的大概,就这么回事
网页动画,现在很重要,特效也多得很,原生写动画,太难了,还容易出问题,很多开源库就来了,用 canvas 的,用 webgl 的都有,就是为了方便,为了性能更好,
先说说 three.js 吧,这是 webgl 的,能做 3D 场景,模型,光照,动画样样都行,API 挺好用的,东西也多,各种形状,各种材质都有,3D 文件也能用,跨平台,社区还大,用 webgl 就很合适,项目地址是,https://github.com/mrdoob/three.js.git,想试试可以去看看,
然后 babylon.js, 也是 webgl 的,算是个 3D 游戏引擎,渲染性能高,能模拟,还能交互,有物理引擎,粒子系统,材质高级,模型格式也支持很多,用起来简单,手机上也能用,做 webgl 游戏不错,项目地址是,https://github.com/BabylonJS/Babylon.js.git,感兴趣可以看看,
pixi.js,这个是 2D 的 webgl,做高性能 2D 应用和游戏,GPU 加速,管理显示对象,动画效果也可以,还能处理事件,性能高,跨平台,需要高效 2D 图形渲染就用它,项目地址是,https://github.com/pixijs/pixijs.git,觉得不错可以试试,
CesiumJS,这个也是 webgl 的,做 3D 地球和地图应用,支持很多地图数据格式,视角随便调,API 也多,渲染质量高,地理信息系统用它很合适,项目地址是,https://github.com/CesiumGS/cesium.git,做地图的可以看看,
regl.js,也是 webgl,写高性能交互图形应用,底层 webgl API,响应式编程,函数式编程风格,性能好,代码简洁,做数据可视化和交互动画好,项目地址是,https://github.com/regl-project/regl.git,搞图形的可以试试,
Fabric.js,这个是 canvas 的,做复杂图形和交互应用,能操作东西,处理事件,加滤镜,还能导入导出 SVG,用起来简单,功能也多,做图形设计类的应用不错,项目地址是,https://github.com/fabricjs/fabric.js.git,觉得合适可以试试,
EaselJS, 这个也是 canvas 的,简化 canvas 2D 绘图,显示列表,位图缓存,滤镜都有,还能处理鼠标和触摸事件,做游戏和动画开发好,优化手段也多,项目地址是,https://github.com/CreateJS/EaselJS.git,做 canvas 游戏的可以看看,
Konva.js,canvas 的,做 2D 绘图,性能和交互性好,能操作对象,处理事件,管理图层,做动画效果,做交互应用,游戏,可视化,艺术作品都行,项目地址是,https://github.com/konvajs/konva.git,大家都在想,用哪个好呢,
Rough.js,也是 canvas 的,能加手绘风格图形,手绘线条,形状,文本都能做,还能自定义设置,东西很轻量,快速创建独特的手绘风格,做个性化设计不错,项目地址是,https://github.com/rough-stuff/rough.git,想搞手绘风格可以试试,
SpriteJS,canvas 的,创建高性能动画和交互应用,GPU 加速,可以用 Web Worker,有精灵表,做动画效果,处理事件,性能好,做游戏和数据可视化应用不错,项目地址是,https://github.com/spritejs/spritejs.git,大家都觉得,这个性能不错,
到底选哪个,得看项目,游戏,数据可视化,还是图形设计,渲染要 2D 还是 3D,性能要求高不高,动画复杂不复杂,基本动画,还是复杂的骨骼动画,绘图风格是写实,手绘,还是矢量,开发经验也重要,掌握程度怎么样,学习曲线陡不陡峭,
选哪个库,看项目需求,看个人能力,想要高性能,可以用 Pixi.js 或者 SpriteJS,易于使用,控制对象,可以用 Konva.js,EaselJS 或者 Fabric.js,想要手绘特效,就用 Rough.js,很多看完这个故事,都会去想,哪个最适合自己,
最终目的,提高开发效率,提高用户体验,反正就是这么回事,大家都在想,这到底是怎么一回事,可是在那种环境下,谁能受得了,所有人都觉得她以后不得了,她小时候也确实乖,听话,老师们都喜欢,家里人也全力支持,
来源:电子小课堂一点号
