<?xml version="1.0" encoding="UTF-8" ?>
<class name="OmniLight" inherits="Light" version="3.8">
	<brief_description>
		Omnidirectional light, such as a light bulb or a candle.
	</brief_description>
	<description>
		An Omnidirectional light is a type of [Light] that emits light in all directions. The light is attenuated by distance and this attenuation can be configured by changing its energy, radius, and attenuation parameters.
		[b]Note:[/b] By default, only 32 OmniLights may affect a single mesh [i]resource[/i] at once. Consider splitting your level into several meshes to decrease the likelihood that more than 32 lights will affect the same mesh resource. Splitting the level mesh will also improve frustum culling effectiveness, leading to greater performance. If you need to use more lights per mesh, you can increase [member ProjectSettings.rendering/limits/rendering/max_lights_per_object] at the cost of shader compilation times.
	</description>
	<tutorials>
		<link>$DOCS_URL/tutorials/3d/lights_and_shadows.html</link>
	</tutorials>
	<methods>
	</methods>
	<members>
		<member name="omni_attenuation" type="float" setter="set_param" getter="get_param" default="1.0">
			The light's attenuation (drop-off) curve. A number of presets are available in the [b]Inspector[/b] by right-clicking the curve.
		</member>
		<member name="omni_range" type="float" setter="set_param" getter="get_param" default="5.0">
			The light's radius. Note that the effectively lit area may appear to be smaller depending on the [member omni_attenuation] in use. No matter the [member omni_attenuation] in use, the light will never reach anything outside this radius.
		</member>
		<member name="omni_shadow_detail" type="int" setter="set_shadow_detail" getter="get_shadow_detail" enum="OmniLight.ShadowDetail" default="1">
			See [enum ShadowDetail].
		</member>
		<member name="omni_shadow_mode" type="int" setter="set_shadow_mode" getter="get_shadow_mode" enum="OmniLight.ShadowMode" default="1">
			The shadow rendering mode to use for this [OmniLight]. See [enum ShadowMode].
			[b]Note:[/b] In GLES2, [constant SHADOW_CUBE] is only supported on GPUs that feature support for depth cubemaps. Old GPUs such as the Radeon HD 4000 series don't support cubemap shadows and will fall back to dual paraboloid shadows as a result.
		</member>
	</members>
	<constants>
		<constant name="SHADOW_DUAL_PARABOLOID" value="0" enum="ShadowMode">
			Shadows are rendered to a dual-paraboloid texture. Faster than [constant SHADOW_CUBE], but lower-quality.
		</constant>
		<constant name="SHADOW_CUBE" value="1" enum="ShadowMode">
			Shadows are rendered to a cubemap. Slower than [constant SHADOW_DUAL_PARABOLOID], but higher-quality.
		</constant>
		<constant name="SHADOW_DETAIL_VERTICAL" value="0" enum="ShadowDetail">
			Use more detail vertically when computing the shadow.
		</constant>
		<constant name="SHADOW_DETAIL_HORIZONTAL" value="1" enum="ShadowDetail">
			Use more detail horizontally when computing the shadow.
		</constant>
	</constants>
</class>
