开启辅助访问     
收藏本站

站内搜索

搜索

Minecraft(我的世界)苦力怕论坛

[闲聊] 用 0.3 修复深度冲突问题

 发表于 2025-11-21 17:25:42 来自手机|显示全部楼层|阅读模式 IP:天津
本帖最后由 Cat_Anchor 于 2025-11-21 17:42 编辑

前情提要:“但是很可惜,最后我做出来的结果,还是存在一定的深度冲突的问题,而且现在我没有时间修复它。……”

现在我基本上修复了这个深度冲突问题!

修复的思路很简单,可是过程却出乎意料,其中一些事情到现在我也没法解释。


当时,我以为这只是一些简单的计算。算出模型中偏差的 UV 值,再调整那些面的 UV 就好了;可是今天我实际操作的时候,才发现没那么简单。

今天早上,在去学校的路上,我首先修复了面的 UV 错位问题。这相对好修复,对应着模型与纹理,一个一个调整就行了;离开学校的路上,我又开始修复最终的深度冲突问题。

我突然发现,这个偏差的 UV 值非常奇怪,似乎不是可以计算出来的;即使尝试多次,我也搞不清楚怎么调整 UV 才能让深度冲突消失。有那么一瞬间,我甚至认为这不是通过调整 UV 就能解决的问题;但是接下来的一瞬间,我发现了一个完美的位置和角度。

在这个位置和角度,模型中一个面的一个角落的一侧的深度冲突恰好消失了。这不是因为模型自己把自己修好了,而是因为,在特定情况下,深度冲突会短暂地看似已经解决了。实际上并没有解决,只要移动相机位置和角度,深度冲突就会立刻重新出现。但是我抓住了这个完美的位置和角度,尝试一点点移动其中一个面的 UV;不行,没什么变化。再移动另一个面的 UV,这好像是解决问题的关键。我继续调整 UV 的大小,直到两个面的纹理中的像素互相对齐——这就行了!

再看这时候 UV 的大小,我调整的数值就是——

0.3

为什么是 0.3?我不知道,不过我确实知道一件事,那就是这个数值能修复最后的深度冲突问题,让我头疼不已的最终的大问题。

于是很快,所有 UV 都开始了“0.3 化”,UV 坐标要么是加上了 0.3,要么是减去了 0.3,这样,我就成功修复了深度冲突问题。


可是……到底为什么是 0.3?可不可以是 0.33333 循环?我编辑了导出的模型数据,把里面的偏移量改成了 0.33333。再导入编辑程序,我发现这样改之后,交界处出现了一些微小的细缝。看来,那个理想的偏移量并不是 0.33333 循环。我又回到一开始的模型,仔细观察,可以发现其实它的表面也有细缝——其实不是细缝,而是像素没有对齐导致的阶梯状纹理。对比之后,我认为理想偏移量比 0.33333 循环小,而且也比 0.3 小一些。

也就是说,这个偏移量比 0.3 还要小,但是根据之前的两组数据,小得不多;这个问题还与数字 7 有关。我凭借直觉,尝试把偏移量设为 2 / 7,也就是 0.285714 循环。导入编辑程序时,我想,这应该就是那个理想的偏移量了。

然而不是。

偏移量,比它还要大。


也许我们可以尝试逼近这个理想值。我取了 0.285714 循环与 0.3 的中间值,大约是 0.29285714,发现理想值比它大;这时候,继续求理想值已经失去了意义,现有的 0.3 的方案看来已经足够接近理想值了。

而且我还有一个新发现,那就是在透视投影的情况下,0.3 的偏移量几乎就是完美的,看不出来有什么偏差;只有换到正交投影,放大到渲染精度丢失的时候,我们才能注意到那个瑕疵。

最后,我把理想偏移量估计为 0.296428571,其中 428571 是循环的。在实际文件中,我还是采用 0.3 的方案。

这件事情,终于告一段落了。


其实说到底,不透明方块连接纹理的难题真的被攻破了吗?可能没有,“纸盒”这个方块只是一个特例,我只是可以这样设计它的模型,最后还留下了上文的疑问。而且对于其他类型的方块,我们还是需要继续攻克这个难题。

经过我的估计,也许骨骼可见性与方块剔除的综合运用可以解决这个问题,把一些 Molang 表达式转为方块剔除规则可能可以绕开相关限制。如果处理得当,我们基本可以还原出 Java 版的纹理连接效果,然而大概率无法做到运行效率很高,尤其是同时修改大量方块时。

但是,归根到底,我已经在万象添补0.17.8 中修复了纸盒相关的漏洞,接下来我们可以继续开发其他内容了。



(突然发现的好玩的东西↓)
苦力怕论坛,感谢有您~

本版积分规则

本站
关于我们
联系我们
坛史纲要
官方
哔哩哔哩
技术博客
下载
网易版
安卓版
JAVA
反馈
意见建议
教程中心
更多
捐助本站
QQ群
QQ群

QQ群

访问手机版

访问手机版

手机版|小黑屋|系统状态|klpbbs.com

| 由 木韩网络 提供支持 | GMT+8, 2026-2-3 06:28

声明:本站与Mojang以及微软公司没有从属关系

Powered by Discuz! X3.4