首页 > 解决方案 > 如何更改 SCNParticleSystem 中粒子的亮度?

问题描述

我一直在尝试调整 SCNParticleSystem 中粒子的亮度,但一直没能找到办法。我找到了一种使用particleColorVariation 改变亮度变化的方法,但这并没有达到我想要的效果。有没有人有办法解决吗?

标签: swiftscenekitaugmented-realityarkitmetal

解决方案


您可以通过particleColor更改新生成粒子颜色的实例属性来实现。混合模式必须是alpha.

用我的代码测试它:

let particleSystem = SCNParticleSystem()
particleSystem.birthRate = 300
particleSystem.particleSize = 0.025

particleSystem.particleColor = UIColor(hue: 0.57, 
                                saturation: 0.87, 
                                brightness: 0.92,    // USE THIS PROPERTY
                                     alpha: 1)
particleSystem.blendMode = .alpha
particleSystem.emittingDirection = .init(1,1,1)
particleSystem.emitterShape = .init(SCNSphere(radius: 3))
particleSystem.particleLifeSpan = 0.5

let particlesNode = SCNNode()
particlesNode.position = SCNVector3(0,3,0)
particlesNode.addParticleSystem(particleSystem)
scene.rootNode.addChildNode(particlesNode)

推荐阅读