概述
模组修复了当屏幕缩放超过超过100%时游戏模糊的问题。启用模组后,还会将游戏的进程优先级提升至高。目前,此模组仅针对Windows系统修复DPI问题,因为未能找到如何在macOS或Linux下防止DPI缩放的文档,除非修改LWJGL原生窗口创建标志。如果你是C++开发者,并了解解决方案,欢迎提供帮助。
想象一下,你在忙碌了一天的工作后坐下来,启动multimc或curseforge启动器来玩你的Minecraft1.6.4或甚至1.7.10的整合包………然而,在等待了10分钟后游戏加载完毕,却发现画面模糊不清。你不得不将DPI调整回100%,然后重新启动multimc和Minecraft,结果却让所有东西都变得过于小,让游玩变得不那么快乐。
听起来很熟悉?不要再为此烦恼了,这个模组可以解决这个问题。它适用于Minecraft1.6.1至1.12.2版本,在游戏进入之前设置游戏为dpi aware模式。
如何安装
将文件拖拽至mods文件夹即可。
功能
修复 DPI 问题。
将游戏的进程优先级设置为高(可配置),提高约10帧。
修复 MC-68754(退出全屏无法最大化窗口)。
修复 MC-111419(全屏模式不保存)。
修复 MC-160054(Alt+Tab 最小化游戏)。
修复 1.6x 版本在加载世界时最大化导致的不正确调整大小。
修复版本隔离导致的 LaunchClassLoader 内存泄漏问题。支持版本隔离 1.3 到 1.12 的修复。确保不发生内存泄漏(Dpi-fix 1.5.0+ 版本支持覆盖 FoamFix 的错误修复)。
支持的操作系统
Windows 7 (x86 and x64)。
Windows 8.1 (x86, x64 and arm64)。
Windows 10 (x86, x64 and arm64)。
Windows 11 (x86, x64 and arm64)。
旧版使用
针对旧版Minecraft(1.5.2及以下版本)的DPI-Fix。因为在使用MultiMC和其他启动器无法在ASM转换器加载时加载DPI-Fix,因此它变成了一个java agent。因此,安装方法将会有所不同。
下载 DPI-Fix 模组 1.3.0 或更高版本。
将 [1.6.4-1.12.2]HighDPI-Fix-1.3.0.jar 文件放入 .minecraft/agents 目录下。
找到启动器修改JVM参数的地方。如果是服务器端,则在Shell脚本添加JVM参数。
添加JVM参数:
-javaagent:"agents/[1.6.4-1.12.2]HighDPI-Fix-1.3.0.jar"
-Dgamemodelib.dpi=true
-Dgamemodelib.high=true(可选)
以上步骤将帮助你正确安装和配置DPI-Fix模组,以解决高DPI缩放问题并优化性能。请确保按照指示准确操作。
常见问题
Q: 所有版本的安装过程都相同吗?
A: 是的,除了旧版本。
Q: 这个模组支持Java 9或更高版本吗?
A: 不支持,直到1.13+版本才开始支持Java 9或更高版本。
Q: 如果在游戏运行时更改DPI,这还能起作用吗?
A: 在 Windows 8.1 或更高版本上可以,但在 Windows 7 上未经过测试,不确定是否需要重启游戏,因为作者忽略了 DPI 缩放因子。
Q: 这个模组是病毒吗?为什么会有DLL文件?
A: 它是C++代码,所做的只是设置DPI感知和进程优先级。源代码可以在 src-cpp 下找到。
Q: 在macOS上修复DPI会生效吗?
A: 是的。macOS的DPI缩放机制不同。你不能在不改变显示虚拟分辨率的情况下更改缩放比例。所以不需要特别的修复。
Q: 这个模组在Linux上能工作吗?
A: 不行。作者没有找到任何关于如何在不编辑LWJGL原生文件的情况下让应用程序成为DPI感知的文档,因为作者找到的唯一方法需要在参数中设置窗口创建标志。作者还发现,1.13+版本使用LWJGL 3时,尝试设置全屏分辨率时会错误地获取分辨率,导致渲染出比实际屏幕分辨率更高的画面。即使可能修复这个问题,也可能导致类似的结果,因此我们需要帮助来支持Linux上的DPI缩放。无论如何,Linux上的缩放都非常不稳定,作者建议是关闭它,直接更改屏幕分辨率,或者如果文本/图标太小的话,增大它们的大小。