1

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

4

2 回答 2

5

这很简单:

material.emission.contents = [NSColor greenColor];

所有这一切都是使材料在它自己的光下发光。
如果你想让其他物体受到这个霓虹灯的影响,
你可以像这样向你的霓虹灯节点添加一个灯光:

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

希望有帮助!

笔记:

光的强度可以通过你使用的颜色来控制:
深绿色看起来像一种没有那么强大的绿光。
浅绿色看起来像是更强大的绿灯。

于 2016-05-15T04:07:21.047 回答
0

除了@ProBlaster 的回答,您还可以设置intensity发射的,而不仅仅是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

于 2020-08-19T09:09:02.163 回答