【问题标题】:How to scale a custom object (dae) in a scene?如何在场景中缩放自定义对象(dae)?
【发布时间】:2023-03-26 06:43:01
【问题描述】:

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

    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?请大家多多指教。

【问题讨论】:

    标签: ios objective-c xcode scenekit


    【解决方案1】:

    添加比例和根据比例计算的变换是一样的:

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

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

    如果您想要不同尺寸的几何图形,您可以将其导出为更小的尺寸,但这应该会产生相同的效果。 如果您出于性能原因希望渲染更少的多边形,请查看SCNLevelOfDetail

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-05
      • 2010-09-15
      • 2016-03-01
      相关资源
      最近更新 更多