初识WebGL 2 | 青训营笔记

92 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第7天 上期简单介绍了webgl的基本使用流程,并试着绘制了一个三角形。这期我们再深入了解一下这个图形处理工具。

一、Polygons 绘制多边形

我们现代绘图一般会把多边形进行三角剖分,然后进行绘制

image.png 简单多边形有Earcut三角剖分算法——

image.png 很形象,就是从多边形的角开始不断“削平”,最终分成三角形

二、Transforms 图形移动

绘制静态的图形回了,如何让它们活起来呢?

image.png 我们可以用数学中的几何学知识来实现。

三、好工具分享

老师还提供了一些开源项目,有素材库也有工具 image.png

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
  • 支持雪碧图和资源预加载
  • 可扩展的事件机制
  • 高性能的缓存策略
  • 对 D3Matter-jsProton和其他第三方库友好
  • 跨平台,支持服务端渲染微信小程序