This commit is contained in:
Daniel
2026-04-01 20:06:17 +08:00
parent ae3e6f717b
commit afbcd99224
596 changed files with 62930 additions and 13 deletions

View File

@@ -1,21 +1,33 @@
# VFXdemo
一个用于快速复刻 ShaderToy 效果的本地工具页WebGL2 多预览面板)。
一个用于快速复刻 ShaderToy 效果的本地工具页WebGL2 多预览面板 + 后端内容管理)。
## 启动
```bash
python3 -m http.server 5173
npm install
npm run dev
```
打开 `http://localhost:5173`
打开 `http://localhost:5180`
## Docker 一键启动(国内镜像)
```bash
./start-docker-cn.sh
```
说明:
- Node 基础镜像走 `docker.m.daocloud.io`
- npm 安装源走 `https://registry.npmmirror.com`
- 服务地址:`http://localhost:5180`
## 页面能力
- 左侧工具区:粘贴 ShaderToy GLSL包含 `mainImage`)并新增预览卡片
- 右侧面板:多个 VFX 同屏实时渲染,适合“散布式特效预览”
- 内置多个默认特效卡片,可直接当样例改造
- 全局暂停/继续、全局重置时间
- 预览墙:多个 VFX 同屏实时渲染,支持点进详情
- 每个小窗独立播放/暂停
- 后端管理:点击“管理内容”,可直接粘贴 GLSL 并保存到后端
- 保存后实时刷新前端展示,支持删除
## 兼容的 uniform
@@ -25,8 +37,10 @@ python3 -m http.server 5173
- `iFrame`
- `iMouse`
## 复刻工作流建议
## 后端接口
1. 在 ShaderToy 复制完整 GLSL至少包含 `mainImage`
2. 粘贴到左侧输入框并点击“新增预览”
3. 对比目标效果后持续微调参数
- `GET /api/shaders` 获取列表
- `POST /api/shaders` 新增 shader`name`, `author`, `code`
- `DELETE /api/shaders/:id` 删除 shader
数据默认持久化在 `data/shaders.json`