初识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和其他第三方库友好

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


相关文章
|
JavaScript
Handsontable - 汉化包(Vue 项目)
Handsontable - 汉化包(Vue 项目)
1669 0
Handsontable - 汉化包(Vue 项目)
|
8月前
|
JavaScript
一篇文章讲明白js鼠标侧键监听(也有左键,中键和右键)
一篇文章讲明白js鼠标侧键监听(也有左键,中键和右键)
333 0
|
Java 编译器 开发工具
cocos打包安卓: gradlew打包Android环境搭建
cocos打包安卓: gradlew打包Android环境搭建
711 0
|
JavaScript 前端开发 C++
|
存储 安全 文件存储
企业用户多账号合并之存储迁移集中
本文介绍使用在线迁移服务,将分布在各个云账号中的对象存储、文件存储数据集中到一个 账号的对象存储或文件存储下。
企业用户多账号合并之存储迁移集中
|
监控 数据可视化 物联网
webgl(three.js)实现室内定位,楼宇bim、实时定位三维可视化解决方案
3D定位、三维室内定位、3d建筑,3d消防,消防演习模拟,3d库房,3d档案室,3d密集架,webGL,threejs,3d机房,bim管理系统
4900 0
|
数据可视化 物联网
Threejs物联网,养殖场3D可视化(三)模型展示,轨道控制器设置,模型沿着路线运动,模型添加边框,自定义样式显示标签,点击模型获取信息
Threejs物联网,养殖场3D可视化(三)模型展示,轨道控制器设置,模型沿着路线运动,模型添加边框,自定义样式显示标签,点击模型获取信息
988 15
Threejs物联网,养殖场3D可视化(三)模型展示,轨道控制器设置,模型沿着路线运动,模型添加边框,自定义样式显示标签,点击模型获取信息

热门文章

最新文章