feat:新增文件内容

This commit is contained in:
Daniel
2026-04-01 17:28:39 +08:00
commit 0bf1299908
33 changed files with 1703 additions and 0 deletions

216
readme.md Normal file
View File

@@ -0,0 +1,216 @@
# AI VFX Editor MVP - Coding Agent 执行说明
## 🎯 目标
构建一个最小可用的 AI 特效编辑器Web版支持
1. Three.js 实时渲染 Shader
2. 参数面板控制 Shader uniforms
3. 多个特效模板切换
4. 简单 AI 输入生成初始参数
5. 导出 Shader 和 Three.js Material
---
## 🏗️ 技术栈
* Frontend: React + Vite
* 渲染: Three.js
* Shader: GLSL
* 状态管理: useState无需复杂方案
* AI接口: mock先写死
---
## 📁 项目结构
src/
├── App.tsx
├── components/
│ ├── Preview.tsx // 渲染窗口
│ ├── ControlPanel.tsx // 参数控制
│ ├── ShaderEditor.tsx // shader展示
│ ├── TemplateSelector.tsx // 模板选择
├── engine/
│ ├── useThree.ts // 初始化Three
│ ├── shaderBuilder.ts // shader拼装
│ ├── uniformManager.ts // 参数管理
├── shaders/
│ ├── base.vert
│ ├── modules/
│ │ ├── noise.glsl
│ │ ├── uv_scroll.glsl
│ │ ├── alpha.glsl
│ ├── templates/
│ │ ├── fire.ts
│ │ ├── ripple.ts
│ │ ├── distortion.ts
---
## 🎨 功能拆解
### 1⃣ Preview核心
* 使用 Three.js 创建 full-screen quad
* 使用 ShaderMaterial
* uniforms 包含:
* u_time
* u_speed
* u_scale
* requestAnimationFrame 更新 u_time
---
### 2⃣ ControlPanel
* 使用 slider 控制:
* speed
* scale
* intensity
* 实时更新 uniforms
---
### 3⃣ ShaderBuilder关键模块
实现函数:
buildShader(template, params)
逻辑:
* 根据 template 注入模块:
* noise
* uv scroll
* alpha
* 输出完整 fragment shader
---
### 4⃣ 模板系统
每个模板定义:
{
name: "fire",
modules: ["noise", "uv_scroll", "alpha"],
defaultParams: {
speed: 1.0,
scale: 3.0
}
}
---
### 5⃣ AI模块Mock
实现函数:
generateEffect(prompt)
返回:
{
template: "fire",
params: {
speed: 1.5,
scale: 4.0
}
}
---
### 6⃣ 导出功能(必须实现)
按钮Export
导出内容:
1. fragment.glsl
2. vertex.glsl
3. material.json
---
## 🧪 测试标准
必须满足:
* 参数修改实时生效(<16ms
* 模板切换无报错
* Shader 可复制运行
* 导出文件可复用
---
## 🚀 初始任务顺序
1. 初始化 Vite + React
2. 完成 Three.js 渲染
3. 加入 ShaderMaterial
4. 加入 uniforms 动画
5. 实现 ControlPanel
6. 实现 模板系统
7. 实现 shaderBuilder
8. 实现 Export
---
## ❗ 注意事项
* 不要引入复杂状态管理
* 不要实现粒子系统
* 不要过度抽象
* 优先保证“可运行”
---
## 🎯 最终目标
得到一个:
👉 可运行的 Web 特效编辑器
👉 能导出 Shader
👉 能通过参数控制效果
这是后续商业化 POC 的基础
---
## 🐳 本地 Docker 快速启动(国内镜像)
项目已默认切换到国内镜像源:
* Node 基础镜像:`docker.m.daocloud.io`
* Debian APT`mirrors.aliyun.com`
* NPM`registry.npmmirror.com`
### 1) 启动
```bash
chmod +x scripts/docker-up.sh scripts/docker-down.sh
./scripts/docker-up.sh
```
启动后访问:`http://localhost:5173`
### 2) 停止
```bash
./scripts/docker-down.sh
```
### 3) 查看日志
```bash
docker compose logs -f web
```