如何在 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
)
我一直在试验 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
)