【问题标题】:Unity Coordinate Limitations and its impactUnity 坐标限制及其影响
【发布时间】:2018-09-20 00:16:16
【问题描述】:

我放置在位置 (-19026.65,58.29961, 1157) 的对象从原点 (0,0,0) 呈现有问题,问题是指 空间抖动 (SJ) ref。喜欢您可以查看其详细信息here 或您可以查看下图。物体呈现黑点/黑线,或者是网格闪烁等。(实际上我无法描述问题,也许图片会帮助你理解它)

我也尝试过改变相机的远近剪辑,但它没用。为什么我得到这个?也许我的物体和相机离原点很远。

记住:

我的环境很大,我的一些游戏对象(问题出在哪里)位于 (-19026.65,58.29961, 1157) 位置。而我猜这是Object和Camera距离原点(0,0,0)很远的问题。我发现下面给出了许多讨论

  1. GIS Terrain and Unity
  2. Unity Coordinates bound Question at unity
  3. Unity Coordinate and Scale - Post
  4. Infinite Runner and Unity Coordinates

我没有发现将对象统一放置以使其正常工作的最小或最大限制是多少。

【问题讨论】:

  • 场景中没有烘焙。
  • 这可能是您看到的问题吗? en.wikipedia.org/wiki/Z-fighting
  • 我想这不是我的对象用黑线或黑线渲染的 z-fighting,这是另一个问题。我猜

标签: c# unity3d


【解决方案1】:

由于世界原点是向量 3(0,0,0),因此您可以放置​​对象的最大限制为 3.402823 × 10^38,因为它是一个浮点数。但是,正如您所发现的,这并不一定意味着将某些东西放在这里会确保它正常工作。您的限制将受到您在游戏中的其他性能因素的约束。如果您需要将项目放置在世界空间中的这一点,请考虑在运行时根据相机的位置构建对象。这将允许表演在与原点不同的点上工作。

Unity 建议:不建议距离中心超过 100,000 个单位,编辑器会警告您。如果您注意到当今的游戏世界,许多游戏围绕玩家而不是玩家在世界各地移动世界。

引用 Dave Newson 的网站Read Here

浮点精度

Unity 允许您将对象放置在任何地方 在基于浮点的坐标系的限制范围内。这 X、Y 和 Z 位置变换的限制是 7 显着 数字,在这 7 位数字中的任何位置都有小数位;有效 您可以在 12345.67 或 12.34567 放置一个对象,只需两个 例子。

有了这个系统,离原点越远 (0.000000 - 绝对零)你得到的,你失去的浮点精度越多。 例如,接受一个单位 (1u) 等于一米 (1m),则 1.234567 处的对象具有精确到小数点后 6 位的浮点数 (一微米),而位于 76543.21 的物体只能有两位小数 位置(一厘米),因此不太准确。

离原点越远,准确度就越低 当您想要小规模工作时,这将成为一个明显的问题。如果 您想将位于 765432.1 的对象移动 0.01(一个 厘米),您将无法做到这一点,因为该级别的准确度没有 离原点很远。

这似乎不是一个大问题,但这个失去的问题 更远距离的浮点精度是您开始的原因 当你迷路时看到相机抖动和不准确的物理现象 离原点太远了。大多数游戏都试图合理地保持事物 靠近原点以避免这些问题。

【讨论】:

  • 那么为什么我会遇到这个问题?
  • @MuhammadFaizanKhan 你可以在这里阅读所有相关信息:davenewson.com/posts/2013/unity-coordinates-and-scales.html他实际上建议使用多个摄像头
  • 是的,我已经读过了,我在我的问题中提到了它的参考。
  • 但是它是如何影响渲染性能的。我没有任何位置问题,所有对象都工作正常,但渲染效果不佳。此外,该物体距离距离并不远(-19026.65,58.29961, 1157)。正如您在回答中所说,团结在超过 1000,000 时会产生警告,但在我的情况下,我低于 -20000。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-19
  • 2015-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多