<?xml version="1.0" encoding="UTF-8" ?>
<class name="BakedLightmap" inherits="VisualInstance" version="3.2">
	<brief_description>
		Prerendered indirect light map for a scene.
	</brief_description>
	<description>
		Baked lightmaps are an alternative workflow for adding indirect (or baked) lighting to a scene. Unlike the [GIProbe] approach, baked lightmaps work fine on low-end PCs and mobile devices as they consume almost no resources in run-time.
		[b]Note:[/b] This node has many known bugs and will be [url=https://godotengine.org/article/godot-40-will-get-new-modernized-lightmapper]rewritten for Godot 4.0[/url]. See [url=https://github.com/godotengine/godot/issues/30929]GitHub issue #30929[/url].
	</description>
	<tutorials>
		<link>https://docs.godotengine.org/en/3.2/tutorials/3d/baked_lightmaps.html</link>
	</tutorials>
	<methods>
		<method name="bake">
			<return type="int" enum="BakedLightmap.BakeError">
			</return>
			<argument index="0" name="from_node" type="Node" default="null">
			</argument>
			<argument index="1" name="data_save_path" type="String" default="&quot;&quot;">
			</argument>
			<description>
				Bakes the lightmap, scanning from the given [code]from_node[/code] root and saves the resulting [BakedLightmapData] in [code]data_save_path[/code]. If no save path is provided it will try to match the path from the current [member light_data].
			</description>
		</method>
	</methods>
	<members>
		<member name="atlas_generate" type="bool" setter="set_generate_atlas" getter="is_generate_atlas_enabled" default="true">
			When enabled, the lightmapper will merge the textures for all meshes into a single large layered texture. Not supported in GLES2.
		</member>
		<member name="atlas_max_size" type="int" setter="set_max_atlas_size" getter="get_max_atlas_size" default="4096">
			Maximum size of each lightmap layer, only used when [member atlas_generate] is enabled.
		</member>
		<member name="bias" type="float" setter="set_bias" getter="get_bias" default="0.005">
			Raycasting bias used during baking to avoid floating point precission issues.
		</member>
		<member name="bounces" type="int" setter="set_bounces" getter="get_bounces" default="3">
			Number of light bounces that are taken into account during baking.
		</member>
		<member name="capture_cell_size" type="float" setter="set_capture_cell_size" getter="get_capture_cell_size" default="0.5">
			Grid size used for real-time capture information on dynamic objects.
		</member>
		<member name="capture_enabled" type="bool" setter="set_capture_enabled" getter="get_capture_enabled" default="true">
			When enabled, an octree containing the scene's lighting information will be computed. This octree will then be used to light dynamic objects in the scene.
		</member>
		<member name="capture_propagation" type="float" setter="set_capture_propagation" getter="get_capture_propagation" default="1.0">
			Bias value to reduce the amount of light proagation in the captured octree.
		</member>
		<member name="capture_quality" type="int" setter="set_capture_quality" getter="get_capture_quality" enum="BakedLightmap.BakeQuality" default="1">
			Bake quality of the capture data.
		</member>
		<member name="default_texels_per_unit" type="float" setter="set_default_texels_per_unit" getter="get_default_texels_per_unit" default="16.0">
			If a baked mesh doesn't have a UV2 size hint, this value will be used to roughly compute a suitable lightmap size.
		</member>
		<member name="environment_custom_color" type="Color" setter="set_environment_custom_color" getter="get_environment_custom_color">
			The environment color when [member environment_mode] is set to [constant ENVIRONMENT_MODE_CUSTOM_COLOR].
		</member>
		<member name="environment_custom_energy" type="float" setter="set_environment_custom_energy" getter="get_environment_custom_energy">
			The energy scaling factor when when [member environment_mode] is set to [constant ENVIRONMENT_MODE_CUSTOM_COLOR] or [constant ENVIRONMENT_MODE_CUSTOM_SKY].
		</member>
		<member name="environment_custom_sky" type="Sky" setter="set_environment_custom_sky" getter="get_environment_custom_sky">
			The [Sky] resource to use when [member environment_mode] is set o [constant ENVIRONMENT_MODE_CUSTOM_SKY].
		</member>
		<member name="environment_custom_sky_rotation_degrees" type="Vector3" setter="set_environment_custom_sky_rotation_degrees" getter="get_environment_custom_sky_rotation_degrees">
			The rotation of the baked custom sky.
		</member>
		<member name="environment_mode" type="int" setter="set_environment_mode" getter="get_environment_mode" enum="BakedLightmap.EnvironmentMode" default="0">
			Decides which environment to use during baking.
		</member>
		<member name="extents" type="Vector3" setter="set_extents" getter="get_extents" default="Vector3( 10, 10, 10 )">
			Size of the baked lightmap. Only meshes inside this region will be included in the baked lightmap, also used as the bounds of the captured region for dynamic lighting.
		</member>
		<member name="image_path" type="String" setter="set_image_path" getter="get_image_path">
			Deprecated, in previous versions it determined the location where lightmaps were be saved.
		</member>
		<member name="light_data" type="BakedLightmapData" setter="set_light_data" getter="get_light_data">
			The calculated light data.
		</member>
		<member name="quality" type="int" setter="set_bake_quality" getter="get_bake_quality" enum="BakedLightmap.BakeQuality" default="1">
			Determines the amount of samples per texel used in indrect light baking. The amount of samples for each quality level can be configured in the project settings.
		</member>
		<member name="use_denoiser" type="bool" setter="set_use_denoiser" getter="is_using_denoiser" default="true">
			When enabled, a lightmap denoiser will be used to reduce the noise inherent to Monte Carlo based global illumination.
		</member>
	</members>
	<constants>
		<constant name="BAKE_QUALITY_LOW" value="0" enum="BakeQuality">
			The lowest bake quality mode. Fastest to calculate.
		</constant>
		<constant name="BAKE_QUALITY_MEDIUM" value="1" enum="BakeQuality">
			The default bake quality mode.
		</constant>
		<constant name="BAKE_QUALITY_HIGH" value="2" enum="BakeQuality">
			A higher bake quality mode. Takes longer to calculate.
		</constant>
		<constant name="BAKE_QUALITY_ULTRA" value="3" enum="BakeQuality">
			The highest bake quality mode. Takes the longest to calculate.
		</constant>
		<constant name="BAKE_ERROR_OK" value="0" enum="BakeError">
			Baking was successful.
		</constant>
		<constant name="BAKE_ERROR_NO_SAVE_PATH" value="1" enum="BakeError">
			Returns if no viable save path is found. This can happen where an [member image_path] is not specified or when the save location is invalid.
		</constant>
		<constant name="BAKE_ERROR_NO_MESHES" value="2" enum="BakeError">
			Currently unused.
		</constant>
		<constant name="BAKE_ERROR_CANT_CREATE_IMAGE" value="3" enum="BakeError">
			Returns when the baker cannot save per-mesh textures to file.
		</constant>
		<constant name="BAKE_ERROR_LIGHTMAP_SIZE" value="4" enum="BakeError">
		The size of the generated lightmaps is too large.
		</constant>
		<constant name="BAKE_ERROR_INVALID_MESH" value="5" enum="BakeError">
		Some mesh contains UV2 values outside the [code][0,1][/code] range.
		</constant>
		<constant name="BAKE_ERROR_USER_ABORTED" value="6" enum="BakeError">
			Returns if user cancels baking.
		</constant>
		<constant name="BAKE_ERROR_NO_LIGHTMAPPER" value="7" enum="BakeError">
		</constant>
		<constant name="ENVIRONMENT_MODE_DISABLED" value="0" enum="EnvironmentMode">
			No environment is used during baking.
		</constant>
		<constant name="ENVIRONMENT_MODE_SCENE" value="1" enum="EnvironmentMode">
			The baked environment is automatically picked from the current scene.
		</constant>
		<constant name="ENVIRONMENT_MODE_CUSTOM_SKY" value="2" enum="EnvironmentMode">
			A custom sky is used as environment during baking.
		</constant>
		<constant name="ENVIRONMENT_MODE_CUSTOM_COLOR" value="3" enum="EnvironmentMode">
			A custom solid color is used as environment during baking.
		</constant>
	</constants>
</class>
