【问题标题】:Modify the Bounding Box Size of 3D model修改 3D 模型的边界框大小
【发布时间】:2016-04-06 18:58:38
【问题描述】:

这个功能应该是在密闭空间中添加一个 3D 模型到屏幕上:

func addCharacter(gridPosition: SCNVector3, levelNode: SCNNode){
    let carScene = SCNScene(named: "assets.scnassets/Models/cube.dae")

    // Create a material using the model_texture.tga image
    let carMaterial = SCNMaterial()
    carMaterial.diffuse.contents = UIImage(named: "assets.scnassets/Textures/model_texture.tga")
    carMaterial.locksAmbientWithDiffuse = false

    // Create a clone of the Car node of the carScene - you need a clone because you need to add many cars
    let carNode = carScene!.rootNode.childNodeWithName("Cube", recursively: false)!.clone() as SCNNode

    carNode.name = "Cube"

    carNode.position = gridPosition

    // Set the material
    carNode.geometry!.firstMaterial = carMaterial

    // Create a physicsbody for collision detection
    let carPhysicsBodyShape = SCNPhysicsShape(geometry: SCNBox(width: 0.30, height: 0.20, length: 0.16, chamferRadius: 0.0), options: nil)

    carNode.physicsBody = SCNPhysicsBody(type: SCNPhysicsBodyType.Kinematic, shape: carPhysicsBodyShape)
    carNode.physicsBody!.categoryBitMask = PhysicsCategory.Car
    carNode.physicsBody!.collisionBitMask = PhysicsCategory.Player

    levelNode.addChildNode(carNode)
}

如果我在将 dae 文件添加到 Xcode 之前更改了 dae 文件的尺寸,则代码可以工作,并且尺寸是指 Xcode 的边界框大小属性。我想知道是否可以直接从 Xcode 更改此边界框大小。从 UI 来看,这似乎是不可能的。有可能用代码吗?或者,更好的是,将对象按比例缩小到 XYZ 的大小在 0.3 -> 0.7 之间?目前,我的对象显示 XYZ 的框大小超过 45。此外,如果我在上面的代码中使用 .scn 文件而不是 .dae 文件,那还能用吗?

编辑: 如果我通过代码更改大小,是否会影响效率?我注意到对于较大的 .dae 模型,fps 从 60 下降到 30,并且游戏速度变慢。

【问题讨论】:

  • 如果我可能会问,在 Xcode 上的 Scenekit 编辑器中将 dae 文件转换为 scn 之前,您是如何更改它的边界框的?我想我可能和你有同样的问题(我转换后的 scn 对象太大了,它没有出现在我的场景中)

标签: ios xcode scenekit


【解决方案1】:

更改carNodescale 属性将减小汽车的外观尺寸。

但是,我认为您可以提前将 .DAE 加载到 Xcode 场景编辑器中。这将允许您提前缩减它(在节点检查器中,option-command-3)。如果需要,您还可以添加纹理。然后将其另存为 .SCN 文件,该文件经过压缩,加载速度应该更快。

无论是在代码中还是在 Xcode 场景编辑器中更改缩放比例都不会影响效率。不过,降低汽车的复杂性(多边形/顶点的数量)会加快速度。

考虑为您的汽车节点创建SCNLevelOfDetail 实例。当节点远离相机时,这将导致渲染器使用替代的、分辨率较低的几何体。 WWDC 2014 幻灯片演示了这一点,幻灯片 38,AAPLSlideLOD.m。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-23
    • 2020-12-08
    • 2023-02-06
    • 2014-07-13
    • 1970-01-01
    • 2013-09-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多