如何在场景中缩放自定义对象(dae)?

时间:2017-06-27 15:09:22

标签: ios objective-c xcode scenekit

我可以将自定义对象插入到这样的场景中,

    NSURL *urlToColladaFile = [[NSBundle mainBundle] URLForResource:@"Assets.scnassets/vase-15k_saliency" withExtension:@"dae"];
    SCNSceneSource *sceneSource = [SCNSceneSource sceneSourceWithURL:urlToColladaFile options:nil];
    SCNNode *node = [sceneSource entryWithIdentifier:@"node" withClass:[SCNNode class]];
    node.physicsBody = [SCNPhysicsBody bodyWithType:SCNPhysicsBodyTypeDynamic shape:nil];
    node.physicsBody.mass = 2.0;
    node.physicsBody.categoryBitMask = CollisionCategoryCube;
    node.position = position;
    node.scale = SCNVector3Make(0.1,0.1,0.1);

缩放使对象看起来很小但几何体仍然是原始大小。如何缩放几何体以使对象变大/变小?

我应该使用node.transform吗?或node.pivot?任何指针都很有帮助。

1 个答案:

答案 0 :(得分:0)

添加比例和从比例计算的变换是相同的:

  

转换是节点的组合   旋转,位置和比例属性。默认转换是SCNMatrix4Identity。   设置此属性的值时,节点的旋转,方向,eulerAngles,位置和缩放属性会自动更改以匹配新变换,反之亦然。

pivot属性具有相同的效果,但只有在节点坐标空间及其变换之间需要偏移时才应使用它。

如果你想要一个不同尺寸的几何体,你可以将它以较小的尺寸输出,但这应该会产生相同的效果。 如果由于性能原因需要渲染较少的多边形,请查看SCNLevelOfDetail