【问题标题】:Weird Lines 3D Unity奇怪的线条 3D Unity
【发布时间】:2022-04-23 03:36:19
【问题描述】:

我正在开发一个项目,使用统一 5.4。 在这个项目中,块彼此相邻堆叠。

但是出现了一些令人讨厌的奇怪线条。也在android上这些 线路比 PC 上出现的频率更高。 出于说明目的,我添加了图像和视频。 请放大图片以清楚地看到我所说的线。

任何人都可以提供一个解决方案来消除这种滋扰。 提前致谢。

文学:

块对齐码sn-p:

for (int x = 0; x < xSize; x++)
        for (int z = 0; z < zSize; z++)
        {
            Vector3 pos = new Vector3(x, -layerDepth, z);
            InstantiateBlock(pos);
        }

视频链接:https://youtu.be/5wN1Wn51d_Y

【问题讨论】:

  • 您能否更新您的问题,以包含您如何定位立方体的小片段。
  • 你能压缩你的项目并链接它吗?
  • 您根本无法“堆叠块”。 这太荒谬了。你当然会得到台词。你认为会发生什么?
  • 对我的世界进行编程非常困难。它与堆叠块无关。 Unity 上有许多完整的 minecraft 工具包 - 只需购买一个。
  • Joe Blow 不必做出如此严厉的反应。

标签: unity3d


【解决方案1】:

你有对象接缝!

当对象之间存在物理或感知间隙时,就会发生这种情况。

这有多种原因。


1。浮点不精确

这可能是因为您将多维数据集的位置设置为int,但它们具有浮点尺寸。这种情况的症状通常是当相机靠近物体时没有白色接缝,然后由于浮点不精确,随着您远离物体,它们会逐渐出现。 More.

从大多数摄像机位置来看,这些块中的大多数似乎都完全对齐。但是从偶尔的不幸位置来看,A 的位置加上它在 (0.5,0.5,-0.5) 处的顶点的确切值可能与对象 B 的位置加上它在 (-0.5,0.5,-0.5) 处的顶点略有不同。结果是 Unity 显示了一个微小的间隙,在其中您可以看到立方体 A 的阴影面。

如果您在纸上考虑以下3 == 1/3 * 3,这在数学上是正确的,但是使用浮点数、1/3 == 0.333333... 和随后的3 * 0.333333... == 0.999999... BINGO!物体之间的随机间隙!

那么怎么解决呢?使用浮点数计算对象的位置。 new vector3(1,1,1); 应该是 new vector3(1f,1f,1f); - 例如。如需进一步阅读此内容,请尝试this SOP。


2。纹理包裹模式

如果您在对象上使用纹理,请尝试将纹理的 Wrap-Mode 从 wrap 更改为 clip,或尝试提升纹理 padding。


3。 Shadow Acne -(光照和阴影伪影)

这是阴影中像素的任意模式,当它们真正应该被点亮或不被点亮时。

为了防止阴影粉刺,可以在阴影贴图中的距离上添加一个 Bias 值,以确保边界线上的像素按应有的方式通过比较,或者确保在渲染到阴影贴图中时通过比较。 source.

在 Unity... 转到您的光源,然后增加 Shadow Type &gt; shadow Bias 我建议将默认值 0.05 加倍,然后继续这样做直到修复。你不想把这个值调到最大值,因为......

不要将 Bias 值设置得太高,因为投射它的 GameObject 附近阴影周围的区域有时会被错误地照亮。这会导致阴影断开,使游戏对象看起来好像在地面上飞行。

【讨论】:

  • 我强烈建议不要使用淡入淡出/透明,因为是的,这会破坏你发现的 FPS。实际上有几十个人在互联网上抱怨这个问题——所以不要灰心。这一切都源于浮点不精确。我将更新我的答案以更好地解释。
  • 您误读了“我手动使它们重叠”的评论。这是对朱利安回答的反应。这些块在代码中完全对齐。
  • 但是我仍然被困在这里的问题是:如何在不损害 fps 的情况下摆脱奇怪的线条(允许黑客攻击)。
  • @RomeoTheWizard 我刚刚修改了我的答案 - 我现在相信你属于第 3 位。
  • 我调整了阴影偏差值,它似乎没有任何影响
【解决方案2】:

您是否使用了彼此对抗的不同块?您的问题听起来像块并不完全相互对抗,这导致您看到下一个块的侧面(这解释了相机 Y 的变化:您可能会从更高的地方看到更好的侧面)。该面将具有不同的照明,并显示为不同/较浅的颜色。要检查这是否是问题所在,请尝试在编辑器中手动稍微重叠它们,看看问题是否仍然存在。

【讨论】:

  • 是的,这些块相互对抗。我手动使它们重叠,但事实并非如此。我可能需要上传一个视频来更清楚地表达我的意思。
  • 视频已上传@Julian Declercq
【解决方案3】:

使积木运动学解决了这个问题。问题是刚体相互碰撞。

【讨论】:

  • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。
猜你喜欢
  • 2016-05-31
  • 2016-02-05
  • 1970-01-01
  • 2016-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-11
相关资源
最近更新 更多