Unity Coordinate限制及其影响

时间:2018-04-10 11:34:11

标签: c# unity3d

我所在的位置( - 19026.65,58.29961,1157)形成原点(0,0,0)正在呈现问题,问题是指空间抖动(SJ)ref。就像您可以查看其详细信息here或您可以看到下面的图片。对象使用黑点/线条渲染,或者可能是网格闪烁等。(实际上我无法描述问题,也许图片会帮助您理解它)

enter image description 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
  5. 我没有发现将Object正确放置在一起的最小或最大限制是什么才能正常工作。

1 个答案:

答案 0 :(得分:2)

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

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

引用Dave Newson的网站Read Here

  

浮点准确度

     

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

     

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

     

随着距离原点越来越远,精度下降   当你想要小规模工作时,这成为一个明显的问题。如果   你想要一个位于765432.1的对象移动0.01(一个   厘米),你将无法达到那种准确度   远离原点存在。

     

这似乎不是一个大问题,但这个失败的问题   你开始的原因是更远距离的浮点精度   当你流浪时,看到像相机抖动和物理不准确的东西   离原点太远了。大多数游戏都试图让事情合理   靠近原点以避免这些问题。