![[MUI]现代化 UI (Modern UI)](http://i.mcmod.cn/class/cover/20200712/1594541230_694_XzkS.jpg@480x300.jpg)
暂无管理组..
![[MUI]现代化 UI (Modern UI)-第1张图片](https://i.mcmod.cn/editor/upload/20200425/1587805062_39045_hFoB.webp)
概述
Modern UI 旨在创造比原版更加精致的 UI,包括外观,动画效果,全新的渲染引擎,文字布局引擎及性能优化,使 UI 更加动态化,并且更加容易操作。
不过追其本源,Modern UI 是一个用来开发独立桌面应用程序的 UI 框架。许多结构与 Android 类似,但其实现是大不相同的。
Modern UI 使用自制渲染引擎 Arc 3D,支持多线程渲染,渲染性能非常高。文字布局引擎使用 Unicode 规范,使用 HarfBuzz,拥有很好的国际化能力。
注意
在游戏中按 Ctrl+K 打开 Modern UI 操作中心,你可以在偏好设置中配置大部分功能,注意这个页面可上下左右滑动;
如果你使用的是 1.16.5 或更低的游戏版本,请注意你的 Java 版本,如果你使用官方启动器或者 CurseForge 启动器,请更新 Java 并在启动参数里修改 Java 目录;
Minecraft 1.16 需要 Java 11~15,Minecraft 1.15 需要 Java 8~15。Minecraft 1.18 及以上的版本和原版一样,需要至少 Java 17;
Modern UI 3.8 版本起(MC 1.18.2),得益于新渲染引擎 Arc 3D,Modern UI 可根据实际运行环境选择最佳渲染方式,最低可兼容至 OpenGL 3.3。而 MC 1.16 需要 OpenGL 4.3。Modern UI 3.13 版本起(MC 26.1),Modern UI 可使用 Vulkan 渲染后端。
模组的非官方分支 ModernUI-MC-mVUS 支持 Minecraft 1.21.9 ~ 1.21.11;[MUP] 现代化UI非官方版 (ModernUI Unofficial Port) 支持 Minecraft 26.2+。使用非官方分支出现的问题,请向对应分支作者反馈,不要向原作者反馈!
文本引擎
现代化文本引擎为 Minecraft 提供高质量文本渲染、分辨率无关外框字体、彩色表情符号、以及正确的 Unicode 文本处理和布局支持。
支持颜色表情符号,使用 Google Noto Color Emoji 15.1,基于 Unicode 15.1 Emoji List;
可以使用 TTF 或 OTF字体,可配置字体基准大小,可设置基线偏移,可设置阴影渲染,可实时预览切换;
超高清晰度,自动切换分辨率等级(最高为 96 号字体),原生粗斜体渲染;
在任何比例下平滑绘制字体,可以在 2D 界面和 3D 世界中使用距离场(SDF)渲染;
支持屏幕空间抗锯齿和 FreeType 字体微调,支持 Mipmap,可自动根据矩阵计算实际字号;
支持原版像素风格位图字体,支持原版所有文字样式,超高速文本布局缓存,支持布局拼接;
自动对齐像素网格,有效避免文字边缘过于模糊或者过于锋利(锯齿);
更好并更加高效地布局混合双向(BiDi)文本段落(例如阿拉伯语 Arabic,意第绪语 Yiddish);
可设置双向文本方向启发式算法,更精确地控制文字方向;支持修复无效代理对(Surrogate Pair);
使用 HarfBuzz 文本整形,支持连字体渲染,如天城文 Devanagari,孟加拉语 Bengali,泰米尔语 Tamil,泰语 Thai;
支持字素簇分断算法(Grapheme Cluster Break),支持 Unicode 分行算法,根据语境与语言进行字词分断、换行;
更好的字体回退实现,自动分配字体,支持变体选择,自动调整行高;
提供更快、更省显存的矩形压缩算法,用于实时生成字体图册;
支持异步与并发文本布局,分离布局计算与渲染,保证线程安全;
支持 CommonMark、HTML 语法,支持任何自定义嵌入内容,支持不同的区域设置;
优化迭代算法,优化布局算法,在 GUI 中渲染文字时大约能提升 10% 的帧率;
使用真正的 Alpha 遮罩图存储纹理,减少显存占用;减少不必要的内存占用,大量减少每帧的对象创建。
功能
提供动画效果和转场动画等;使用 Shader 直接绘制圆角矩形,环形,扇形等图形;减少了 CPU 计算并提高了 GPU 性能;
将“物品”统计信息划分为物品和方块选项卡,并且所有统计信息都可以实时更新;
所有滑块选项仅在停止拖动时应用更改(例如,更改渲染距离时减少滞后);
更智能的按键绑定设置和更智能的按键冲突检测;按键绑定搜索功能并筛选所有冲突并定位到它们;
移动到文本字段/文本区域时,鼠标光标将更改为“丨”的形状;
详情信息查看 CurseForge 主页,Modrinth 主页,GitHub 主页,Discord 服务器。
附加功能
支持窗口模式切换,如全屏无边框、最大化无边框;
在窗口失焦和最小化时限制帧率和主音量淡出;
支持聊天栏中输入表情符号简码,例如 :rofl: 为笑得满地打滚;支持 Discord/Slack/GitHub/IamCal/JoyPixels 简码;
为所有本文输入框增加撤销/重做(Ctrl+Z,Ctrl+Y)支持,支持所有语言的词语选择(按住 Ctrl+键盘左右键);
播放本地音乐,允许跳转到指定位置并查看频谱;
按 C 键实现与 OptiFine 一样的缩放效果;
GUI 淡入动画和背景虚化效果(高斯卷积),可设置背景渐变色;
平滑圆角工具提示框样式,支持 RTL 布局,可设置背景和边框渐变颜色,标题居中,自动换行,超出屏幕自动上下滚动;
工具提示可配置圆角半径,阴影半径,阴影强度,标题分隔线;工具提示颜色可根据物品名称和稀有度;
游戏启动后播放“叮”提示音,支持打开物品栏时暂停游戏;
改进界面尺寸设置(滑块组件,改进算法,摆脱偶数比例的限制,兼容 OptiFine);
为原版和 Forge 滚动面板添加平滑滚动功能。
Fabric 版移除了一些功能(相较于 Forge 版)
OptiFine 式缩放、在 GUI 中隐藏准星、崩溃日志扩展。
PS:由于 Modern UI 功能非常多,请前往 CurseForge 和 Modrinth 以及 Discord 了解最新动态。
与 Caxton 文字渲染技术的比较
Caxton 模组以它的 MSDF 文字渲染出名,你可以在 Caxton 和现代文本引擎间做出选择。
共同点:
都使用 HarfBuzz 文本整形;
都支持 Unicode 文字处理;
都支持 Unicode 换行和字素簇分断;
都在光栅模式下兼容 Iris;
都有高效的矩形压缩算法,远比 Mojang 的好。
不同点:
Caxton 使用较新的 HarfBuzz 版本,而此模组使用的较旧的(与 JDK 17 捆绑,在 JDK 21 中更新);
Caxton 使用多通道距离场(MSDF),渲染更加锐利的放大的文字,而此模组渲染放大的文字会过度圆角化;
此模组兼容 OptiFine,而 Caxton 不兼容;
此模组支持彩色表情符号,而 Caxton 不支持;
此模组支持 FreeType 字体微调,而 Caxton 永远不会支持它,字体微调在低分辨率显示器上有所帮助;
此模组支持屏幕空间中原生字形图像的完美采样,这是 2D 渲染的理想情况;
此模组能够在不增加显存占用的前提下支持单通道距离场(SDF)文字渲染,此模组总是用1字节每像素的纹理;
此模组有对缩小的文字有智能 SDF 采样方法,而 Caxton 没有(Caxton 离远了且视角移动时,文字会闪烁);
此模组不需要等待 MSDF 纹理生成,你可以在游戏中一键、瞬间切换字体;
此模组支持多种文字方向算法和换行策略;
此模组不使用额外的本机库,所以可以直接运行在 MacOS 操作系统和非 x86_64 的计算机上而无需手动编译源代码;
此模组有比 Caxton 略高的布局性能,使用更少内存。
模组联动与兼容性
取代模组(Modern UI 包含这些模组的功能)
界面背景模糊(Blur) (1.15 到 1.21.8。全功能覆盖,以及更好的优化);
Controlling (仅 1.15);
TipTheScales (1.15 到 1.21.8,仅(Neo)Forge,另一种实现);
Inventory Pause (1.18 到 1.21.1,设置中默认关闭,另一种实现);
Emojiful (Modern UI 3.5.0 已支持彩色 Emoji 渲染;注意,Emojiful 会摧毁你的游戏,造成游戏卡死、高显存占用、卡顿和兼容性问题);
无边框全屏(Borderless Window) (1.18 到 1.21.4,另一种实现);
界面进入提醒(Ding) (1.18 到 1.21.4,另一种实现);
平滑滚动(SmoothScrollingEverywhere) (1.18 到 1.19,另一种实现);
FPS减速器(FPS Reducer) (1.18 到 1.21.8,另一种实现)。
冲突模组(和解决方案)
Emojiful (1.16 到 1.21.1,不推荐使用;若必须使用 Emojiful,通过配置界面或启动属性关闭 Modern UI 的现代文本引擎);
传说工具提示(Legendary Tooltips) (1.16 到 1.21.4;通过配置界面关闭 Modern UI 的现代工具提示);
FeyTweaks (1.18 到 1.21.1;关闭 FeyTweaks Mixin 配置里的 TextRendererMixin);
平滑滚动(SmoothScrollingEverywhere) (1.18 到 1.19;通过配置界面关闭 Modern UI 的平滑滚动);
Caxton (1.18 到 1.21.8;通过配置界面或启动属性关闭 Modern UI 的现代文本引擎);
ImmediatelyFast (对于 1.18 到 1.21.4;禁用 ImmediatelyFast 的 hud_batching、font_atlas_resizing 和 fast_text_lookup,否则有概率引发崩溃;
对于 1.21.6 到 1.21.8;禁用 ImmediatelyFast 的 avoid_redundant_framebuffer_switching,否则会产生残影;
对于 1.21.1-3.13.0.1 以上(但不含 1.21.4),无需禁用 ImmediatelyFast 的 hud_batching,已修复兼容问题);
物品名称双语同屏(Untranslated Items)(1.18 到 1.21.4;关闭 Modern UI 文本引擎的文本组件缓存,这会略微降低性能)。
需要注意的模组
光影启动时,Modern UI 的“在 3D 世界中使用现代文字着色器”会自动禁用;
经典状态条(Classic Bars):该模组颜色插值计算有误,导致血量条的不透明度为 2(应该为 0 或 255),无法渲染;Modern UI 3.10.1 已强行让它按照完全不透明来渲染,但其 RGB 值仍是错的。(最新的 1.20.1-4 版本已修复);
JEI药水效果(Just Enough Effect Descriptions):这是 JEI/REI 的渲染问题,其提前渲染并使用深度测试,导致背景片元丢失;可将 Modern UI 工具提示->边框样式->圆角化关闭来尽可能掩盖该渲染问题,但最好还是不使用 JEI药水效果;
机械动力(Create):当显示带工程师护目镜的提示框时,工程师护目镜图标会覆盖一定文本——这是机械动力假定了空格的宽度为 4,事实上空格的宽度随字体而变化。例如在 Modern UI 默认字体下,空格宽度明显小于 4,导致缩进不够,文字被覆盖。同时,机械动力的“思索”界面出现时可能不会立即消去其他GUI,可关闭背景虚化来修复,已修复问题。
各版本支持情况
| Minecraft 版本 | 支持情况 | 最新 Modern UI 版本 | 支持的模组平台 | 渲染后端 |
| 26.1~26.1.2 | 主线 | 3.13.0.5 | NeoForge, Forge, Fabric | OpenGL 3.3+, Vulkan 1.1 |
| 1.21.6~1.21.8 | 维护 | 3.13.0.3 | NeoForge, Forge, Fabric | OpenGL 3.3+ |
| 1.21.4 | 停更 | 3.12.0.3 | NeoForge, Forge, Fabric | OpenGL 3.3+ |
| 1.21.3 | 停更 | 3.11.1.10 | NeoForge, Forge, Fabric | OpenGL 3.3+ |
| 1.21~1.21.1 | 维护 | 3.13.0.1 | NeoForge, Forge, Fabric | OpenGL 3.3+ |
| 1.20.6 | 停更 | 3.11.1.8 | NeoForge, Forge, Fabric | OpenGL 3.3+ |
| 1.20.4 | 停更 | 3.11.1.7 | NeoForge, Forge, Fabric | OpenGL 3.3+ |
| 1.20.2 | 停更 | 3.10.0.5 | NeoForge, Forge, Fabric | OpenGL 3.3+ |
| 1.20~1.20.1 | 停更 | 3.12.0.1 | NeoForge, Forge, Fabric | OpenGL 3.3+ |
| 1.19.4 | 停更 | 3.10.1.3 | Forge | OpenGL 3.3+ |
| 1.19.2 | 停更 | 3.10.1.2 | Forge | OpenGL 3.3+ |
| 1.18.1~1.18.2 | 停更 | 3.10.1.1 | Forge | OpenGL 3.3+ |
常见问题解答
本模组需要在服务端装吗?
对于 MC 1.19.2 及以上的版本,Modern UI 是纯客户端模组,安装在服务端上没有任何效果,也不会崩溃。对于 MC 1.18.2 且 Modern UI 为 3.10.1.1 或以上的版本,则一般不需要在服务端安装。对于更早的版本,如果你只是想用 Modern UI 自身的客户端功能,则不需要在服务端安装。但如果有其它依赖于 Modern UI 的 Mod 安装在了服务端,而 Modern UI 没有安装在服务端,大部分功能将不可用。使用非官方或与服务端差距过大的版本可能无法进入服务器。
会出 Fabric 版本吗?
Fabric 是轻量级 API,并不推荐。目前提供 MC 1.20.1+ 的 Fabric 版本,且相较于 Forge 版本缺失一些功能。
额外说明:Caxton 拥有此模组的部分功能(告示牌文本更清晰等等?)。
为什么 1.18.2 以上字体是红的?
这应该是你的显卡驱动有问题。如果你有独显,请确保你使用独显启动游戏。请确保你在 NVIDIA/AMD/Intel 官网上手动下载并安装最新的显卡驱动,不要使用系统预装或自动更新的驱动。只要是 2010 年以后生产的显卡并更新到最新的驱动都没有问题。已知 2009 年生产的入门级显卡 GeForce 210 可以正常运行。对于 Intel Gen7 显卡(Intel 三代处理器),由于没有正确的硬件支持,且在 2020 年被 Intel 中止支持,没有解决方案。
MC 1.18.2 以上如何在手机端使用?
在 Pojav Launcher 使用 Mesa Gallium Zink 驱动在 Vulkan 上运行,或者用 MobileGlues 在 GLES 上运行。
为什么 1.16.5 没有 xxx …
因为其版本已停止支持,请使用最新的游戏版本。目前只更新 1.18.2 以上的版本。
本模组使用的许可协议是什么?
ModernUI 和 ModernUI-MC 的源码和二进制形式都是 LGPL-3.0-or-later。
技术讨论群(限高端玩家、开发者、和渲染技术爱好者):993254209。
游戏截图
![]() | ![]() | ![]() |
![]() | ![]() | ![]() | ![]() |
![]() | ![]() | ![]() | ![]() |


