
完整细节LOD - 不再有拥挤卡顿
停止在像Denerim Market这样的拥挤区域中突然掉帧的问题。游戏引擎会不断从磁盘重新加载人物和道具的低细节版本;这个小补丁使其始终使用完整细节,因此永远不会切换或重新加载——远处角色的画面也更加清晰。一键安装/卸载。
查看大图[size=5][b]完整细节 LOD - 不再有群体卡顿[/b][/size]
[b]走过丹诺林市场时帧数突然掉到 30 FPS?[/b] 这个补丁修复了根本原因。
[size=4][b]问题所在[/b][/size]
《龙腾世纪:起源》为每个角色、生物和道具模型保留了多个版本:近距离的完整细节版,以及远距离的低细节版。每当有人走近或走远——或者你的镜头移动时——引擎就会切换版本。它还会在无人使用某个版本的瞬间将其丢弃,于是下一次切换又得从磁盘重新加载。在人群中,这种情况不断发生:数十个模型和贴图文件同时被重新加载,你的帧率就会瞬间下降。
我记录了在丹诺林市场走动时游戏读取的每一个文件(在大量模组的安装环境下):
[list]
[][b]之前:[/b] 每 30 秒有 250-470 次文件重载,成批出现,每次 27-57 个——有一个头发贴图在 30 秒内被重新加载了 7 次。[/]
[][b]之后:[/b] 每 30 秒 46-68 次读取,没有成批出现,零次低细节重载。[/]
[/list]
[size=4][b]这个补丁做了什么[/b][/size]
它让引擎始终使用完整细节模型。它从不切换,因此从不重载。
[list]
[]人群中不再有重载爆发。[/]
[]远处的人物和物体保持完整细节,模型切换细节时的“跳变”也消失了。[/]
[/list]技术细节:它改动了 DAOrigins.exe 内部一个 64 字节查找表中的 [b]8 个字节[/b]——即引擎尝试模型细节级别的顺序。没有改动任何代码。补丁程序通过表的精确内容来定位它,并且如果无法精确匹配到唯一一次,就拒绝改动任何 exe。
[size=4][b]为什么补丁程序是一个网页?[/b][/size]
因为 Nexus 的自动病毒扫描。我也不想这样:
[list]
[][b]1.0 版[/b] 有一个常规安装程序(一个 .bat 文件加一个脚本)。Nexus 把它隔离了。[/]
[][b]1.2 版[/b] 是一个很小的补丁程序(9 KB,附带源代码)。VirusTotal 没发现任何问题,Nexus 还是把它隔离了。[/]
[/list]任何修改 .exe 内部字节的工具,在自动扫描器看来都像恶意软件,即使它所做的只是改动表中的 8 个字节。所以我从下载中移除了所有程序。现在补丁程序是一个纯网页。它本身无法在你的电脑上运行任何东西,不需要联网,而且你可以阅读它的每一行:用记事本打开 FullDetailLOD.html。
[size=4][b]安装[/b][/size]
无需运行任何程序——补丁程序是一个可在你的浏览器中离线运行的网页。不会上传或安装任何东西。
[list=1]
[]关闭游戏,并备份 [b]bin_ship\DAOrigins.exe[/b]。[/]
[]双击 [b]FullDetailLOD.html[/b]——它会在你的浏览器中打开。[/]
[]选择你的 DAOrigins.exe 并点击 [b]Patch[/b]。浏览器会保存打好补丁的 DAOrigins.exe(通常在 Downloads 中)。[/]
[]把它复制到游戏的 [b]bin_ship[/b] 文件夹中,替换旧文件。[/]
[/list]该页面只会对恰好包含一次该表的 exe 打补丁;否则它不会改动任何东西。
[b]卸载:[/b] 放回你的备份——或者在该页面中加载已打补丁的 exe,点击 Undo,然后将保存的文件复制到 bin_ship。
在任何会替换 DAOrigins.exe 的操作之后(新的 4GB 补丁 exe、Lyrium exe、游戏更新),请重新应用。
[size=4][b]兼容性[/b][/size]
[list]
[][b]GOG 版本:[/b] 已在游戏内测试。[/]
[][b]Steam 版本:[/b] 补丁程序能找到并修补该表,但我尚未测试 Steam 的复制保护是否会接受被改动的 exe。如果游戏无法启动,请放回你的备份——并且无论结果如何,请在评论中告诉我。[/]
[]可与 [b]4GB 补丁[/b]、[b]Lyrium Memory Fix[/b] 和 [b]DXVK[/b] 一起使用——它改动的是 exe 的不同部分。[/]
[]与所有模组兼容——它不会改动模组、存档或设置。[/]
[/list]
[size=4][b]注意事项[/b][/size]
[list]
[]全部以完整细节绘制会带来一点图形性能开销——过去十年内的任何 GPU 都不会察觉。[/]
[][b]内存:[/b] 使用 DXVK 时,我测得没有额外的内存占用。不使用 DXVK 时,《龙腾世纪》会在自己的(32 位,最大 4 GB)内存中保留每个贴图的副本,因此远处的角色现在会使用它们的完整贴图,游戏的内存占用会略高一些。如果你使用大量高清贴图模组且不使用 DXVK,你可能已经接近上限——请使用 4GB 补丁,最好再使用 DXVK。[/]
[]树木和地形有它们自己的细节系统,不会被改动。[/]
[/list]
[size=4][b]致谢[/b][/size]
通过追踪帧率下降期间游戏读取了哪些文件,并沿着引擎代码找到细节表而发现。
感谢 DXVK 团队以及 Toeofcharmander(Lyrium Memory Fix),他们展示了 DAO 引擎的可能性。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。