EG/plugins/user/particle_system
2025-12-12 16:16:15 +08:00
..
core 编译修复 2025-12-12 16:16:15 +08:00
editor 编译修复 2025-12-12 16:16:15 +08:00
effects 编译修复 2025-12-12 16:16:15 +08:00
tools 编译修复 2025-12-12 16:16:15 +08:00
__init__.py 编译修复 2025-12-12 16:16:15 +08:00
plugin.py 编译修复 2025-12-12 16:16:15 +08:00
README.md 编译修复 2025-12-12 16:16:15 +08:00

粒子系统插件

一个功能完整的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("经典火焰")            # 加载预设

性能优化

对象池技术

使用对象池管理粒子对象,避免频繁创建和销毁对象的开销。

批量渲染

支持批量渲染大量粒子,减少绘制调用次数。

自适应更新

根据粒子数量和复杂度动态调整更新频率。

预设效果

内置预设

  • 经典火焰: 典型的上升火焰效果
  • 浓密烟雾: 缓慢上升的烟雾效果
  • 强力爆炸: 瞬间爆发的爆炸效果
  • 清澈水花: 下落并反弹的水花效果
  • 魔法光球: 悬浮旋转的魔法粒子效果
  • 飘落雪花: 从上至下飘落的雪花效果

自定义预设

支持创建、保存和加载自定义预设,满足特定项目需求。

扩展开发

添加新的粒子效果类型

  1. particle_manager.py中添加新的创建方法
  2. particle_emitter.py中支持新的参数配置
  3. particle_renderer.py中添加渲染支持
  4. 在编辑器中添加对应的界面元素

添加新的物理效果

  1. particle_physics.py中实现新的物理计算
  2. 在粒子属性中添加对应的参数
  3. 在编辑器中添加参数调节控件

性能监控

插件内置性能监控功能,可以实时显示:

  • FPS和平均FPS
  • 当前粒子数量和活跃发射器数量
  • 渲染时间和物理计算时间
  • 内存使用情况
  • 绘制调用次数和顶点数量

通过性能监控可以及时发现和解决性能瓶颈问题。

故障排除

粒子效果不显示

  1. 检查插件是否已正确启用
  2. 确认粒子数量限制设置
  3. 检查摄像机位置和粒子发射位置

性能问题

  1. 使用性能监控器查看瓶颈所在
  2. 降低粒子数量或简化粒子效果
  3. 调整渲染设置(如使用点精灵代替广告牌)

编辑器无法使用

  1. 确认GUI系统是否正常工作
  2. 检查快捷键是否被其他系统占用
  3. 重新启用插件尝试

版本信息

  • 版本: 1.0.0
  • 作者: EG Team
  • 发布日期: 2024年

许可证

本插件遵循EG引擎许可证协议。