Xcode 中的场景编辑器显示尺寸但不显示单位。尺寸是以英寸为单位还是以米为单位?
例如,当我选择一个节点(例如一个框)时,当我在节点检查器中检查其属性并在“边界框”旁边的“变换”部分中检查其大小时,不会显示任何单位。
该单位似乎与“语言和区域”首选项窗格(在“高级...”弹出窗口中)中设置的系统测量单位无关,因为当我在“公制”和“美制”之间切换测量单位。
尺寸以米表示。请参阅 SceneKit 文档:
\n\n\n\nSceneKit\xe2\x80\x99s 物理模拟中的所有值均使用国际单位制 (SI):质量单位为千克;力、冲量和扭矩的单位为牛顿、牛顿秒和牛顿米;节点位置和大小的距离单位是米。
\n
你从苹果得到的答案是正确的,但也不完整。
\n\n在 3D 场景图模型(例如 SceneKit)中,长度单位对于大多数用途来说并不重要。它可以是完全任意的,只要您的单位使用一致,单位的选择和使用就不会影响视觉结果。例如,以下场景看起来都完全相同:
\n\n最重要的是,场景图中的每个节点都可以对其子节点应用比例。因此,您可以将一个立方体的宽度设置为 1.0 单位,并将相机设置为 3.0 单位,并将这两者作为比例为 0.91 的节点的子节点......在这种情况下,即使其他地方还有其他东西在 \xe2\x80\x9c1.0 单位\xe2\x80\x9d 表示一米的场景中,立方体和相机在 \xe2\x80\x9c1.0 单位\xe2\ 上不达成一致x80\x9d 的意思。(对于他们来说,\xe2\x80\x99 是美国码。)因此,SceneKit(和 Xcode\xe2\x80\x99s 场景版本 UI)中的大多数基于长度的属性都不会\xe2\x80\x99 标记其单位,因为它们的单位是相对于其父节点的(可能是任意的)比例。
\n\n有几个地方场景空间单位的含义开始变得重要:
\n\n如果您开始使用物理模拟。当质量、力、能量和摩擦力开始介入时,长度单位和其他量的单位之间的关系就变得很重要。物理引擎的其余部分(质量、力、冲量)使用 SI 单位(千克、牛顿、牛顿秒),因此为了简单起见,我们假设长度(以及扩展后的面积、体积和速度)也是如此。
如果您需要渲染场景以使结果看起来与另一个 3D 空间对齐,如 AR 或 VR 中。与 ARKit 一起使用时,SceneKit 长度/距离以米为单位,因此渲染的图像看起来就像 ARKit 测量的现实世界一样。
所以,是的,\xe2\x80\x94,你从 Apple 得到的答案是正确的......在最广泛的用例中,\xe2\x80\x99 最好假设 SceneKit 空间的未标记单位是米,并且设计因此。但重要的是要知道为什么,以及何时应用该假设以及何时它只是一个任意假设。
\n