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 增大。否则灯光在该网格上可能不可见。

教程

属性

float

shadow_bias

0.03 (overrides Light3D)

float

shadow_normal_bias

1.0 (overrides Light3D)

float

spot_angle

45.0

float

spot_angle_attenuation

1.0

float

spot_attenuation

1.0

float

spot_range

5.0


属性说明

float spot_angle = 45.0 🔗

聚光灯的角度,单位为度。

注意: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 的值可能会导致意外结果。


float spot_range = 5.0 🔗

聚光灯可以达到的最大范围。请注意,根据使用的 spot_attenuation,有效照明区域可能看起来更小。无论 spot_attenuation 为何值,光都不会到达此范围之外的任何东西。

注意:spot_angle 不受 Node3D.scale 的影响(无论是该灯光的缩放还是其父节点的缩放)。