EG/plugins/user/particle_system/README.md
2025-10-30 11:46:41 +08:00

159 lines
5.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 粒子系统插件
一个功能完整的3D粒子系统插件为EG引擎提供高性能的粒子特效功能。
## 功能特性
### 核心功能
- **多种粒子效果**: 支持火焰、烟雾、爆炸、水花、魔法、雪花等多种预设效果
- **实时物理模拟**: 重力、风力、碰撞检测、力场等物理效果
- **高性能渲染**: 支持广告牌和点精灵渲染模式,优化的批量渲染
- **可视化编辑**: 直观的参数调节界面,实时预览效果
- **性能监控**: 实时监控FPS、粒子数量、渲染时间等性能指标
- **预设管理**: 内置预设和自定义预设的保存、加载功能
### 粒子属性控制
- 生命周期和颜色渐变
- 尺寸变化和旋转效果
- 速度和发射形状控制
- 重力、空气阻力和反弹系数
- 多种发射器形状(点、圆形、球形、盒形)
### 物理系统
- 重力和风力模拟
- 地面和边界碰撞检测
- 自定义力场(引力、斥力、涡流等)
- 与Bullet物理引擎集成
### 编辑功能
- 实时参数调节
- 效果类型切换
- 预设保存和加载
- 可视化性能监控
## 使用方法
### 快捷键操作
- **F5**: 切换粒子编辑器显示
- **F6**: 切换性能监控器显示
- **F7**: 创建测试粒子效果
- **F8**: 清除所有粒子
- **F9**: 创建火焰效果
- **F10**: 创建烟雾效果
- **F11**: 创建爆炸效果
- **F12**: 创建水花效果
### GUI界面操作
插件会在屏幕左上角创建控制面板,可以通过按钮直接创建各种粒子效果。
### 编程接口
```python
# 获取插件实例
particle_plugin = world.plugin_manager.get_plugin("particle_system")
# 创建预设效果
particle_plugin.create_fire_effect() # 火焰效果
particle_plugin.create_smoke_effect() # 烟雾效果
particle_plugin.create_explosion_effect() # 爆炸效果
particle_plugin.create_water_effect() # 水花效果
particle_plugin.create_magic_effect() # 魔法效果
particle_plugin.create_snow_effect() # 雪花效果
# 创建自定义效果
config = {
'emission_rate': 100,
'particle_lifetime': 3.0,
'start_color': Vec3(1.0, 0.5, 0.0),
'end_color': Vec3(1.0, 0.0, 0.0),
'start_size': 0.3,
'end_size': 0.6,
'velocity': Vec3(0, 0, 2),
'gravity_scale': -0.5
}
particle_plugin.particle_manager.create_emitter("custom", position, config)
# 性能控制
particle_plugin.set_max_particles(5000) # 设置最大粒子数
particle_plugin.set_global_time_scale(0.5) # 设置时间缩放
particle_plugin.set_emit_rate_multiplier(2.0) # 设置发射速率倍增
particle_plugin.set_particle_size_multiplier(1.5) # 设置粒子尺寸倍增
# 预设管理
particle_plugin.list_presets() # 列出所有预设
particle_plugin.load_preset("经典火焰") # 加载预设
```
## 性能优化
### 对象池技术
使用对象池管理粒子对象,避免频繁创建和销毁对象的开销。
### 批量渲染
支持批量渲染大量粒子,减少绘制调用次数。
### 自适应更新
根据粒子数量和复杂度动态调整更新频率。
## 预设效果
### 内置预设
- 经典火焰: 典型的上升火焰效果
- 浓密烟雾: 缓慢上升的烟雾效果
- 强力爆炸: 瞬间爆发的爆炸效果
- 清澈水花: 下落并反弹的水花效果
- 魔法光球: 悬浮旋转的魔法粒子效果
- 飘落雪花: 从上至下飘落的雪花效果
### 自定义预设
支持创建、保存和加载自定义预设,满足特定项目需求。
## 扩展开发
### 添加新的粒子效果类型
1. 在[particle_manager.py](file:///home/hello/EG/plugins/user/particle_system/core/particle_manager.py)中添加新的创建方法
2. 在[particle_emitter.py](file:///home/hello/EG/plugins/user/particle_system/core/particle_emitter.py)中支持新的参数配置
3. 在[particle_renderer.py](file:///home/hello/EG/plugins/user/particle_system/core/particle_renderer.py)中添加渲染支持
4. 在编辑器中添加对应的界面元素
### 添加新的物理效果
1. 在[particle_physics.py](file:///home/hello/EG/plugins/user/particle_system/core/particle_physics.py)中实现新的物理计算
2. 在粒子属性中添加对应的参数
3. 在编辑器中添加参数调节控件
## 性能监控
插件内置性能监控功能,可以实时显示:
- FPS和平均FPS
- 当前粒子数量和活跃发射器数量
- 渲染时间和物理计算时间
- 内存使用情况
- 绘制调用次数和顶点数量
通过性能监控可以及时发现和解决性能瓶颈问题。
## 故障排除
### 粒子效果不显示
1. 检查插件是否已正确启用
2. 确认粒子数量限制设置
3. 检查摄像机位置和粒子发射位置
### 性能问题
1. 使用性能监控器查看瓶颈所在
2. 降低粒子数量或简化粒子效果
3. 调整渲染设置(如使用点精灵代替广告牌)
### 编辑器无法使用
1. 确认GUI系统是否正常工作
2. 检查快捷键是否被其他系统占用
3. 重新启用插件尝试
## 版本信息
- 版本: 1.0.0
- 作者: EG Team
- 发布日期: 2024年
## 许可证
本插件遵循EG引擎许可证协议。