Xcode中的场景编辑器使用了什么单位?

时间:2017-10-04 06:42:42

标签: xcode scenekit

Xcode中的场景编辑器显示尺寸但没有单位。它是以英寸为单位的尺寸还是以米为单位的尺寸?

例如,当我选择一个节点时,例如一个框,当我在Node Inspector中检查它的属性并在“Bounding Box”旁边的“Transforms”部分检查它的大小时,不显示任何单位。

Bounding Box in the Scene Editor in Xcode

该单元似乎与“语言和区域”首选项窗格(在“高级...”弹出窗口中)中设置的系统测量单位无关,因为数字在我在“公制”和“美国”之间切换测量单位时的节点检查器。

2 个答案:

答案 0 :(得分:3)

你从Apple得到的答案是正确的,但也不完整。

在诸如SceneKit之类的3D场景图模型中,长度单位对于大多数目的而言并不重要。它可以是完全随意的,只要您的单位使用一致,选择和使用单位对视觉效果没有影响。例如,以下场景看起来完全相同:

  • 一个1.0米宽的立方体,距离相机3.0米
  • 0.1米宽的立方体,距离相机0.3米
  • 0.91米宽的立方体,距离相机2.73米
  • 一个1.0英尺宽的立方体,距离相机3.0英尺
  • 一个6.28 frobnitz宽立方体,18.84 frobnitz远离相机(你怎么把frobnitz转换成米?没关系!)

最重要的是,场景图中的每个节点都可以对其子节点应用缩放。所以你可以有一个宽度设置为1.0个单位的立方体,以及一个3.0单位以外的相机,并且它们都是一个节点的子节点,其比例为0.91 ......在这种情况下,即使其他地方还有其他的东西在“1.0单位”表示一米的情况下,立方体和相机不同意“1.0单位”的含义。 (对于他们来说,这是一个美国院子。)因此,SceneKit(和Xcode的场景版UI)中的大多数基于长度的属性都没有标记他们的单位,因为他们的单位是相对于他们父母的(可能是任意的)比例节点

有几个地方场景空间单位的含义开始重要:

  1. 如果您开始使用物理模拟。当质量,力,能量和摩擦开始涉及时,长度单位和那些其他量的单位之间的关系变得重要。物理引擎的其余部分(质量,力,脉冲)使用SI单位(千克,牛顿,牛顿秒),所以为了简单起见,我们只假设长度(以及扩展,面积,体积和速度)也是如此。

  2. 如果您需要渲染场景,以使结果与另一个3D空间对齐,就像在AR或VR中一样。当与ARKit一起使用时,SceneKit长度/距离以米为单位,因此渲染图像看起来像ARKit所测量的那样存在于现实世界中。

  3. 所以,是的 - 你从Apple得到的答案是正确的...在最广泛的用例中,最好假设SceneKit空间的未标记单位是米,并相应地进行设计。但重要的是要知道为什么,何时应用该假设,何时只是一个随意的假设。

答案 1 :(得分:2)

尺寸以米为单位。请参阅SceneKit文档:

  

SceneKit物理模拟中的所有值都使用国际单位制(SI):质量单位是千克;力,冲量和扭矩的单位是牛顿,牛顿秒和牛顿米; 节点位置和大小的距离单位是米