# 粒子系统插件 一个功能完整的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引擎许可证协议。