封面图有个细节,左半边看似一个颜色,实际跟右边一样是网格的,只不过密了很多
概述
分辨率控制 能在不影响游戏窗口大小的情况下降低分辨率。
单纯降低分辨率完全可以不用模组,但以缩小游戏窗口的形式降低,游戏体验会大打折扣。
以最新 MC 版本的 Resolution Control Plus 版为例:模组界面内可以调整分辨率的倍率,默认下采样时倍率可选:1,0.75,0.50,0.25,0.10,0.05,0.01,0.0(为 0.0 时,仅显示 1x1 分辨率的画面),上采样时倍率为:1.25,1.5,2.0,3.0,4.0,6.0,8.0。
技术细节
下采样
当采用下采样时,会对游戏的帧缓冲区写入下采样后的图像数据,帧缓冲会最终写入显示设备显示。
降低该缓冲的写入可以有效减少每帧传输的数据量并减少在后处理阶段的开销从而带来一定的性能提升。
当采用重采样算法时,用户可以选择最近邻插值和线性插值算法,这两种算法在性能上十分接近。
你可以选择最近邻插值的下采样来获得更加“像素化”的输出,或者采用线性插值的下采样,但是由于 Minecraft 的像素画风,可能会带来平滑效果从而造成画面模糊。
上采样
当你的 GPU 性能足够强悍,或者 CPU 单核性能十分优异时,你都可以打开上采样来获得更好的画面锐度。
类似于抗锯齿算法,它将画面进行重采样从而得到更高的分辨率的画面,当然上采样过高时也可能在视窗中渲染回屏幕窗口大小上时带来部分失真(因为当你将画面写入缓冲后最后还是要根据窗口大小进行显示,这时会进行一次下采样回到原始大小)。
截图
不同的分辨率被设置到了截图功能中,在这里你可以通过设置截图的图片大小来获得无损的超高分辨率截图。
当然高分辨的截图需要你的内存支持,图片将从缓冲区中读取,你可以在显示界面获得估计的内存(显存)需求大小;
或者获得复古像素风的像素截图,类似一些风格画。
模组的分辨率调整仅针对世界渲染部分,HUD、GUI 等 2D 图形界面不会被影响。
模组内也可以调整截图的分辨率,并使用绑定键位截图,同时比 Fabrishot 更为高效。表现为截图卡顿时间更短,响应更快。
性能测试
降低分辨率时使用效果如下:
测试电脑配置:i5-10400F、RTX 2060、16G DDR4。
游戏版本:1.18.1,Iris + Sodium 的组合。
光影:Complementary Shaders。
视野距离:12。
1.00:帧率 105 左右。
0.75:帧率 140 左右。
0.50:帧率 190 左右,已经出现明显模糊。
0.25:帧率 220 左右,十分模糊,影响体验。
由此可见:如果想要提升游戏帧率,0.75 是比较好的选择,当然也可以自定义分辨率。
补充实验(该测试在 Forge 1.16.5,GTX 1660ti 环境下运行,Mod 为 @nowandfuture 的 Forge 移植版本):
如果作为优化目的使用,这里给出打开 Mod 的低分后能否提高帧数的前提:
满足以上条件的情况下可以通过降低分辨率损失画质的情况下带来帧数提升,原版游戏几乎无法让显卡稳定地满负荷运作,所以在原版使用低分辨率几乎不能带来任何性能提升。
下图展示不同 GPU 负载下的 FPS 差异:
备注
1.20.4 有非官方分支:ResolutionControl++,修复了与 Axiom 的兼容和发光效果显示异常的 Bug。
注意:钠的 1.20-0.4.10 版本与该模组 1.20-3.0.0 版本一起使用会导致其降低分辨率的优化功能无效!
存在1.21非官方分支:ResolutionControl3,并将新修复版本向部分低版本移植。