NEXT TO 2037
技术栈介绍
- 网站框架:next-react
- 动画元素:lottie
- dom动画:gsap
- 背景:threejs
3D物体旋转背景
使用threejs创建的场景,
用到的是 官网案例
用滤镜处理多个几何体旋转的场景画面:
- scene、camera、renderer基配
- 场景加上fog更有空间景深感
- 加上环境光和直射光
1 | scene = new THREE.Scene() |
- 材质开启 flatShading 逐片元渲染,增强多边体硬朗的印象
- 创建物体,并进行随机映射:
- 将物体坐标映射到[-1,1]之间的随机位置
- 将物体坐标缩放到[0, 400]之间随机的大小
- 将物体随机缩放[1,50]之间的大小
- 将物体沿x、y、z轴进行随机旋转
1 | const geometry = new THREE.SphereGeometry(1,4,4) |
添加2层滤镜:
- DotScreenShader 点化滤镜
- RGBShiftShader rgp分离滤镜
1 | composer = new EffectComposer(renderer) |
lottie动画
lottie-react
为了在react中更方便的使用Lottie,
可以直接安装lottie-react库:
1 | npm i lottie-react |
lottie组件展示动画需要用到的json动画文件,
可以在 LottieFiles 中获取,
网站中有很多艺术家分享的开源动画。
将动画json文件直接引入,注入Lottie组件的animationData属性中,就能实现lottie动画:
1 | import AppleAnimation from './Apple_Animation.json' |
GSAP动画效果
安装gsap库
1 | npm i @gsap/react, gsap |
注册gsap插件:
1 | import {gsap} from "gsap"; |