初识WebGL 2 | 青训营笔记

简介: 上期简单介绍了webgl的基本使用流程,并试着绘制了一个三角形。这期我们再深入了解一下这个图形处理工具。

上期简单介绍了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和其他第三方库友好

跨平台,支持服务端渲染微信小程序


相关文章
|
3月前
|
API 图形学
Unity精华☀️GetInstanceID 和 GetHashCode 的区别
Unity精华☀️GetInstanceID 和 GetHashCode 的区别
《Three.js开发指南第2版》读书笔记1
《Three.js开发指南第2版》读书笔记1!!!《Three.js开发指南第2版》读书笔记1!!!
|
缓存 前端开发 JavaScript
《Three.js开发指南第2版》读书笔记2
《Three.js开发指南第2版》读书笔记2!!!《Three.js开发指南第2版》读书笔记2!!!
|
缓存 程序员 图形学
WebGL初识1 | 青训营笔记
今天跟着青训营网课学习了月影大大的“WebGL与动画实现”,感觉打开了新世界的大门,特记笔记来加深印象、巩固学习。
WebGL初识1 | 青训营笔记
|
缓存 移动开发 前端开发
WebGL | 青训营笔记
WebGL | 青训营笔记
101 0
WebGL | 青训营笔记
|
移动开发 前端开发 图形学
小游戏开发 | 青训营笔记
小游戏开发 | 青训营笔记
102 0
小游戏开发 | 青训营笔记
|
Web App开发 前端开发 图形学
Unity实战问题-WebGL问题集锦-上篇
众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣!!!
443 1
|
前端开发 JavaScript 异构计算
WebGL基础笔记
WebGL基础笔记
196 0
|
前端开发 C# vr&ar
Unity实战问题-WebGL问题集锦-下篇
众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣!!!
289 0
下一篇
无影云桌面