SCNLight

2020-08-28  本文已影响0人  AntKing
class SCNLight : NSObject

可以连接到节点以照亮场景的光源。

var type: SCNLight.LightType { get set }

环境光 SCNLightTypeAmbient

这种光的特点,没有方向,位置在无穷远处,光均匀的散射到物体上.

image.png

点光源(SCNLightTypeOmni)

有固定的位置,方向360度,可以衰减

image.png

平行方向光(SCNLightTypeDirectional)
只有照射的方向,没有位置,不会衰减

image.png

聚焦光源(SCNLightTypeSpot)

光源有固定的位置,也有方向,也有照射区域 ,可以衰减

image.png
var color: Any { get set }
光的颜色,可动画的
var temperature: CGFloat { get set }
光源的色温,以开尔文为单位。 可动画的。
SceneKit通过将颜色值乘以对应于光源温度的颜色来确定光源的实际颜色。 默认值为6500 K,代表纯白光(不对颜色进行调制)。 较低的值(最小到零)将为光源添加“较暖”的黄色或橙色效果,较高的值(最大为40000)将添加“较冷的”蓝色效果。

此属性会影响所有光源类型,但是在使用光度学光源(请参见iesProfileURL属性)或基于物理的渲染(请参见physicalallyBased)时特别有用。 您可以将color属性保留为其默认的白色,并使用强度和温度属性通过实际参数控制光。

您可以对此属性的值进行动画处理。 请参见使SceneKit内容动画化。
var intensity: CGFloat { get set }
光通量(以流明为单位)或光的总亮度。 可动画的。
当使用光度学灯光(请参阅iesProfileURL属性)或基于物理的渲染(请参阅physicalallyBased)时,可以将color属性保留为其默认白色,并使用强度和温度使用逼真的参数控制光。 当使用基于物理的材料时,此值会影响光源的光通量。 默认值为1000流明。

如果不使用基于物理的渲染,则此值(除以1000)将用作color属性的乘数。 默认值为1000,使灯光颜色保持未调制状态。 您可以使用较高的值,例如,使颜色已经是最大红色值的灯变亮。

您可以对此属性的值进行动画处理。 请参见使SceneKit内容动画化。
var name: String? { get set }
光的名字,方便我们之后使用的时候查找

管理光衰减

var attenuationStartDistance: CGFloat { get set }
您可以对全向灯和聚光灯应用衰减,以使其强度在指定的距离范围内减小。 在小于起始距离的距离处,光源的照明处于全强度。 在大于结束距离的距离处,光不提供照明。 在开始距离和结束距离之间的距离处,衰减瀑布扩展指数属性定义从完全照明到无照明的过渡。

默认值为0.0,不指定衰减(所有距离的光强度都相同)。
var attenuationEndDistance: CGFloat { get set }
您可以对全向灯和聚光灯应用衰减,以使其强度在指定的距离范围内减小。 在小于起始距离的距离处,光源的照明处于全强度。 在大于结束距离的距离处,光不提供照明。 在开始距离和结束距离之间的距离处,衰减瀑布扩展指数属性定义从完全照明到无照明的过渡。

默认值为0.0,不指定衰减(所有距离的光强度都相同)。
var attenuationFalloffExponent: CGFloat { get set }
您可以对全向灯和聚光灯应用衰减,以使其强度在指定的距离范围内减小。 在开始距离和结束距离之间的距离处,根据此属性的值,光的强度从完全照明过渡到没有照明。

值为0.0表示没有衰减-在所有距离上光的强度都是相同的。 值1.0指定线性过渡,值2.0(默认值)指定二次过渡曲线。 较高的值几乎没有可见效果。
var spotInnerAngle: CGFloat { get set }
聚光灯完全照亮的区域的角度(以度为单位)。 可动画的。
您可以定义聚光灯的锥形照明区域,其位置和方向(从包含光的节点开始)和角度(指定锥形区域的宽度)。 另外,照明区域可以从全照明平稳过渡到无照明。 此属性确定完全照明区域的宽度。

默认值为0.0,指定仅以聚光灯照明由聚光灯照亮的区域的中心。
var spotOuterAngle: CGFloat { get set }
聚光灯部分照亮的区域的角度(以度为单位)。 可动画的
var gobo: SCNMaterialProperty? { get }
会影响照明区域形状和颜色的图像或其他视觉内容。
在摄影和舞台照明术语中,图案框(也称为标记或小甜饼)是模版,凝胶或仅放置在光源前面的其他物体,用于对光束进行整形或着色。

您可以通过更改永久分配给该属性的对象的content属性来更改聚光灯的外观。 与其他材质属性一样,您可以将颜色或图像或包含动画内容的“核心动画”层用作照明图案。

此属性仅适用于其type属性为spot的灯光。
var castsShadow: Bool { get set }
一个布尔值,用于确定灯光是否投射阴影。
var shadowRadius: CGFloat { get set }
一个数字,指定光线投射的阴影边缘周围的模糊量。 可动画的。
SceneKit通过将几何图形的轮廓渲染为2D阴影贴图,然后使用来自阴影贴图的多个加权样本来确定渲染场景中每个像素处的阴影强度,从而生成软边阴影。 此属性控制阴影贴图采样的半径。 较低的数字会导致阴影具有清晰定义的像素化边缘; 较高的数字会导致阴影模糊。
var shadowColor: Any { get set }
阴影的颜色
此属性的值是NSColor或CGColor对象。 SceneKit在渲染的图像中将灯光的颜色与其他颜色混合在一起以产生阴影效果。 颜色的不透明度(alpha值)确定阴影的强度。 默认的阴影颜色是黑色,不透明度为50%。
var shadowMapSize: CGSize { get set }
创建阴影时SceneKit渲染的阴影贴图图像的大小。
var shadowSampleCount: Int { get set }
SceneKit用于渲染每个像素的阴影贴图中的样本数。
SceneKit通过将场景几何的轮廓渲染为2D阴影贴图,然后使用来自阴影贴图的多个加权样本来确定渲染场景中每个像素处的阴影强度,从而生成软边阴影。 此属性控制阴影贴图中用于渲染每个像素的样本数。 数字越高,边缘越平滑; 较低的数字可提高渲染性能。
var shadowMode: SCNShadowMode { get set }
应用于阴影以防止渲染伪影的校正量。
从阴影贴图渲染阴影可能会导致伪影,其中阴影颜色未按预期出现在阴影表面中的所有像素上。 (此效果通常称为阴影痤疮。)此属性指定SceneKit用于纠正此类伪像的错误容限。
var orthographicScale: CGFloat { get set }
当渲染定向光的阴影贴图时,SceneKit使用正投影比例。
var zFar: CGFloat { get set }
灯光与可见阴影之间的最大距离。
var zNear: CGFloat { get set }
灯光与可见阴影之间的最小距离。
上一篇 下一篇

猜你喜欢

热点阅读