WebGL 3D动画与交互初探

Posted 爱油茶设计中心

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WebGL 3D动画与交互初探相关的知识,希望对你有一定的参考价值。

令人愉悦的动效几乎已经成为如今网页设计的标准配置了,随着网速的提升,设备的更新,技术的发展,动效也有了更多可能性和突破性。作为前端工程师(搬砖码农)的我,也忍不住写一个教你写WebGL 3D 动画来试试水了。


喜欢的同学可以小礼物走一走,并关注我的个人技术博客(segmentfault:吃饼干的怪兽)。

 

记录一下探索经过

灵感来临:清明节假期前一天夜里刷网页,看到国外大神写的博客《Exploring Animation And Interaction Techniques With WebGL 》。大概意思就是这位大神闲的无聊写了个基于webgl(主要使用 three.js 和 GreenSock 库)的游戏,还附上了代码,一时间激动的无法言语,虽然大神都喜欢装逼,但是附上了源码大神才是真正的大神。


认识自己:清明节假期第一天夜里,下载源码,打开看了一会我决定不写3D游戏了,简单的实现一下里面某一环节的动效吧。


WebGL 3D动画与交互初探

并不是实现黑狗追兔子还有深林哈,只有前面蹦跶的小兔子(嘿嘿)。

 

基础知识: 虽然工作的时候写过动效还有图表,会一点可视化和基础算法,但是远远不够,一天不学习的我会觉得浑身痒痒,毅然付了巨额学费,还买了新装备,开始学习WebGl(清明节一个星期前开始的哦)

 

学习感受:em.......,东西太多了,不只是要学习一个js库那么简单,而是无数个库,而基础也是十分重要的:计算机图形学(线性代数,平面几何,解析几何,3D建模……)。

 

开始吧

首先,下载最新版本的 three.js,然后在 html 头部中导入这个库:

WebGL 3D动画与交互初探


引入three.js控制插件库:

WebGL 3D动画与交互初探


同时,添加一个容器,存放整个场景:

WebGL 3D动画与交互初探


通过添加 CSS 样式来让这个容器覆盖整个屏幕:

WebGL 3D动画与交互初探


创建环境光和方向光:

WebGL 3D动画与交互初探


给小兔子创建材质:MeshPhongMaterial:这种材质对光照也有反应,用于创建金属类明亮的物体。

WebGL 3D动画与交互初探


创建小兔子:

WebGL 3D动画与交互初探


创建小兔子的躯干,就是个简单的立方体,刚刚创建的材质就用上了哦。

WebGL 3D动画与交互初探


创建小兔子的内裤,也是个简单的立方体

WebGL 3D动画与交互初探


其实这个兔子全身都是立方体,哈哈,我们就叫它像素兔吧,其余部位就不列出来了

 

小兔子跑起来了:

把兔子的不同部位的运动拆开看就是简单的圆周运动哦,很简单吧。

WebGL 3D动画与交互初探


接下来看看效果:



感觉还不错,起码像是活的。

点击“阅读原文”查看源码,做一个既可以装逼又道德的大神预备员。

 

喜欢的同学可以小礼物走一走,并关注我的个人技术博客(segmentfault:吃饼干的怪兽)。

以上是关于WebGL 3D动画与交互初探的主要内容,如果未能解决你的问题,请参考以下文章

第1236期探索基于 WebGL 的动画与交互

新书推荐 |《Three.js开发指南:基于WebGL和HTML5在网页上渲染3D图形和动画(原书第3版)》

webgl之3d动画

前端3D动画相关开源JS

透过WebGL 3D看动画Easing函数本质

使用WebGL + Three.js制作动画场景