Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
OmniLight3D
继承: Light3D < VisualInstance3D < Node3D < Node < Object
全向光,如灯泡或蜡烛。
描述
全向光是 Light3D 的一类,可以向所有方向发射光。光随距离而衰减,该衰减可以通过修改其能量、半径和衰减参数来配置。
注意:使用移动渲染方式时,每个网格资源上只能显示 8 个全向灯。尝试在单个网格资源上显示 8 个以上的全向灯,将导致全向灯随着相机移动而闪烁。使用 Compatibility 渲染方式时,默认情况下每个网格资源上只能显示 8 个全向灯,但可以通过调整 ProjectSettings.rendering/limits/opengl/max_lights_per_object 来增加。
注意:当使用 Mobile 或 Compatibility 渲染方法时,全向灯只会正确影响可见性 AABB 与该灯光的 AABB 相交的网格。如果使用了着色器将网格进行了变形,超出了 AABB 的范围,则必须将该网格的 GeometryInstance3D.extra_cull_margin 增大。否则灯光在该网格上可能不可见。
教程
属性
light_specular |
|
|
|
||
|
||
|
||
shadow_normal_bias |
|
枚举
enum ShadowMode: 🔗
ShadowMode SHADOW_DUAL_PARABOLOID = 0
将阴影渲染到双抛物面纹理。比 SHADOW_CUBE 更快,但质量较差。
ShadowMode SHADOW_CUBE = 1
将阴影渲染至立方体贴图。比 SHADOW_DUAL_PARABOLOID 更慢,但质量更高。
属性说明
float omni_attenuation = 1.0
🔗
控制全向灯的距离衰减函数。
值为 0.0
将在大部分范围内保持恒定亮度,但会平滑地衰减范围边缘的光线。对于物理上准确的灯光,请使用值 2.0
,因为它会产生正确的平方反比衰减。
注意:将衰减设置为 2.0
或更高可能会导致远处的物体接收到的光线最少,即使在范围内也是如此。例如,在 4096
的范围内,100
单位处的物体会衰减 0.0001
倍。默认亮度为 1
,光线在该距离处不可见。
注意:使用负值或高于 10.0
的值可能会导致意外结果。
该灯光的半径。请注意,根据使用的 omni_attenuation,有效照明区域可能看起来更小。无论使用 omni_attenuation 为何值,光线永远不会到达该半径之外的任何地方。
注意:omni_range 不受 Node3D.scale(无论是该灯光的缩放还是其父节点的缩放)的影响。
ShadowMode omni_shadow_mode = 1
🔗
void set_shadow_mode(value: ShadowMode)
ShadowMode get_shadow_mode()
见 ShadowMode。