如何在 swift 中使用 SCNMaterial 创建霓虹灯 material?

How to create a neon material using SCNMaterial in swift?

我一直在试验 SCNMaterials,专注于发射以尝试创建霓虹灯 material。不确定这是否可能,但如果它能发光,那就太好了。谢谢 :)

很简单:

material.emission.contents = [NSColor greenColor];

所有这一切只是让 material 发光。
如果你想让其他物体受到这种霓虹灯的影响,
您可以像这样向您的霓虹灯节点添加一盏灯:

SCNLight *mylight = [SCNLight light];
mylight.type = SCNLightTypeOmni;
mylight.color = [NSColor greenColor];
myNeonNode.light = mylight;

希望对您有所帮助!

注:

灯光的强度可以通过你使用的颜色来控制:
深绿色会显得没有那么强大的绿光
浅绿色会显得更强大的绿光

除了@ProBlaster的回答,你还可以设置发射的intensity,而不仅仅是contents

这对于 动画 一个对象变得越来越发光很有用:从一开始就将 contents 设置为明亮的颜色, 但 强度 为 0:

material.emission.contents = UIColor.white
material.emission.intensity = 0

(这会不会发光)

然后,在动画块中,将强度增加到(比如)1:

SCNTransaction.begin()
    SCNTransaction.animationDuration = 0.5
    SCNTransaction.animationTimingFunction = CAMediaTimingFunction(name: .easeIn)
    
    material.emission.intensity = 1

SCNTransaction.commit()

(不确定您能否在动画块中获得值为 contents 属性 的颜色的“自动插值”,就像您对 float-valued intensity)