SpotLight3D
继承: Light3D < VisualInstance3D < Node3D < Node < Object
聚光灯,如反射器聚光灯或灯笼。
描述
聚光灯是一种 Light3D 节点,向指定的方向发出圆锥形的灯光。光线会随距离增大而衰减。衰减可以通过修改 Light3D 的能量、半径、衰减参数进行控制。
注意:使用 Mobile 渲染方法时,单个网格资源只能用到 8 盏聚光灯。尝试对单个网格资源使用超过 8 盏聚光灯会导致聚光灯在相机移动时产生闪烁。使用 Compatibility 渲染方法时,单个网格资源默认只能用到 8 盏聚光灯,但可以通过调整 ProjectSettings.rendering/limits/opengl/max_lights_per_object 增加。
注意:使用 Mobile 或 Compatibility 渲染方法时,聚光灯只能影响可见 AABB 与灯光 AABB 相交的网格。如果使用了着色器将网格进行了变形,超出了 AABB 的范围,则必须将该网格的 GeometryInstance3D.extra_cull_margin 增大。否则灯光在该网格上可能不可见。
教程
属性
shadow_bias |
| |
shadow_normal_bias |
| |
| ||
| ||
| ||
|
属性说明
聚光灯的角度,单位为度。
注意:spot_angle 不受 Node3D.scale 的影响(无论是该灯光的缩放还是其父节点的缩放)。
float spot_angle_attenuation = 1.0
🔗
聚光灯的角度衰减曲线。另见 spot_attenuation。
float spot_attenuation = 1.0
🔗
控制聚光灯的距离衰减函数。
值为 0.0
将在大部分范围内保持恒定亮度,但会平滑地衰减范围边缘的光线。对于物理上准确的灯光,请使用值 2.0
,因为它会产生正确的平方反比衰减。
注意:将衰减设置为 2.0
或更高可能会导致远处的物体接收到最少的光线,即使在范围内也是如此。例如,在 4096
的范围内,100
单位处的物体会衰减 0.0001
倍。默认亮度为 1
,光线在该距离处不可见。
注意:使用负值或高于 10.0
的值可能会导致意外结果。
聚光灯可以达到的最大范围。请注意,根据使用的 spot_attenuation,有效照明区域可能看起来更小。无论 spot_attenuation 为何值,光都不会到达此范围之外的任何东西。
注意:spot_angle 不受 Node3D.scale 的影响(无论是该灯光的缩放还是其父节点的缩放)。