Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.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
Swift SceneKit SCNGEOMETRYSOURCESEMANTICSBONEINDICES几何体源中的骨骼索引是什么?_Swift_Ios8_Scenekit - Fatal编程技术网

Swift SceneKit SCNGEOMETRYSOURCESEMANTICSBONEINDICES几何体源中的骨骼索引是什么?

Swift SceneKit SCNGEOMETRYSOURCESEMANTICSBONEINDICES几何体源中的骨骼索引是什么?,swift,ios8,scenekit,Swift,Ios8,Scenekit,SCNGEOmetrySourceSemanticBoneIndicates源中存储了哪些索引? 文件不明确: 以下是有关SCNSkinner的boneIndices几何体源的文档说明(我正在解析以生成下面的骨骼索引): “讨论 此几何体源的语义属性必须是SCNGEOmetrySourceSemanticBoneIndicates。其数据是一个整数向量数组,每个整数向量对应于boneWeights几何体源中的一个权重向量。向量中的每个分量指定骨骼数组中对应骨骼权重分量的节点索引。” SCNGEO

SCNGEOmetrySourceSemanticBoneIndicates源中存储了哪些索引? 文件不明确:

以下是有关SCNSkinner的boneIndices几何体源的文档说明(我正在解析以生成下面的骨骼索引):

“讨论

此几何体源的语义属性必须是SCNGEOmetrySourceSemanticBoneIndicates。其数据是一个整数向量数组,每个整数向量对应于boneWeights几何体源中的一个权重向量。向量中的每个分量指定骨骼数组中对应骨骼权重分量的节点索引。”

SCNGEOMETRYSOURCESEMANTICBONINDICES的文档说明:

骨骼索引数据的语义,用于蒙皮曲面的骨骼动画

对于几何体源,此语义标识包含几何体中每个顶点的骨骼动画数据的数据。SceneKit使用此信息确定骨骼中哪些骨骼节点影响每个顶点的行为

对于自定义着色器程序,可以使用此语义将SceneKit的骨骼索引数据绑定到着色器的输入属性。”

在我的示例中,网格的skinner的骨骼阵列包含以下11个骨骼:

  • 0:可选(“嘴/头”)
  • 1:可选(“颚板”)
  • 2:可选(“LipLowerL”)
  • 3:可选(“LipLowerR”)
  • 4:可选(“鼻孔”)
  • 5:可选(“LIPUPPEL”)
  • 6:可选(“LIPUPPER”)
  • 7:可选(“LipCorner”)
  • 8:可选(“LipCornell”)
  • 9:可选(“厚脸皮”)
  • 10:可选(“CheekR”)
当我阅读SCNGEOmetrySourceSemanticBoneIndicates source和make时 一本包含所有独特骨指数的字典,我看到 网格确实引用了11个骨骼:

  • 骨指数12:参考文献69
  • 骨指数18:参考文献82
  • 骨指数9:参考文献165
  • 骨指数21:153参考文献
  • 骨指数30:参考文献69
  • 骨指数6:466参考文献
  • 骨指数15:88参考文献
  • 骨指数27:参考文献170
  • 骨指数24:179参考文献
  • 骨指数0:1267参考文献
  • 骨指数3:参考文献201
你会注意到大多数指数都在0-10范围之外,所以 很明显,它们没有索引到斯金纳的骨骼数组中,正如 文件将表明

我认为可能场景将其节点存储在平面阵列中 对于性能,索引在内部进行索引(网格的skinner骨架属性是场景的根节点)

我尝试了对所有节点进行深度优先和广度优先排序 在场景中,从根节点开始,仍然是骨骼索引 在SCNGEOmetrySource中,语义索引没有任何意义——它们
与斯金纳骨骼阵列中的骨骼不对应。从场景中的第一个关节节点开始的两种排序也是如此…

我也想知道我在那里阻止的答案。文件一点也不清楚,这很奇怪。对于我所使用的模型,
boneIndices
源文件中的索引在skinner的
bones
数组的范围内(事实上确实引用了正确的骨骼)。