分析 webpack 打包文件
核心库文件只保留 Three.js 和 gsap.js(动画用),Three.js 升级到 v0.162.0,GSAP 升级到 v3.12.5。
提取时间线代码
三维时间线交互逻辑由5个类组成:Gesture(手势鼠标)、LoadAssets(资源加载,包括 loading 动效)、Builder(时间线串联节点,包括起始和结束)、CGroup(时间线作品节点)、Timeline(时间线)。
调整代码
- Camera.matrixWorldInverse 已无 getInverse 方法,改用.copy(xx).invert()。
- Renderer 已无 setTexture2D 方法,移除。
- Frustum 已无 setFromMatrix 方法,移除。
- GLSL 中 texture 已变保留字,改成 uTexture。
简化代码
去除业务性 HTML 和 CSS,以及相关连的 JS 代码。移除一些过低兼容性代码:-ms、-webpack、passive 兼容、class 兼容、this 引用。字体只保留 Schnyder L Bold 和 Schnyder Edit Outline Bold。
优化代码
提取作品内容和配置,作品内容 works、worksInfo,配置 CONFIG。增加视频作品声音交互。
运行三维时间线(全屏)
文章参考