unity3d Unity坐标限制及其影响

tquggr8v  于 2023-01-02  发布在  其他
关注(0)|答案(1)|浏览(239)

我放置在某个位置的一些对象**(-19026.65,58.29961,1157)从原点开始(0,0,0)的渲染存在问题,该问题称为空间抖动**(SJ)ref.喜欢您可以查看它的细节here或者您可以看到下面的图像.对象渲染为黑色斑点/线或可能是网格 Flink 。(实际上,我无法描述的问题,也许图片会帮助您了解它)

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

    • 记住:**

我有一个很大的环境,我的一些游戏对象(问题所在)在**(-19026.65,58.29961,1157)位置。而且我猜这是对象和相机离原点(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
    我没有发现,什么是最小或最大的限制,以放置在统一的对象,使工作正常。
kd3sttzy

kd3sttzy1#

由于世界坐标系原点是向量3(0,0,0),则可以放置对象的最大限制为3.402823 × 10^38,因为它是一个浮点。这并不一定意味着在这里放置一些东西就能确保它正常工作。2你的限制将被你在游戏中的其他性能因素所约束。如果需要将项目放置在世界空间中的该点,请考虑在运行时基于摄影机的位置构建对象。这将允许性能在原点以外的不同点工作。
Unity建议:编辑会警告你,不建议你离中心超过10万单位。如果你注意到在今天的游戏世界里,许多游戏都是围绕玩家移动世界,而不是玩家围绕世界移动。
引用Dave Newson的网站Read Here

浮点精度

Unity允许你在浮点坐标系的限制范围内放置物体。X、Y和Z位置转换的限制是7位有效数字,小数位在这7位数字范围内;实际上,您可以将对象放置在12345.67或12.34567处(仅举两个示例)。
在这个系统中,离原点越远(0.000000 -绝对零),则丢失的浮点精度越多。例如,接受一个单位(1u)等于一米(1 m),则1.234567处的对象的浮点精度为小数点后6位(微米),而76543.21处的物体只能有两个小数位(厘米),因此精度较低。
当您想要在小比例下工作时,随着距离原点越来越远,精度会降低,这是一个明显的问题。如果您想要将位于765432.1处的对象移动0.01(1厘米),您将无法做到,因为距离原点那么远的地方不存在该级别的精度。
这看起来可能不是什么大问题,但是在更远的距离上丢失浮点精度的问题是当你偏离原点太远时,你开始看到像相机抖动和不准确物理这样的事情的原因。大多数游戏试图让东西合理地靠近原点来避免这些问题。

相关问题