SCNNode形状在SCNScene和.dae视图中丢失或放置错误

时间:2019-12-05 19:07:40

标签: swift xcode macos scnnode

我有一个很大的形状合成Swift程序,它使像这样的问题的孩子成为孩子:

Net([parts:[
    Net(),
    Net([parts:[
        Sphere([size:SCNVector3(0.2,0.2,0.2),color:"yellow"]),
        Sphere([size:SCNVector3(0.2,0.2,0.2),color:"green"]),
    ]]),
]])

并生成一个包含两个部分的网络:一个空的网络和一个具有两个球体的网络,一个黄色的球体和一个绿色的球体。蚊帐的底部为紫色矩形,底部为0.1。它生成的SCNNode树看起来不错。是:

n: ==== 1 SCNNodes per line, children indented:
*-net2  . .                    02 geom:nil
| *-net0  .  p=I[1.0-0.2-0.2]  02 geom:nil
| | s-Net    p=I[y:-0.1]       01 <Box:     -0.2< 0.2, -0.1< 0.1, -0.2< 0.2
| | b-2.-0..                   04 'bBox     -0.2< 0.2, -0.2< 0.2, -0.2< 0.2’ 
| *-net1  .                    02 geom:nil
| | *-sph0   p=I[x: 0.4]       02 geom:nil
| | | s-sphe p=0.20I           01 <Sphere: 'material'  r=1.0> yellow
| | *-sph1                     02 geom:nil 
| | | s-sphe p=0.20I           01 <Sphere: 'material'  r=1.0> green
| | s-Net    p=I[x: 0.2y:-0.3] 01 <Box:     -0.6< 0.6, -0.1< 0.1, -0.4< 0.4
| | b-4.-0..                   04 'bBox     -0.4< 0.8, -0.4< 0.4, -0.4< 0.4'
| s-Net   .  p=I[x: 0.4y:-0.5] 01 <Box:     -1.0< 1.0, -0.1< 0.1, -0.6< 0.6
| b-7.-0...                    04 'bBox     -0.6< 1.4, -0.6< 0.6, -0.6< 0.6’

(“ * -...”节点是视图节点的目标,“ s -...”节点是皮肤,而“ b -...”是边界框。)

    写入 .scn 文件并读回Xcode的
  1. SCNNodes正确显示:(Robbins-egg蓝色是一个原点标记,显示+ -X,+ Y和+ -Z轴。)

.scn: correct apperance

将相同的SCNNodes写入 .dae 并读回Xcode时,绿色球丢失了。 .dae: missing green ball

当在我的应用程序内的SCNScene中显示相同的SCNNodes时,将显示两个球,但是第二个Net的地板显示在原点,而不是向下(向右)移动到Net的底部。

.app

  1. 如果添加了第三个和第四个球,则a).scn文件正确显示,b).dae仅显示第一个球(红色),并且c).app错误地放置地板矩形。

.scn .dae .app

  1. 如果省略了初始的空网,则它可以在a).scn和c).app模式下正确显示,但b).dae与以前一样缺少绿球。

.scn .dae .app

我猜这里有两个错误,一个是在.dae路径中掉落的球,另一个是在.app路径中放置地板矩形的错误。

在macOS上使用最新的Xcode 2019年12月版11.2.1(11B500)

0 个答案:

没有答案