近些年,我们经常会在一些网站上看到些炫酷的图片特效,这些效果大部分都是用WEBGL技术实现的, 借助shader我们可以实现css无法做到的炫酷视觉效果 。随着这门技术的兼容性越来越好,普及率越来越高,掌握它必将为你工作中的加分项。还在等什么?一起来学习下吧。
这次我们用three.js来实现一个图像波动特效,剖析其实现原理,最终可以举一反三,变成自己的东西,先来看效果。
实现图片全屏显示
首先我们要将图片等比例撑满窗口,并可以适应浏览器动态缩放。要实现这个效果,我们可以通过在resize事件中动态改变透视相机的视野fov来实现。
我们将图片的高度设置为浏览器窗口的高度,根据三角函数可以很容易计算出需要的视野角度值。
const dis