Interactive / 试玩

撕开
海面

一条触手正从水下顶上来。向下滚动,它会把海面撕开一个洞;把鼠标移到它附近,它会绕开你;按住不放,它发力。

向下滚动
01 / 海面

不是一张海的照片

整片海由噪声高度场实时算出来:透视把它压向地平线,法线决定月光落在哪里,菲涅尔让远处的水更亮、更薄。

0张图片素材
5层噪声叠加
1个着色器
透视越远采样越密,所以远处的浪看起来更细、更碎。
月光高光是算出来的,不是贴图。鼠标一动,光带跟着偏。
02 / 触手

一根曲线,要有重量

触手是 18 个脊柱点连成的曲线,越靠尖端越细。它每帧朝鼠标的反方向偏一点,所以看起来像在躲,而不是被粘在屏幕上。

牵引鼠标进入 380 像素范围,中段被推开,幅度随距离衰减。
摆动两个不同频率的正弦叠成八字段,避免机械来回。
发力按住鼠标:脊柱拉直再弹回,同时溅起水花。
03 / 撕口

撕多宽,你说了算

洞口大小直接绑在滚动进度上:从一条缝,到能看见下面的深水。洞口边缘会起白沫,因为撕裂处的水被顶起来,光在那里散射。

滚动位置洞口触手
0 — 10%一条细缝尖端刚顶破水面
10% — 55%向两侧撕开抬出水面,开始摆动
55% — 100%露出深水与光柱整条竖起,随鼠标躲闪
04 / 结论
背景不该只是背景。
让它回应你,页面才开始有分量。
—— 屿 · 技术展示
05 / 落地

这套东西能搬到官网

单个 HTML 文件,不依赖第三方引擎,不加载外部素材。手机上自动降分辨率、减噪声层数;帧率低于 40 时关掉水花,保住手感。

← 回到作品墙
00
滚轮 / 拖动页面:撕开 · 移动鼠标:拨开触手 · 按住:发力