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