# 🔮 Liquid Glass Studio ![frontPhoto](./.github/assets/title.png) [English](README.md) | [简体中文](README-zh.md) Apple Liquid Glass UI 在 Web 平台上的高保真还原,基于 WebGL2 & WebGPU 实现。力求涵盖尽可能多的 Liquid Glass 特性,并提供细致的参数控制。 ## 在线演示 https://liquid-glass-studio.vercel.app/ 中国大陆用户请访问: https://liquid-glass.iyinchao.cn/ ## 截图预览
## 功能特性 **✨ 完整复现 Apple Liquid Glass 效果,包括**: - 折射 - 色散 - 菲涅尔反射 - 超椭圆形状(SuperEllipse) - Blob 效果(形状融合) - 高光眩光 - 高斯模糊遮罩 - 阴影 - 抗锯齿处理 **⚙️ 交互控制面板**: - 通过直观 UI 实时调整参数 **🖼 背景选项**: - 支持多种背景类型,包括图片和视频 **🎞 动画**: - 基于 Spring 动画机制,可配置参数 ## 技术 - 基于 WebGL2 / WebGPU 双后端的高性能图形渲染 - 使用多 Pass 渲染,实现高质量高性能的高斯模糊 - 使用 SDF 定义的形状和平滑合并函数 - 自定义 Shader 实现真实玻璃质感 - 使用自定义 Leva UI 控件,实现参数可视化控制 ## 快速开始 ### 环境要求 - Node.js(建议使用最新 LTS 版本) - pnpm 包管理器 ### 安装与运行 ```bash # 安装依赖 pnpm install # 启动开发服务器 pnpm dev # 构建生产版本 pnpm build ``` ## TODO - [x] 更丰富的高光控制选项(硬度 / 颜色 / 大小等) - [x] 支持自定义背景 - [x] 使用 WebGPU 渲染 - [ ] 编辑器模式 - [ ] 玻璃文字渲染 - [ ] 玻璃效果预设 - [ ] 自发光效果实现 - [ ] HDR 发光 - [x] 控制参数的导入 / 导出功能 - [x] 渲染步骤查看(展示中间处理结果) - [ ] 在玻璃形状中嵌入 UI 内容 ## 感谢 感谢以下资源和灵感来源: - [SDF 函数](https://iquilezles.org/articles/distfunctions2d/) 和 [平滑合并函数](https://iquilezles.org/articles/smin/) 来自 [Inigo Quilez](https://iquilezles.org/) - 样例图片(Buildings)由 Adrian Newell 在 [Unsplash](https://unsplash.com/photos/a-row-of-multicolored-houses-on-a-street-UtfxJZ-uy5Q) 上提供 - 样例视频(Fish / Traffic)由 Tom Fisk 在 [Pexels](https://www.pexels.com/video/light-city-road-traffic-4062991/) 上提供 - 样例视频(Flower)由 Pixabay 在 [Pexels](https://www.pexels.com/video/orange-flowers-856383/) 上提供 - 样例图片由 Apple 和 Tim Cook 提供 ## 开源协议 [MIT License](LICENSE)