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
灯光的衰减(衰减)曲线。通过右键点击曲线,可以在属性检查器中使用许多预设。允许零值和负值,但会产生不寻常的效果。
注意:如果灯光使用更大的 omni_range 进行补偿,非常高的 omni_attenuation 值(通常高于 10)则可能会对性能产生负面影响。这是因为剔除机会将变得不那么常见,并且着色成本将增加(因为光线将覆盖屏幕上更多的像素,且同时产生相同的亮度)。要提高性能,请为试图实现的视觉效果使用尽可能低的 omni_attenuation 值。
float omni_range = 5.0
该灯光的半径。请注意,根据使用的 omni_attenuation,有效照明区域可能看起来更小。无论使用 omni_attenuation 为何值,光线永远不会到达该半径之外的任何地方。
注意:omni_range 不受 Node3D.scale(无论是该灯光的缩放还是其父节点的缩放)的影响。
ShadowMode omni_shadow_mode = 1
void set_shadow_mode ( ShadowMode value )
ShadowMode get_shadow_mode ( )
见 ShadowMode。
© 版权所有 2014-present Juan Linietsky, Ariel Manzur and the Godot community (CC BY 3.0). Revision b1c660f7
.
Built with Sphinx using a theme provided by Read the Docs.