如何增加场景中的照明?

How to increase lighting in scene?

我正在尝试点亮从 Mixamo 下载的基本模型。

let scene = SCNScene(named: "art.scnassets/Ch45_nonPBR.dae")!

// create and add a camera to the scene
let cameraNode = SCNNode()
cameraNode.camera = SCNCamera()
scene.rootNode.addChildNode(cameraNode)

// place the camera
cameraNode.position = SCNVector3(x: 0, y: 40, z: 110)

// create and add a light to the scene
let lightNode = SCNNode()
lightNode.light = SCNLight()
lightNode.light!.type = .omni
lightNode.position = SCNVector3(x: 0, y: 50, z: 50)
scene.rootNode.addChildNode(lightNode)

// create and add an ambient light to the scene
let ambientLightNode = SCNNode()
ambientLightNode.light = SCNLight()
ambientLightNode.light!.type = .ambient
ambientLightNode.light!.color = UIColor.white
scene.rootNode.addChildNode(ambientLightNode)

目前相机离模型太近了。但如果我将 z 值从 110 更改,我看到的都是黑色。我想这与照明有关。即使我将相机的 z 值更改为更高的值以便我可以从远处看到模型,我的照明应该是什么才能看到我的模型?

编辑:例如,现在您可以在这个距离看到,腿的一部分不可见:

如果再远一点,就看不到整个模型了!!

编辑:例如,我如何编辑灯光,使其看起来就像在他们网站上的 Mixamo 预览中一样:

我想将相机移得足够远,以便在屏幕上看到整个模型。

SCNCamera 有一个 zFar 属性,默认值为 100,任何离相机更远的表面都会被剪裁以提高性能。在您的屏幕截图中,腿是模型中距离相机最远的部分,因此首先被剪掉,当您移动得更远时,整个模型都会被剪掉。 您可以将 zFar 增加到适合您的场景的数字。