
alloxy.me
就是你正在看的这个网站:一间搭在浏览器里的暗房,照片由代码字符颗粒组成,在红光里浮现,再显影成彩色。
A是什么
这是我的个人网站,也是一次实验:照片不直接显示,而是由大约十万个代码字符组成的颗粒“显影”出来。
B怎么做的
Next.js 静态导出,WebGL 部分用 three.js。颗粒在着色器里取色、显影;鼠标划过时,一个用波动方程模拟的液面让颗粒折射;页面之间用电影遮幅式的转场。中英双语,部署在 Cloudflare Workers 上。
C为了快
图片全部转成 WebP;中文字体只保留网站用到的八百多个字;three.js 在页面可以交互之后才异步加载。首页首次打开的下载量从 9.4 MB 降到了 0.9 MB。

D核心的几行
// shadows develop first, as on paperfloat dev = clamp((uDevelop * 1.7 - luma * 0.5 - aRand * 0.35) / 0.85, 0.0, 1.0);float shape = mix(glyph, disc, dev);gl_FragColor = vec4(mix(latent, vColor, dev), shape * vAlpha);