上期简单介绍了webgl的基本使用流程,并试着绘制了一个三角形。这期我们再深入了解一下这个图形处理工具。
一、Polygons 绘制多边形
我们现代绘图一般会把多边形进行三角剖分,然后进行绘制
简单多边形有Earcut三角剖分算法——
不断“削平”,最终分成三角形
二、Transforms 图形移动
绘制静态的图形回了,如何让它们活起来呢?
我们可以用数学中的几何学知识来实现。
三、好工具分享
老师还提供了一些开源项目,有素材库也有工具
spriteJS可以像操作dom一样调用,内容非常丰富
ThreeJS里有许多用shader渲染出来的3d效果
我们一起来看看吧
1、theejs
利用Three.JS可以制作出很多酷炫的3D动画,并且Three.js还可以通过鼠标、键盘、拖拽等事件形成交互,在页面上增加一些3D动画和3D交互可以产生更好的用户体验。
通过Three.JS可以实现全景视图,这些全景视图应用在房产、家装行业能够带来更直观的视觉体验。在电商行业利用Three.JS可以实现产品的3D效果,这样用户就可以360度全方位地观察商品了,给用户带来更好的购物体验。另外,使用Three.JS还可以制作类似微信跳一跳那样的小游戏。随着技术的发展、基础网络的建设,web3D技术还能得到更广泛的应用。
2、spritejs
Sprite 为图形创建类似于 DOM 的对象模型,因此我们可以像创建 DOM 元素一样,创建 Sprite 元素,并将它们 append 到 layer 上,从而将元素呈现到画布上。SpriteJS 有如下特点:
基于 canvas 绘制的文档对象模型
四种基本精灵类型:Sprite、Path、Label、Group
支持基础和高级的精灵属性,精灵盒模型、属性与 CSS3 具有高度一致性。
简便而强大的 Transition、Animation API
支持雪碧图和资源预加载
可扩展的事件机制
高性能的缓存策略
对 D3、Matter-js、Proton和其他第三方库友好