跳到正文

AsyncParticles

作者:Harvey_Husky

异步粒子更新,GPU 加速粒子渲染。

收藏

介绍

介绍由机器翻译自 Modrinth 原页面,仅供参考。

AsyncParticles

  • 未来将继续保持 Beta 阶段,以提醒用户注意潜在的模组冲突问题。
  • 现已兼容 Particle Core(v20.1+)。
  • 现已兼容 Valkyrien Skies v2.4。

核心功能

GPU 加速

  • 将粒子顶点变换转移至 GPU,可以减少每帧向 GPU 上传的数据量,降低 CPU 负载并提高帧率。
  • 这实际上替代了之前的异步粒子顶点提取,同时提升了兼容性(异步粒子提取现在默认禁用)。
  • 放置 1331 个营火(超过 16,000 个粒子,你可以通过配置界面更改上限):

测试配置:Ultra5 225H + RTX 5060 Laptop,1080p。
放置 1331 个营火(超过 16,000 个粒子)时的帧率。

Create 集成

  • Create 的机械结构现在可以阻挡原版天气。(v20.1.0a+)
  • 等我有空时,会将此功能移至新的模组中。
  • 粒子现在可以与机械结构发生碰撞。

阻挡原版天气的 Create 机械结构。

其他功能

  • 灵活的 Mixin 选项。
  • Minecraft
  • 粒子剔除。
  • 异步粒子 Tick。
  • 异步粒子光照缓存。
  • 将纹理 Tick 延迟一帧,以缩短客户端 Tick 时长。

配置

可以通过 ModList/ModMenu 访问设置。

故障排除

  • 我们加入了 Diagnostics。通常,即使不应用推荐设置也不会导致崩溃,你会在聊天栏中看到提示,要求你进行更改。

与 Bosses Rise 一起使用

  • 启用 GPU Only Async Particle Tick。

与 BadOptimizations 一起使用

  • 在 badoptimizations.txt 中设置 enable_particle_manager_optimization: false
  • 已在 20.1.1.0/21.1.1.0 中修复。

与 C2ME 一起使用时崩溃

  • 在 c2me.toml 中设置 enforceSafeWorldRandomAccess = "false"
  • 仅在你遇到崩溃时进行此设置。

与 LodestoneLib 一起使用时崩溃

  • 在 lodestone-client.toml 中设置 buffer_particles = false。

与 ClassInstanceMultiMap 或 Level.getEntities(...) 相关的崩溃

  • 请在 GitHub issue 中分享日志或崩溃报告。
  • 临时解决方案:启用选项:Mixin → Make 'ClassInstanceMultiMap' Thread-Safe

与 Level.getBlockEntity(...) 相关的崩溃

  • 请在 GitHub issue 中分享日志或崩溃报告。
  • 临时解决方案:启用选项:Mixin → Make 'LevelChunk#blockEntities' Thread-Safe

ConcurrentModificationException

最常见的原因

此异常通常发生在粒子渲染和 Tick 同时访问同一个线程不安全的容器时。

解决方法

  • 将完整限定名的粒子类名称添加到模组 Mixin 设置中的 particle$lockProvider 和 particle$lockRequired 中。详情请参阅配置指南

注意:这会为特定粒子类型启用细粒度锁,从而允许 tick() 和 render() 方法之间安全地异步执行。

其他潜在原因

从 vX.4.0 开始,默认的粒子渲染模式已更改为 SYNCHRONOUSLY,以防止在与某些模组一起使用时出现罕见的 ConcurrentModificationExceptions。这些模组会在粒子渲染期间访问外部的非线程安全容器(例如全局映射或列表)。

  • 如果你使用的是旧版本(≤ vX.3.0),建议在配置界面中手动将模式设置为 SYNCHRONOUSLY,以提升稳定性。
  • 对于整合包作者:如果你想测试 FASTEST 在你的整合包中是否能带来明显的 FPS 提升,可以在配置界面中切换到该模式——但请谨慎使用,因为它可能会与不兼容的模组一起导致崩溃。

需要帮助?

如果你不确定如何定位或修复问题,请提交一个 GitHub Issue,或发起一个 Discussion。

推荐模组

  • ModernFix
  • Sodium/Embeddium
  • Flerovium
  • Startlight/ScalableLux

模组兼容性

✅ 兼容(主动适配)

  • Sodium/Embeddium
  • Flerovium
  • Iris/Oculus
  • 机械动力
  • Create: Aeronautics
  • Valkyrien Skies
  • Particle Rain
  • Particle Core
  • …

❌ 不兼容

  • OptiFine
  • MadParticle

鸣谢

评论

登录后评论和评分