Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xcode中的场景编辑器使用什么单位?_Xcode_Scenekit - Fatal编程技术网

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

Xcode中的场景编辑器使用什么单位?,xcode,scenekit,Xcode,Scenekit,Xcode中的场景编辑器显示大小,但不显示单位。它是以英寸为单位的尺寸还是以米为单位的尺寸 例如,当我选择一个节点(例如框)时,当我在节点检查器中检查其属性,并在“边界框”旁边的“变换”区域中检查其大小时,不会显示任何单位 该单位似乎与“语言和地区”首选项窗格(在“高级…”弹出窗口中)中设置的系统度量单位无关,因为当我在“公制”和“US”之间切换度量单位时,节点检查器中的数字不会更改。大小以米为单位表示。请参阅SceneKit文档: SceneKit物理模拟中的所有数值均采用国际单位制(SI)

Xcode中的场景编辑器显示大小,但不显示单位。它是以英寸为单位的尺寸还是以米为单位的尺寸

例如,当我选择一个节点(例如框)时,当我在节点检查器中检查其属性,并在“边界框”旁边的“变换”区域中检查其大小时,不会显示任何单位


该单位似乎与“语言和地区”首选项窗格(在“高级…”弹出窗口中)中设置的系统度量单位无关,因为当我在“公制”和“US”之间切换度量单位时,节点检查器中的数字不会更改。

大小以米为单位表示。请参阅SceneKit文档:

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


你从苹果那里得到的答案有点正确,但也不完整

在3D场景图模型(如SceneKit)中,长度单位在大多数情况下并不重要。它可以是完全任意的,单位的选择和使用对视觉效果没有影响,只要你的单位一直使用。例如,以下场景看起来完全相同:

  • 一个1.0米宽的立方体,距离摄像机3.0米
  • 一个0.1米宽的立方体,距离摄像机0.3米
  • 一个0.91米宽的立方体,距离摄像机2.73米
  • 一个1.0英尺宽的立方体,距离摄像机3.0英尺
  • 一个6.28弗罗布尼茨宽的立方体,距离摄像机18.84弗罗布尼茨(你如何将弗罗布尼茨转换成米?没关系!)
最重要的是,场景图中的每个节点都可以对其子节点应用比例。因此,您可以将一个立方体的宽度设置为1.0个单位,将一个摄影机设置为3.0个单位,并将这两个设置为比例为0.91的节点的子节点。。。在这种情况下,即使场景中其他地方存在“1.0单位”表示一米的情况,立方体和摄影机也不同意“1.0单位”的含义。(对他们来说,这是一个美国码。)因此,SceneKit(和Xcode的scene edition UI)中大多数基于长度的属性都没有标记它们的单位,因为它们的单位相对于其父节点的比例(可能是任意的)

场景空间单元的意义在几个地方开始起作用:

  • 如果你开始使用物理模拟。当涉及到质量、力、能量和摩擦力时,长度单位和其他数量单位之间的关系就变得很重要。物理引擎的其余部分(质量、力、冲量)使用国际单位制(千克、牛顿、牛顿秒),因此为了保持简单,我们假设长度(以及面积、体积和速度)也使用国际单位制

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


  • 所以,是的-你从苹果得到的答案是正确的。。。在最广泛的用例集中,最好假设SceneKit空间的未标记单位为米,并进行相应的设计。但了解原因、假设何时适用以及这只是一个任意的假设很重要。

    从苹果公司得到了关于显示的缺失单位的反馈:“SceneKit中的基本单位始终是仪表,不能更改,因此您可以始终假设情况如此。”