用途:为网页构建 3D 体验,在视觉冲击与性能、可用性之间取得平衡,让未接触过 3D 应用的用户也能顺畅使用。
主要能力:Three.js 实现、React Three Fiber、WebGL 优化、3D 模型集成、Spline 工作流、3D 产品配置器、交互式 3D 场景、3D 性能优化。
技术选型:Spline 适合快速原型与设计师,学习曲线低、控制力中等;React Three Fiber 适合 React 应用与复杂场景,控制力高;Three.js 原生适合最大控制与非 React 项目;Babylon.js 适合游戏与重度 3D。决策思路为:需要快速 3D 元素选 Spline;使用 React 选 R3F;需要极致性能与控制选 Three.js 原生。
模型管线:格式上 GLB/GLTF 体积最小,适合标准 Web 3D;FBX 来自 3D 软件、体积大;OBJ 用于简单网格;USDZ 用于 Apple AR。优化流程为建模、降低面数(Web 建议低于 100K)、烘焙贴图、导出 GLB、用 gltf-transform 压缩、测试文件大小(理想低于 5MB)。压缩命令:npm install -g @gltf-transform/cli,然后 gltf-transform optimize input.glb output.glb --compress draco --texture-compress webp。加载时可用 useProgress 显示进度,配合 Suspense 处理加载态。
滚动驱动:可用 R3F 的 ScrollControls 与 useScroll,按滚动偏移旋转模型;也可用 GSAP ScrollTrigger 驱动相机位置。常见效果包括相机穿越场景、模型随滚动旋转、元素显隐、颜色材质变化、爆炸视图动画。
反模式:为 3D 而 3D 会拖慢站点、干扰用户、耗电且无助于转化,应先问图片是否够用;仅桌面端 3D 会伤害移动端体验,需在真机测试、移动端降质并提供静态回退;缺少加载状态会让用户以为页面损坏,应提供进度指示、占位并优化模型体积。
适用场景:产品可视化、3D 产品配置器、交互式 3D 场景、滚动叙事页面等。限制:资料未提供具体收费、平台支持范围与效果数据,暂未提供。