英灵神殿性能优化

英灵神殿性能优化

为Valheim的客户端和服务器版本优化渲染、逻辑和加载时间。

ValheimPerformanceOptimizations [1.0 兼容]

针对 Valheim 客户端和服务端的渲染、逻辑及加载时间优化。

与同类其他模组不同,VPO 完全不会禁用、修改、限制或以其他方式改变原版行为。虽然它应同时适用于客户端和服务端,但请注意,除基本错误检查外,我尚未在服务器上测试过此模组。

以下是原版与 VPO 在 BlueHills 世界(12 万+ 实例)中,以极限模拟距离(544 米)直视上方时的性能对比

性能对比

在此报告所有问题

vvvvvvvvvvvvvvvvvvvvvvvvvvvv

git: github.com/ontrigger/ValheimPerformanceOptimizations

thunderstore 页面: valheim.thunderstore.io/package/ontrigger/ValheimPerformanceOptimizations/

安装

将压缩包中的 Bepinex 和 valheim_Data 拖放到游戏根目录

1.2.2 中的改动

  • 针对反射探针闪烁的推测性修复

1.2.1 中的改动

  • 添加 Linux 支持

1.2.0 中的改动

  • 改进 GetZoneLocation 性能;在 Blue Hills 上减少 10 毫秒

1.1.0 中的改动

  • 添加对 Deep North 更新的支持

1.0.0 中的改动

针对当前 Valheim 的重大重写:

  • 重写 ZNetScene 对象流式加载——在不需要时创建/销毁世界对象不会产生每帧开销
  • Burst 加速的水波任务——为漂浮物、鱼类和水面查询提供更廉价的水波数学计算
  • Burst 地形顶点颜色生成,减少 Color[] 分配
  • 现代化线程化地形碰撞烘焙——探索时减少卡顿
  • 针对超出可听范围仍在播放的音频源进行 ZSFX 优化
  • 灯光闪烁剔除——跳过相机外点光源的昂贵闪烁更新
  • WearNTear 支撑缓存——在大型基地中略微降低结构完整性的 CPU 开销
  • 时间切片反射渲染器——跨多帧渲染立方体贴图面
  • 预制体/粒子清理——火焰粒子不再在视图视锥外渲染
  • 更快的服务端 ZDO 所有权释放扫描
  • VisEquipment ZDO 整数缓存及 BinarySearchDictionary 分配修复

0.7.6 中的改动

  • 修复与 SharedMap 的冲突
  • 修复可采集物体有时在视觉上不显示为已重新生长
  • 修复营地内敌人从不重生

0.7.5 中的改动

  • 不再需要使用 Jotunn 来使用此模组
  • 修复更多 EffectArea 错误

0.7.4 中的改动

  • 修复疯狂的生成率
  • 修复无法繁殖动物
  • ValheimRaft 兼容性(以性能为代价)
  • 修复注销/退出后的错误

0.7.3 中的改动

  • 再次尝试修复屋顶检查

0.7.2 中的改动

  • 修复“集合已被修改”错误
  • 修复屋顶漏雨的潜在修复

0.7.1 中的改动

  • 修复暴风雪粒子出现在建筑物内部
  • 修复无法睡觉
  • 修复其他相关 AOE 效果不工作

0.7.0 中的新内容

  • 结构完整性优化
  • 新的建筑部件对象池系统——进入基地时减少卡顿
  • 新的烟雾渲染方案——渲染烟团时减少卡顿
  • 暴风雪不再拖垮帧率
  • 修复主菜单中不显示草
  • 修复物体在 0 0 处生成

其余改动可在 CHANGELOG.md 中找到

功能

  • 新的建筑部件对象池系统——进入基地时减少卡顿
  • 新的烟雾渲染方案——渲染烟团时减少卡顿
  • 暴风雪不再拖垮帧率
  • 针对 GPU 渲染的各种优化
  • 多线程地形加载
  • 大幅加快加载时间
  • 针对 AI 的各种改进
  • 结构完整性优化

数据

  • 基地中 GPU 渲染时间加快 5-12 毫秒(无模组时 3 fps -> 有模组时 17 fps)
  • 整体游戏稳定性改进——基地中卡顿更少
  • 世界加载时间加快 20+ 秒,尤其是大型世界(不包括首次启动)
  • 加载新地形时卡顿更少
  • 整体游戏逻辑性能改进(无具体帧率数据)

配置

模组配置存储在 dev.ontrigger.vpo.cfg 文件中。

模组所做的大多数优化不会以任何方式影响游戏玩法,但其中一些优化可能会导致与其他模组的兼容性问题。

  • 线程化地形碰撞烘焙

    如果启用,地形将并行生成,这减少了在世界中移动时的卡顿峰值。如果你看到地形消失,请在 github 上报告,禁用此选项可能会修复该问题。

  • 对象池

    如果启用,植被对象将从池中获取,而不是每次创建和销毁它们。这在生成新地形时大大提高了性能。如果你注意到某些对象变得不可见,请在 github 上报告,禁用此选项可能会修复该问题。

手动编译模组

要手动编译模组的源代码,请在项目根目录中创建一个名为 Environment.props 的文件,并将 Valheim 安装路径更改为你的位置。

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
<!-- 需要是你 Valheim 基础文件夹的路径 -->
<VALHEIM_INSTALL>E:\Steam\steamapps\common\Valheim</VALHEIM_INSTALL>
  </PropertyGroup>
</Project>

贡献者

  • ontrigger
  • MSchmoecker