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