gpt4 book ai didi

ios - 无法设置一个 SCNSphere 的初始半径

转载 作者:搜寻专家 更新时间:2023-11-01 07:32:43 24 4
gpt4 key购买 nike

我可以在我的场景中添加 20 个半径为 0.5 的小球体。

但是,当我尝试只添加一个 球体时,无论我指定什么半径,球体都会以默认半径 1.0 出现。

这是我用来添加一个球体的代码。我只是将这段代码放在一个 for 循环中以添加 20 个球体——效果很好。

func drawSpheres() {
var x:Float = 0.0
var radius:CGFloat = 0.5
let sphereGeometry = SCNSphere(radius: radius)
let sphereNode = SCNNode(geometry: sphereGeometry)
sphereNode.position = SCNVector3(x: x, y: 0.0, z: 0.0)
self.rootNode.addChildNode(sphereNode)
}

我是否遗漏了一些明显的东西?

最佳答案

您看到的问题只是 Scene Kit 试图变聪明。一切实际上都按预期工作。

为了能够渲染您的场景,Scene Kit 需要一个相机作为视角。如果您的场景包含相机,那么它会自动成为视点。但是,如果您的场景中没有相机,Scene Kit 必须创建自己的相机(或者无法一起渲染,这不太可取)。当 Scene Kit 创建自己的“默认”视点时,它会尝试适应场景的内容,以便尽可能地填充 View (略微简化)。

这可能是一个不错的小便利,但在您的情况下,这意味着当您将球体变大时,Scene Kit 会调整其视角,以便球体仍然覆盖整个 View 。如果场景中只有一个球体,这意味着您看不到球体半径的任何差异,因为它始终会覆盖整个 View 。

如果您将自己的相机添加到场景中并根据自己的喜好进行配置,您将能够在更改球体半径时看到差异。

关于ios - 无法设置一个 SCNSphere 的初始半径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31546858/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com