SceneKit 节点光照

问题描述 投票:0回答:1

我有一个场景套件节点,我想为其添加发光效果。

let newScene = SCNScene(named: "art.scnassets/cubeOne.scn")!
let newNode = (newScene.rootNode.childNode(withName: "cubeOneNode", recursively: false))!

newNode.geometry?.firstMaterial?.selfIllumination = UIColor.red
newNode.geometry?.firstMaterial?.ambientOcclusion = UIColor.red

sceneView.scene.rootNode.addChildNode(newNode)
swift 3d textures scenekit lighting
1个回答
2
投票

您可以通过使用所谓的 CIFilter 并将其附加到您的节点来实现此目的 - 但我个人不推荐这样做,因为它的性能非常高,并且使用了大约三倍的内存。

我建议在您的相机上配置此功能。它还会花费更多的 GPU 性能和一些内存,但不会像 CIFilter 那样多。尝试一下:

camera.wantsHDR                     = true
camera.bloomThreshold               = 0.8
camera.bloomIntensity               = 2
camera.bloomBlurRadius              = 16.0
camera.wantsExposureAdaptation      = false

然后使用节点材质的

emission.intensity
属性。将其设置在
2.0
5.0
之间,具体取决于您希望效果可见的程度。我通常使用
.physicallyBased
照明选项作为我的渲染引擎。

PS:使用红色并不会增加非常强烈的效果。真正强烈的是青色或绿色。使用红色,您可以将

emission.intensity
值提高到
20.0
或更高。

© www.soinside.com 2019 - 2024. All rights reserved.