# mlp_gi_audio_compress **Repository Path**: alienity/mlp_gi_audio_compress ## Basic Information - **Project Name**: mlp_gi_audio_compress - **Description**: GI 神经压缩 (Global Illumination) 空间音频神经网络压缩 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-07 - **Last Updated**: 2026-03-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MLP Global Illumination & Spatial Audio Demo 基于 WebGPU 的实时全局光照和空间音频演示项目。 ## 核心亮点 ### 🌟 GI 神经压缩 (Global Illumination) **问题**:传统 GI 探针存储需要大量内存(960 探针 × 12 系数 × 4 字节 = 46KB) **解决方案**:用小型 MLP 神经网络拟合"位置 → SH 系数"映射 | 模型 | 输入 | 输出 | 网络结构 | 参数量 | 压缩比 | |------|------|------|----------|--------|--------| | 静态 SH | 3D 位置 | 12 系数 SH | PE(11D) → 64×2 ReLU → 12 | ~6K | **1.9×** | | 24h 动态 | 4D 时空 | 6 通道 SH | PE(40D) → 64×5 SIREN → 6 | ~17.5K | **11.15×** | **24 小时动态光照实测数据**(Sponza 场景 12×8×10 网格): - 原始烘焙数据:2,555 KB(17 个时刻快照) - MLP 压缩后:374 KB - **二进制压缩比:765 KB → 68.6 KB = 11.15×** **关键优势**: - 探针数量越多,压缩率越高 - 连续隐式表示,插值自然 - 运行时仅需位置输入,GPU 实时推理 参考:GDC 2025 "Decoding Light: Neural Compression of Global Illumination" --- ### 🎧 空间音频引擎 (Spatial Audio) 受 Steam Audio 4.8.1 架构启发的完整空间音频解决方案。 **核心模块**: ``` SpatialAudioEngine ├── 直接声路径 │ └── 距离衰减 + 空气吸收 + 指向性 + 遮挡/透射 │ ├── 反射路径 │ └── FDTD 波动方程模拟 → 能量场 → 重建 IR │ ├── 路径传播 │ └── 绕射模拟 (UTD) + 能量衰减 │ └── 渲染后端 ├── HRTF 双耳渲染 (MIT KEMAR, 三线性插值) ├── Ambisonics (SH 编码/旋转/解码) └── 混响 (参数化 FDN / 卷积 IR / 混合) ``` **声学模拟流程**: 1. **体素化**:场景 → 反射率网格(25cm~50cm 分辨率) 2. **FDTD 模拟**:波动方程求解 → 能量衰减曲线(CPU/GPU 双后端) 3. **参数提取**:RT60 混响时间、频率响应 4. **互易性烘焙**:探针间脉冲响应预计算 5. **神经压缩**:AcousticSIREN 压缩 IR 数据 **音频效果链**(每源): ``` DirectSound → 3-Band EQ → Binaural(HRTF) → Gain → Master ↓ PathEffect (Ambisonics 旋转 → Binaural) ↓ Reverb Send → HybridReverb (卷积早期 + FDN 晚期) ``` --- ## 其他渲染特性 - **WebGPU PBR 渲染管线** - Cook-Torrance BRDF,HDR 离屏渲染,色调映射 - **大气散射** - Bruneton 预计算 LUT 方案,支持 Rayleigh/Mie 散射和多次散射 - **体积云** - 实时 Ray-march 或 Tetra 缓存查找,FBM+Worley 噪声 - **后处理效果** - Bloom、FXAA、色调映射(ACES Filmic)、色彩分级 --- ## 快速开始 ```bash # 安装依赖 npm install # 启动开发服务器 (http://localhost:3080) npm run dev # 生产构建 npm run build # 预览生产构建 npm run preview ``` ### Linux/Mac 启动 ```bash chmod +x start.sh ./start.sh ``` ### Windows 启动 ```cmd start.bat ``` --- ## 技术栈 - **框架**: React 18 - **构建工具**: Vite 5 - **渲染**: WebGPU (WGSL) - **机器学习**: TensorFlow.js / 原生 WebGPU - **音频**: Web Audio API --- ## 项目结构 ``` ├── src/ │ ├── engine/ # 渲染与模拟引擎 │ │ ├── renderer.js # WebGPU 渲染器 │ │ ├── MLPGIEngine.js # 主引擎类 │ │ ├── shBaker.js # SH 探针烘焙 │ │ ├── shMLP*.js # MLP 压缩器(静态/动态/GPU/TF) │ │ ├── atmosphere*.js # 大气散射 │ │ ├── volumetricCloud* # 体积云 │ │ ├── voxelizer.js # 体素化 │ │ └── fdtdSolver*.js # FDTD 声学模拟 │ │ │ ├── spatial-audio/ # 空间音频库 (Steam Audio 架构) │ │ ├── engine/ # SpatialAudioEngine, SpatialSource │ │ ├── hrtf/ # HRTFDatabase, BinauralEffect │ │ ├── effects/ # DirectSound, EQ, Reverb, PathEffect │ │ ├── simulation/ # FDTD, EnergyField, Reconstructor │ │ └── compression/ # AcousticSIREN, BakedIRField │ │ │ └── App.jsx # React 主组件 │ ├── public/assets/ # 资源文件 (GLB, JSON 数据) ├── docs/ # 技术文档 └── CLAUDE.md # AI 辅助开发指南 ``` --- ## 详细文档 ### GI 压缩 - [MLP GI 压缩技术](docs/mlp-gi-compression.md) - 完整架构、训练策略、多后端实现 ### 渲染 - [渲染管线](docs/rendering-pipeline.md) - HDR 离屏 → Bloom → Composite → FXAA - [大气散射](docs/atmospheric-scattering.md) - Bruneton 预计算 LUT 详解 ### 音频 - [空间音频实现](docs/spatial-audio-implementation.md) - 模块架构、效果链、模拟流程 - [体素化与 FDTD](docs/voxelization.md) - 声学体素化、波动方程求解 --- ## 浏览器要求 - **WebGPU 支持**: Chrome 113+ 或 Edge 113+ - 需要启用 WebGPU 标志(如未默认启用) --- ## License MIT