沉浸式 WebGL Banner 生成
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_ac920636/chenjin-banner。
技能介绍
要解决什么问题
首页 Hero、活动页或产品展示里,静态大图往往缺少纵深与动效,滚动时也没有「镜头在场景里移动」的感觉。若自己搭 WebGL 管线、深度图与粒子,通常要拆多文件、引库,还要处理加载与参数调试。这个技能的目标是:产出单文件 index.html,内联 CSS/JS,零外部依赖,在浏览器里直接预览带深度位移的 Banner。
技能如何工作
流程分四段:先确认图片来源(路径/URL/内置 demo)、用途、标题与色调、输出路径和特效开关;再构建场景。
核心特效在 fragment shader 与 Canvas 2D 上实现:
- Depth Map Displacement:灰度深度图控制像素位移,参数
displacement约 0–80(默认 30) - Parallax Scrolling:滚动由
scrollY驱动微量偏移,parallaxStrength0–50(默认 20) - Focus Pull Animation:加载约 2.5s,前景模糊过渡到主体清晰
- Floating Particles:Canvas 粒子布朗运动,
particleCount≤ 200
未提供深度图时,会从原图做亮度提取、box blur、中心近/边缘远偏移并归一化——这是近似深度;UI 含标题动画、右上角实时参数面板、拖拽/选文件/内置夜景 demo 三种加载方式。用户明确要求时才加音频响应、陀螺仪、多图切换等增强项。
适用边界
- 约束为 WebGL 1.0、
requestAnimationFrame,粒子数建议 ≤ 200 - 图片经
FileReader转 dataURL,支持 jpg/png/webp - 深度语义:白=近(位移大),黑=远(位移小);追求真实几何深度应自备 MiDaS / Depth Anything 等生成的深度图,而非仅依赖自动生成
使用场景
- 产品首页需要 Hero 大图,希望滚动时有视差且加载带拉焦,但不想引入 Three.js 或多文件构建
- 活动落地页只有一张 KV 图,要在浏览器里快速做出可拖拽换图、面板调 `displacement` 的展示页
- 向客户交付可双击打开的 Banner 原型,要求零 CDN、零 npm,内网离线也能预览
- 手头有原图但没有深度图,需要先自动生成近似深度做位移效果,再视情况换成 MiDaS 深度图
适合人员
- 负责官网首屏的前端,要在不拆 WebGL 工程的前提下产出可部署的单文件 Hero
- 独立接活动页的设计师兼前端,需要把静态 KV 变成带粒子与参数面板的可演示 HTML
- 向非技术同事交付页面样机的全栈,希望输出路径固定、浏览器一键打开验证效果
- 做视觉实验的创意开发,需要内置夜景 demo 或自定义深度图对比自动生成与真实深度