同步功能重做
更改
添加了自定义云层颜色的功能。
添加了云层亮度增强功能。
由于配置系统需要,Cloth Config 已由原来的前置改为联动。配置文件已交由内建代码处理。
但如果你需要在游戏内更改设置,你仍然需要安装它。
修复
修复了 Forge 在双端安装时,服务端向客户端发送空的天气信息导致客户端报错掉线的问题。
修复了自 1.7.4 版本开始的云层同步功能无法运作的问题。为此重制了几乎整个网络模块。现在该功能应当能正常工作了。
移除了客户端的请求同步功能。
但你仍然可以使用服务端的 /sfcr sync 命令。
(1.18.2/1.19.2/1.19.3)修复了启用“云层显示距离匹配视野”选项后,通过调整游戏视距而自动更改的云层显示距离不会自动保存的问题。
代码整理。
已知问题
当你或你的服务器的同步间隔设置得过短导致同步频率过高时,云层位置会闪现。
通过服务器同步的云层,其形状并不完全一致。
“优化与合并”更新
通过给云层模型的重建添加帧间隔的方法大幅优化了模组的硬件占用。
在粗浅的测试中,该版本的游戏帧率相较于 1.7.4 版本提升了 200% 以上,已经非常接近无模组原版的帧率了,效果显著!
但仍然不要将云层设置得过大,在每次模型重建中,过大的云层依旧会制造卡顿尖峰,导致掉帧。
使用 Forgix 插件将 Forge 和 Fabric 的代码合并在了同一个 .jar 文件中,以减少模组发布的工作量。
虽然文件大小几乎翻倍,但你现在可以将它放在任意加载器中使用。
现在你可以完全禁用面剔除功能(如果需要的话)。
(仅 1.20)修复了网络包中丢失的群系降水类型的密度设置。
对配置界面和语言文件进行了少量更改。
帧率比较:
更改
移除了与钠·拓展的联动;
将云层生成阈值开放进了设置页面。
修复
修复了“地形回避”功能中错误的高度计算方法;
修复了云层与地形重叠时的闪烁问题;
修复了执行 /weather rain 命令后天气预检测模块持续返回 thunder 导致云层密度错误变化的问题;
修复了天气预检测功能无法在降雨结束时正确预测天气晴朗与否的问题;
修复了 weatherChange 参数在单人游戏中被 clientTick 方法覆写导致天气预检测功能无法运行的问题;
修复了云块大小设为 16 以外的数值时迷雾距离没有正确适配的问题;
修复了云层移动速度错误地跟随游戏帧率变化的问题;
修复了多人游戏时同步模块在收到数据前频繁发送同步指令的问题;
修复了潜在的接收同步数据包时的崩溃;
优化了云层高度定位的计算方法;
优化了密度渐变的步进算法。
已知问题
严重的性能卡顿。
注:
由于 1.7.0 版本中实现的平滑渐变功能需要云层在每一游戏刻都重建一次模型,故该操作被移出了多线程过程,导致云层较多时游戏客户端出现严重的卡顿。为了解决这个问题,目前判断需要重写部分核心代码,这可能会使模组其他功能产生不稳定的情况。
因此,我决定先发布这个比较稳定的版本 应该吧,毕竟修了那么多 bug,好方便我接下来专心修改代码核心。
1.8.x 版本见。
功能添加
云块大小现在可以进行调整了;
云朵现在会自动回避较高的地形和建筑物,以免从其中穿过;(由 RealisticClouds 启发并私自复现)
群系检测功能现在可以以云层下方的区块作为检测对象,实现更精确、更合理地生成;(同上)
(实验性地)云层现在在刷新时可在两组形状间平滑过渡(但因为我还搞不清楚的渲染问题,视觉效果很差)。
更改&修复
修复了群系系数的计算错误(这次真的修复了>w<);
群系过滤列表现在可以输入以“#”开头的标签了;
调整了云层密度阈值的计算公式(平衡群系和天气的密度乘积挺难的,未来计划直接把这两个参数放进配置屏幕里……);
(显而易见地)为了实现以上功能对代码结构进行了大修;
(因为大修)现在云层在黎明和黄昏时的颜色变化更流畅了(不断地 remesh,会比以前更消耗性能)。
致 1.19.4:
由于游戏版本问题,该版本的模组不得不对群系检测功能进行重写以填补 .downfall() 方法消失后的参数空缺,所以该版本的模组可能会在视觉表现上与其他版本产生显著差异。
错误修复和优化
修复了一个导致游玩时间过长后云层刷新线程崩溃的问题;
修复了对钠·拓展的兼容无法生效的问题;
移除了对 Raised Clouds 的兼容,因为它不开源且我从未测试过,无法保证此兼容能够运行;
修复了单人游戏暂停时云层刷新与移动不暂停的问题;
修复了一个丢失的服务端命令,并稍微优化了其他的命令;
再次提升了群系降雨系数的基础倍率;
微调了云层高度的计算方式,以尝试兼容 Head in the Clouds。
共享同一片天空!
更改
在多人游戏/服务器中为所有客户端同步云层的位置和形状,以使所有客户端上的云层表现一致。
- 为此,本模组需要同时安装在客户端和服务端,并在客户端中启用“服务器同步”选项。
- 现在本模组对双端都是可选安装的;但如果任意一端未安装,同步功能将无法使用。
为服务端添加了一系列指令以方便服务器管理员远程配置和管理模组的状态,键入“/sfcr”并回车即可查看命令帮助。
天气检测算法在本次为了双端安装而进行的代码重写中“被迫”进行了优化,较之以往运行更高效。
一些细节更改。
修复
(仅 1.18.2)修复了当玩家穿越区块边界时出现的奇怪的云层闪烁和位移问题。虽然我依旧不清楚这个问题到底是怎么出现的
群系检测功能更新
更改
添加了群系检测功能:使用群系降雨量作为参数自动调整云层密度;
优化了天气检测功能的准确度、灵敏度和视觉表现;
- 添加了预检测功能,现在你可以从云层的密度改变来知晓即将到来的天气;
- 更好的云层密度门限;
- 更平滑的密度改变;
开放了更多可配置选项,重新制作了配置界面;
语言文件更新。
修复
云层不再渲染在没有 Skylight 属性的维度了,例如下界和末地;
云层迷雾的距离现在会被正常计算了;
修复并优化了密度计算的结果;
修复了当无迷雾时的视锥距离;
其他小型修复(请前往 Github 查看 commit 细节,或查看之前的 b 测日志)。
已知问题
因为一个原版游戏方法返回值的错误,预检测功能无法在雷暴和降雨结束时正确运行。
更改
修复了云会渲染在没有 Skylight 的维度,包括下界和末地的问题;
修复了快速刷新功能与天气预测错误(由后者的 getTime 方法调用 bug 引起,已注释在代码中);
修复了错误的密度计算方法(由 int 类型舍弃小数点引起的计算错误);
将天气和群系的变化检测与密度改变算法分离,以获得更灵敏的检测速度(现在检测算法将每 tick 运行一次);
优化了平缓刷新与快速刷新的判断条件;
调试并细化了密度参数的取值范围,使其覆盖随机采样的主要取值范围;
修复了群系倍率在参与最终密度计算时的方法错误;
将迷雾距离算法应用于最大视锥距离的计算,避免云层被视锥剔除;
将调试信息改为在游戏内输出;
从配置屏幕中移除了调试按钮;
一处英文翻译关键字错误;
语言文件的小幅修缮。
问题
无法预测雷暴/降雨之后的天气状况;
调试输出会导致游戏崩溃(聊天记录数量溢出)。
配置性更新!
添加了 Cloth Config API 的依赖,以管理模组配置。
添加了模组菜单的兼容,以在游戏中打开配置界面。
云层厚度现在支持在 8 到 128 中调整。(默认为 32)
云层宽度现在支持在 60 到 384 中调整。(默认为 96)
云层高度现在可以独立在 128 至 384 中调整。(默认跟随原版)
注意:当安装有调整云层高度的模组时(比如钠·拓展、Raised Clouds),此设置将自动禁用以应用其更改。
可在“超级华丽云”和“原版华丽云”中快速切换。(不需要再卸载模组)
为配置界面添加了中文和英文支持。
已知问题:
“云层显示距离匹配视距”功能正在开发,该选项暂时无法使用。
当云层厚度和宽度设置得过高时会引起卡顿。
云层上的迷雾效果在使用高厚度高显示宽度的云层、且迷雾距离低于 4 时无法准确工作。
小型优化补丁
更改
云会在黎明和黄昏时稍微变红;
添加了“群系影响过滤”以忽略由过小或过窄的群系所带来的云层密度改变;
- 你可以自定义这些群系。
云会在“云层渲染距离”改变时保持其位置以避免错位;
提升了云层的基础密度 10%;
提升了群系基础影响倍率 50%;
- 但沙漠和类似的群系依旧不会出现云,因为零乘以什么都是零 :-P
修复
用浮点数替换了大量整数除数以修复因小数点被舍弃而出现的位置计算失误;
- 现在应该不会再出现云层闪烁的现象了——但愿。
已知问题
【1.18 版本玩家注意】该版本的模组在玩家穿越区块边界时会出现严重的云层位置错位和闪回,目前尚不清楚这个现象是如何发生的。出于对模组质量的考量,我决定在该问题得到解决前先暂停对于 1.18 的支持。
通过使用 Architectury API,本模组现已支持 Forge。
移植代码至 Architectury API 以期为模组提供便利的多加载器支持。
更新了模组图标和名称为“重筑版 Rearchitected”。
修复了多人游戏时的同步功能。
更新、修复了过时的网络通信模块。
更新了服务端的专有指令。
(除 1.16.5 外)优化了面剔除功能中角度的计算过程,使其自适应玩家的视野变化(例如疾跑、药水效果等)。