class_lightmapgi.rst 40 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759
  1. :github_url: hide
  2. .. DO NOT EDIT THIS FILE!!!
  3. .. Generated automatically from Godot engine sources.
  4. .. Generator: https://github.com/godotengine/godot/tree/master/doc/tools/make_rst.py.
  5. .. XML source: https://github.com/godotengine/godot/tree/master/doc/classes/LightmapGI.xml.
  6. .. _class_LightmapGI:
  7. LightmapGI
  8. ==========
  9. **Inherits:** :ref:`VisualInstance3D<class_VisualInstance3D>` **<** :ref:`Node3D<class_Node3D>` **<** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
  10. Computes and stores baked lightmaps for fast global illumination.
  11. .. rst-class:: classref-introduction-group
  12. Description
  13. -----------
  14. The **LightmapGI** node is used to compute and store baked lightmaps. Lightmaps are used to provide high-quality indirect lighting with very little light leaking. **LightmapGI** can also provide rough reflections using spherical harmonics if :ref:`directional<class_LightmapGI_property_directional>` is enabled. Dynamic objects can receive indirect lighting thanks to *light probes*, which can be automatically placed by setting :ref:`generate_probes_subdiv<class_LightmapGI_property_generate_probes_subdiv>` to a value other than :ref:`GENERATE_PROBES_DISABLED<class_LightmapGI_constant_GENERATE_PROBES_DISABLED>`. Additional lightmap probes can also be added by creating :ref:`LightmapProbe<class_LightmapProbe>` nodes. The downside is that lightmaps are fully static and cannot be baked in an exported project. Baking a **LightmapGI** node is also slower compared to :ref:`VoxelGI<class_VoxelGI>`.
  15. \ **Procedural generation:** Lightmap baking functionality is only available in the editor. This means **LightmapGI** is not suited to procedurally generated or user-built levels. For procedurally generated or user-built levels, use :ref:`VoxelGI<class_VoxelGI>` or SDFGI instead (see :ref:`Environment.sdfgi_enabled<class_Environment_property_sdfgi_enabled>`).
  16. \ **Performance:** **LightmapGI** provides the best possible run-time performance for global illumination. It is suitable for low-end hardware including integrated graphics and mobile devices.
  17. \ **Note:** Due to how lightmaps work, most properties only have a visible effect once lightmaps are baked again.
  18. \ **Note:** Lightmap baking on :ref:`CSGShape3D<class_CSGShape3D>`\ s and :ref:`PrimitiveMesh<class_PrimitiveMesh>`\ es is not supported, as these cannot store UV2 data required for baking.
  19. \ **Note:** If no custom lightmappers are installed, **LightmapGI** can only be baked from devices that support the Forward+ or Mobile renderers.
  20. \ **Note:** The **LightmapGI** node only bakes light data for child nodes of its parent. Nodes further up the hierarchy of the scene will not be baked.
  21. .. rst-class:: classref-introduction-group
  22. Tutorials
  23. ---------
  24. - :doc:`Using Lightmap global illumination <../tutorials/3d/global_illumination/using_lightmap_gi>`
  25. .. rst-class:: classref-reftable-group
  26. Properties
  27. ----------
  28. .. table::
  29. :widths: auto
  30. +-----------------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+
  31. | :ref:`float<class_float>` | :ref:`bias<class_LightmapGI_property_bias>` | ``0.0005`` |
  32. +-----------------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+
  33. | :ref:`float<class_float>` | :ref:`bounce_indirect_energy<class_LightmapGI_property_bounce_indirect_energy>` | ``1.0`` |
  34. +-----------------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+
  35. | :ref:`int<class_int>` | :ref:`bounces<class_LightmapGI_property_bounces>` | ``3`` |
  36. +-----------------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+
  37. | :ref:`CameraAttributes<class_CameraAttributes>` | :ref:`camera_attributes<class_LightmapGI_property_camera_attributes>` | |
  38. +-----------------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+
  39. | :ref:`int<class_int>` | :ref:`denoiser_range<class_LightmapGI_property_denoiser_range>` | ``10`` |
  40. +-----------------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+
  41. | :ref:`float<class_float>` | :ref:`denoiser_strength<class_LightmapGI_property_denoiser_strength>` | ``0.1`` |
  42. +-----------------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+
  43. | :ref:`bool<class_bool>` | :ref:`directional<class_LightmapGI_property_directional>` | ``false`` |
  44. +-----------------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+
  45. | :ref:`Color<class_Color>` | :ref:`environment_custom_color<class_LightmapGI_property_environment_custom_color>` | ``Color(1, 1, 1, 1)`` |
  46. +-----------------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+
  47. | :ref:`float<class_float>` | :ref:`environment_custom_energy<class_LightmapGI_property_environment_custom_energy>` | ``1.0`` |
  48. +-----------------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+
  49. | :ref:`Sky<class_Sky>` | :ref:`environment_custom_sky<class_LightmapGI_property_environment_custom_sky>` | |
  50. +-----------------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+
  51. | :ref:`EnvironmentMode<enum_LightmapGI_EnvironmentMode>` | :ref:`environment_mode<class_LightmapGI_property_environment_mode>` | ``1`` |
  52. +-----------------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+
  53. | :ref:`GenerateProbes<enum_LightmapGI_GenerateProbes>` | :ref:`generate_probes_subdiv<class_LightmapGI_property_generate_probes_subdiv>` | ``2`` |
  54. +-----------------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+
  55. | :ref:`bool<class_bool>` | :ref:`interior<class_LightmapGI_property_interior>` | ``false`` |
  56. +-----------------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+
  57. | :ref:`LightmapGIData<class_LightmapGIData>` | :ref:`light_data<class_LightmapGI_property_light_data>` | |
  58. +-----------------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+
  59. | :ref:`int<class_int>` | :ref:`max_texture_size<class_LightmapGI_property_max_texture_size>` | ``16384`` |
  60. +-----------------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+
  61. | :ref:`BakeQuality<enum_LightmapGI_BakeQuality>` | :ref:`quality<class_LightmapGI_property_quality>` | ``1`` |
  62. +-----------------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+
  63. | :ref:`ShadowmaskMode<enum_LightmapGIData_ShadowmaskMode>` | :ref:`shadowmask_mode<class_LightmapGI_property_shadowmask_mode>` | ``0`` |
  64. +-----------------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+
  65. | :ref:`bool<class_bool>` | :ref:`supersampling<class_LightmapGI_property_supersampling>` | ``false`` |
  66. +-----------------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+
  67. | :ref:`float<class_float>` | :ref:`supersampling_factor<class_LightmapGI_property_supersampling_factor>` | ``2.0`` |
  68. +-----------------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+
  69. | :ref:`float<class_float>` | :ref:`texel_scale<class_LightmapGI_property_texel_scale>` | ``1.0`` |
  70. +-----------------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+
  71. | :ref:`bool<class_bool>` | :ref:`use_denoiser<class_LightmapGI_property_use_denoiser>` | ``true`` |
  72. +-----------------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+
  73. | :ref:`bool<class_bool>` | :ref:`use_texture_for_bounces<class_LightmapGI_property_use_texture_for_bounces>` | ``true`` |
  74. +-----------------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+
  75. .. rst-class:: classref-section-separator
  76. ----
  77. .. rst-class:: classref-descriptions-group
  78. Enumerations
  79. ------------
  80. .. _enum_LightmapGI_BakeQuality:
  81. .. rst-class:: classref-enumeration
  82. enum **BakeQuality**: :ref:`🔗<enum_LightmapGI_BakeQuality>`
  83. .. _class_LightmapGI_constant_BAKE_QUALITY_LOW:
  84. .. rst-class:: classref-enumeration-constant
  85. :ref:`BakeQuality<enum_LightmapGI_BakeQuality>` **BAKE_QUALITY_LOW** = ``0``
  86. Low bake quality (fastest bake times). The quality of this preset can be adjusted by changing :ref:`ProjectSettings.rendering/lightmapping/bake_quality/low_quality_ray_count<class_ProjectSettings_property_rendering/lightmapping/bake_quality/low_quality_ray_count>` and :ref:`ProjectSettings.rendering/lightmapping/bake_quality/low_quality_probe_ray_count<class_ProjectSettings_property_rendering/lightmapping/bake_quality/low_quality_probe_ray_count>`.
  87. .. _class_LightmapGI_constant_BAKE_QUALITY_MEDIUM:
  88. .. rst-class:: classref-enumeration-constant
  89. :ref:`BakeQuality<enum_LightmapGI_BakeQuality>` **BAKE_QUALITY_MEDIUM** = ``1``
  90. Medium bake quality (fast bake times). The quality of this preset can be adjusted by changing :ref:`ProjectSettings.rendering/lightmapping/bake_quality/medium_quality_ray_count<class_ProjectSettings_property_rendering/lightmapping/bake_quality/medium_quality_ray_count>` and :ref:`ProjectSettings.rendering/lightmapping/bake_quality/medium_quality_probe_ray_count<class_ProjectSettings_property_rendering/lightmapping/bake_quality/medium_quality_probe_ray_count>`.
  91. .. _class_LightmapGI_constant_BAKE_QUALITY_HIGH:
  92. .. rst-class:: classref-enumeration-constant
  93. :ref:`BakeQuality<enum_LightmapGI_BakeQuality>` **BAKE_QUALITY_HIGH** = ``2``
  94. High bake quality (slow bake times). The quality of this preset can be adjusted by changing :ref:`ProjectSettings.rendering/lightmapping/bake_quality/high_quality_ray_count<class_ProjectSettings_property_rendering/lightmapping/bake_quality/high_quality_ray_count>` and :ref:`ProjectSettings.rendering/lightmapping/bake_quality/high_quality_probe_ray_count<class_ProjectSettings_property_rendering/lightmapping/bake_quality/high_quality_probe_ray_count>`.
  95. .. _class_LightmapGI_constant_BAKE_QUALITY_ULTRA:
  96. .. rst-class:: classref-enumeration-constant
  97. :ref:`BakeQuality<enum_LightmapGI_BakeQuality>` **BAKE_QUALITY_ULTRA** = ``3``
  98. Highest bake quality (slowest bake times). The quality of this preset can be adjusted by changing :ref:`ProjectSettings.rendering/lightmapping/bake_quality/ultra_quality_ray_count<class_ProjectSettings_property_rendering/lightmapping/bake_quality/ultra_quality_ray_count>` and :ref:`ProjectSettings.rendering/lightmapping/bake_quality/ultra_quality_probe_ray_count<class_ProjectSettings_property_rendering/lightmapping/bake_quality/ultra_quality_probe_ray_count>`.
  99. .. rst-class:: classref-item-separator
  100. ----
  101. .. _enum_LightmapGI_GenerateProbes:
  102. .. rst-class:: classref-enumeration
  103. enum **GenerateProbes**: :ref:`🔗<enum_LightmapGI_GenerateProbes>`
  104. .. _class_LightmapGI_constant_GENERATE_PROBES_DISABLED:
  105. .. rst-class:: classref-enumeration-constant
  106. :ref:`GenerateProbes<enum_LightmapGI_GenerateProbes>` **GENERATE_PROBES_DISABLED** = ``0``
  107. Don't generate lightmap probes for lighting dynamic objects.
  108. .. _class_LightmapGI_constant_GENERATE_PROBES_SUBDIV_4:
  109. .. rst-class:: classref-enumeration-constant
  110. :ref:`GenerateProbes<enum_LightmapGI_GenerateProbes>` **GENERATE_PROBES_SUBDIV_4** = ``1``
  111. Lowest level of subdivision (fastest bake times, smallest file sizes).
  112. .. _class_LightmapGI_constant_GENERATE_PROBES_SUBDIV_8:
  113. .. rst-class:: classref-enumeration-constant
  114. :ref:`GenerateProbes<enum_LightmapGI_GenerateProbes>` **GENERATE_PROBES_SUBDIV_8** = ``2``
  115. Low level of subdivision (fast bake times, small file sizes).
  116. .. _class_LightmapGI_constant_GENERATE_PROBES_SUBDIV_16:
  117. .. rst-class:: classref-enumeration-constant
  118. :ref:`GenerateProbes<enum_LightmapGI_GenerateProbes>` **GENERATE_PROBES_SUBDIV_16** = ``3``
  119. High level of subdivision (slow bake times, large file sizes).
  120. .. _class_LightmapGI_constant_GENERATE_PROBES_SUBDIV_32:
  121. .. rst-class:: classref-enumeration-constant
  122. :ref:`GenerateProbes<enum_LightmapGI_GenerateProbes>` **GENERATE_PROBES_SUBDIV_32** = ``4``
  123. Highest level of subdivision (slowest bake times, largest file sizes).
  124. .. rst-class:: classref-item-separator
  125. ----
  126. .. _enum_LightmapGI_BakeError:
  127. .. rst-class:: classref-enumeration
  128. enum **BakeError**: :ref:`🔗<enum_LightmapGI_BakeError>`
  129. .. _class_LightmapGI_constant_BAKE_ERROR_OK:
  130. .. rst-class:: classref-enumeration-constant
  131. :ref:`BakeError<enum_LightmapGI_BakeError>` **BAKE_ERROR_OK** = ``0``
  132. Lightmap baking was successful.
  133. .. _class_LightmapGI_constant_BAKE_ERROR_NO_SCENE_ROOT:
  134. .. rst-class:: classref-enumeration-constant
  135. :ref:`BakeError<enum_LightmapGI_BakeError>` **BAKE_ERROR_NO_SCENE_ROOT** = ``1``
  136. Lightmap baking failed because the root node for the edited scene could not be accessed.
  137. .. _class_LightmapGI_constant_BAKE_ERROR_FOREIGN_DATA:
  138. .. rst-class:: classref-enumeration-constant
  139. :ref:`BakeError<enum_LightmapGI_BakeError>` **BAKE_ERROR_FOREIGN_DATA** = ``2``
  140. Lightmap baking failed as the lightmap data resource is embedded in a foreign resource.
  141. .. _class_LightmapGI_constant_BAKE_ERROR_NO_LIGHTMAPPER:
  142. .. rst-class:: classref-enumeration-constant
  143. :ref:`BakeError<enum_LightmapGI_BakeError>` **BAKE_ERROR_NO_LIGHTMAPPER** = ``3``
  144. Lightmap baking failed as there is no lightmapper available in this Godot build.
  145. .. _class_LightmapGI_constant_BAKE_ERROR_NO_SAVE_PATH:
  146. .. rst-class:: classref-enumeration-constant
  147. :ref:`BakeError<enum_LightmapGI_BakeError>` **BAKE_ERROR_NO_SAVE_PATH** = ``4``
  148. Lightmap baking failed as the :ref:`LightmapGIData<class_LightmapGIData>` save path isn't configured in the resource.
  149. .. _class_LightmapGI_constant_BAKE_ERROR_NO_MESHES:
  150. .. rst-class:: classref-enumeration-constant
  151. :ref:`BakeError<enum_LightmapGI_BakeError>` **BAKE_ERROR_NO_MESHES** = ``5``
  152. Lightmap baking failed as there are no meshes whose :ref:`GeometryInstance3D.gi_mode<class_GeometryInstance3D_property_gi_mode>` is :ref:`GeometryInstance3D.GI_MODE_STATIC<class_GeometryInstance3D_constant_GI_MODE_STATIC>` and with valid UV2 mapping in the current scene. You may need to select 3D scenes in the Import dock and change their global illumination mode accordingly.
  153. .. _class_LightmapGI_constant_BAKE_ERROR_MESHES_INVALID:
  154. .. rst-class:: classref-enumeration-constant
  155. :ref:`BakeError<enum_LightmapGI_BakeError>` **BAKE_ERROR_MESHES_INVALID** = ``6``
  156. Lightmap baking failed as the lightmapper failed to analyze some of the meshes marked as static for baking.
  157. .. _class_LightmapGI_constant_BAKE_ERROR_CANT_CREATE_IMAGE:
  158. .. rst-class:: classref-enumeration-constant
  159. :ref:`BakeError<enum_LightmapGI_BakeError>` **BAKE_ERROR_CANT_CREATE_IMAGE** = ``7``
  160. Lightmap baking failed as the resulting image couldn't be saved or imported by Godot after it was saved.
  161. .. _class_LightmapGI_constant_BAKE_ERROR_USER_ABORTED:
  162. .. rst-class:: classref-enumeration-constant
  163. :ref:`BakeError<enum_LightmapGI_BakeError>` **BAKE_ERROR_USER_ABORTED** = ``8``
  164. The user aborted the lightmap baking operation (typically by clicking the **Cancel** button in the progress dialog).
  165. .. _class_LightmapGI_constant_BAKE_ERROR_TEXTURE_SIZE_TOO_SMALL:
  166. .. rst-class:: classref-enumeration-constant
  167. :ref:`BakeError<enum_LightmapGI_BakeError>` **BAKE_ERROR_TEXTURE_SIZE_TOO_SMALL** = ``9``
  168. Lightmap baking failed as the maximum texture size is too small to fit some of the meshes marked for baking.
  169. .. _class_LightmapGI_constant_BAKE_ERROR_LIGHTMAP_TOO_SMALL:
  170. .. rst-class:: classref-enumeration-constant
  171. :ref:`BakeError<enum_LightmapGI_BakeError>` **BAKE_ERROR_LIGHTMAP_TOO_SMALL** = ``10``
  172. Lightmap baking failed as the lightmap is too small.
  173. .. _class_LightmapGI_constant_BAKE_ERROR_ATLAS_TOO_SMALL:
  174. .. rst-class:: classref-enumeration-constant
  175. :ref:`BakeError<enum_LightmapGI_BakeError>` **BAKE_ERROR_ATLAS_TOO_SMALL** = ``11``
  176. Lightmap baking failed as the lightmap was unable to fit into an atlas.
  177. .. rst-class:: classref-item-separator
  178. ----
  179. .. _enum_LightmapGI_EnvironmentMode:
  180. .. rst-class:: classref-enumeration
  181. enum **EnvironmentMode**: :ref:`🔗<enum_LightmapGI_EnvironmentMode>`
  182. .. _class_LightmapGI_constant_ENVIRONMENT_MODE_DISABLED:
  183. .. rst-class:: classref-enumeration-constant
  184. :ref:`EnvironmentMode<enum_LightmapGI_EnvironmentMode>` **ENVIRONMENT_MODE_DISABLED** = ``0``
  185. Ignore environment lighting when baking lightmaps.
  186. .. _class_LightmapGI_constant_ENVIRONMENT_MODE_SCENE:
  187. .. rst-class:: classref-enumeration-constant
  188. :ref:`EnvironmentMode<enum_LightmapGI_EnvironmentMode>` **ENVIRONMENT_MODE_SCENE** = ``1``
  189. Use the scene's environment lighting when baking lightmaps.
  190. \ **Note:** If baking lightmaps in a scene with no :ref:`WorldEnvironment<class_WorldEnvironment>` node, this will act like :ref:`ENVIRONMENT_MODE_DISABLED<class_LightmapGI_constant_ENVIRONMENT_MODE_DISABLED>`. The editor's preview sky and sun is *not* taken into account by **LightmapGI** when baking lightmaps.
  191. .. _class_LightmapGI_constant_ENVIRONMENT_MODE_CUSTOM_SKY:
  192. .. rst-class:: classref-enumeration-constant
  193. :ref:`EnvironmentMode<enum_LightmapGI_EnvironmentMode>` **ENVIRONMENT_MODE_CUSTOM_SKY** = ``2``
  194. Use :ref:`environment_custom_sky<class_LightmapGI_property_environment_custom_sky>` as a source of environment lighting when baking lightmaps.
  195. .. _class_LightmapGI_constant_ENVIRONMENT_MODE_CUSTOM_COLOR:
  196. .. rst-class:: classref-enumeration-constant
  197. :ref:`EnvironmentMode<enum_LightmapGI_EnvironmentMode>` **ENVIRONMENT_MODE_CUSTOM_COLOR** = ``3``
  198. Use :ref:`environment_custom_color<class_LightmapGI_property_environment_custom_color>` multiplied by :ref:`environment_custom_energy<class_LightmapGI_property_environment_custom_energy>` as a constant source of environment lighting when baking lightmaps.
  199. .. rst-class:: classref-section-separator
  200. ----
  201. .. rst-class:: classref-descriptions-group
  202. Property Descriptions
  203. ---------------------
  204. .. _class_LightmapGI_property_bias:
  205. .. rst-class:: classref-property
  206. :ref:`float<class_float>` **bias** = ``0.0005`` :ref:`🔗<class_LightmapGI_property_bias>`
  207. .. rst-class:: classref-property-setget
  208. - |void| **set_bias**\ (\ value\: :ref:`float<class_float>`\ )
  209. - :ref:`float<class_float>` **get_bias**\ (\ )
  210. The bias to use when computing shadows. Increasing :ref:`bias<class_LightmapGI_property_bias>` can fix shadow acne on the resulting baked lightmap, but can introduce peter-panning (shadows not connecting to their casters). Real-time :ref:`Light3D<class_Light3D>` shadows are not affected by this :ref:`bias<class_LightmapGI_property_bias>` property.
  211. .. rst-class:: classref-item-separator
  212. ----
  213. .. _class_LightmapGI_property_bounce_indirect_energy:
  214. .. rst-class:: classref-property
  215. :ref:`float<class_float>` **bounce_indirect_energy** = ``1.0`` :ref:`🔗<class_LightmapGI_property_bounce_indirect_energy>`
  216. .. rst-class:: classref-property-setget
  217. - |void| **set_bounce_indirect_energy**\ (\ value\: :ref:`float<class_float>`\ )
  218. - :ref:`float<class_float>` **get_bounce_indirect_energy**\ (\ )
  219. The energy multiplier for each bounce. Higher values will make indirect lighting brighter. A value of ``1.0`` represents physically accurate behavior, but higher values can be used to make indirect lighting propagate more visibly when using a low number of bounces. This can be used to speed up bake times by lowering the number of :ref:`bounces<class_LightmapGI_property_bounces>` then increasing :ref:`bounce_indirect_energy<class_LightmapGI_property_bounce_indirect_energy>`.
  220. \ **Note:** :ref:`bounce_indirect_energy<class_LightmapGI_property_bounce_indirect_energy>` only has an effect if :ref:`bounces<class_LightmapGI_property_bounces>` is set to a value greater than or equal to ``1``.
  221. .. rst-class:: classref-item-separator
  222. ----
  223. .. _class_LightmapGI_property_bounces:
  224. .. rst-class:: classref-property
  225. :ref:`int<class_int>` **bounces** = ``3`` :ref:`🔗<class_LightmapGI_property_bounces>`
  226. .. rst-class:: classref-property-setget
  227. - |void| **set_bounces**\ (\ value\: :ref:`int<class_int>`\ )
  228. - :ref:`int<class_int>` **get_bounces**\ (\ )
  229. Number of light bounces that are taken into account during baking. Higher values result in brighter, more realistic lighting, at the cost of longer bake times. If set to ``0``, only environment lighting, direct light and emissive lighting is baked.
  230. .. rst-class:: classref-item-separator
  231. ----
  232. .. _class_LightmapGI_property_camera_attributes:
  233. .. rst-class:: classref-property
  234. :ref:`CameraAttributes<class_CameraAttributes>` **camera_attributes** :ref:`🔗<class_LightmapGI_property_camera_attributes>`
  235. .. rst-class:: classref-property-setget
  236. - |void| **set_camera_attributes**\ (\ value\: :ref:`CameraAttributes<class_CameraAttributes>`\ )
  237. - :ref:`CameraAttributes<class_CameraAttributes>` **get_camera_attributes**\ (\ )
  238. The :ref:`CameraAttributes<class_CameraAttributes>` resource that specifies exposure levels to bake at. Auto-exposure and non exposure properties will be ignored. Exposure settings should be used to reduce the dynamic range present when baking. If exposure is too high, the **LightmapGI** will have banding artifacts or may have over-exposure artifacts.
  239. .. rst-class:: classref-item-separator
  240. ----
  241. .. _class_LightmapGI_property_denoiser_range:
  242. .. rst-class:: classref-property
  243. :ref:`int<class_int>` **denoiser_range** = ``10`` :ref:`🔗<class_LightmapGI_property_denoiser_range>`
  244. .. rst-class:: classref-property-setget
  245. - |void| **set_denoiser_range**\ (\ value\: :ref:`int<class_int>`\ )
  246. - :ref:`int<class_int>` **get_denoiser_range**\ (\ )
  247. The distance in pixels from which the denoiser samples. Lower values preserve more details, but may give blotchy results if the lightmap quality is not high enough. Only effective if :ref:`use_denoiser<class_LightmapGI_property_use_denoiser>` is ``true`` and :ref:`ProjectSettings.rendering/lightmapping/denoising/denoiser<class_ProjectSettings_property_rendering/lightmapping/denoising/denoiser>` is set to JNLM.
  248. .. rst-class:: classref-item-separator
  249. ----
  250. .. _class_LightmapGI_property_denoiser_strength:
  251. .. rst-class:: classref-property
  252. :ref:`float<class_float>` **denoiser_strength** = ``0.1`` :ref:`🔗<class_LightmapGI_property_denoiser_strength>`
  253. .. rst-class:: classref-property-setget
  254. - |void| **set_denoiser_strength**\ (\ value\: :ref:`float<class_float>`\ )
  255. - :ref:`float<class_float>` **get_denoiser_strength**\ (\ )
  256. The strength of denoising step applied to the generated lightmaps. Only effective if :ref:`use_denoiser<class_LightmapGI_property_use_denoiser>` is ``true`` and :ref:`ProjectSettings.rendering/lightmapping/denoising/denoiser<class_ProjectSettings_property_rendering/lightmapping/denoising/denoiser>` is set to JNLM.
  257. .. rst-class:: classref-item-separator
  258. ----
  259. .. _class_LightmapGI_property_directional:
  260. .. rst-class:: classref-property
  261. :ref:`bool<class_bool>` **directional** = ``false`` :ref:`🔗<class_LightmapGI_property_directional>`
  262. .. rst-class:: classref-property-setget
  263. - |void| **set_directional**\ (\ value\: :ref:`bool<class_bool>`\ )
  264. - :ref:`bool<class_bool>` **is_directional**\ (\ )
  265. If ``true``, bakes lightmaps to contain directional information as spherical harmonics. This results in more realistic lighting appearance, especially with normal mapped materials and for lights that have their direct light baked (:ref:`Light3D.light_bake_mode<class_Light3D_property_light_bake_mode>` set to :ref:`Light3D.BAKE_STATIC<class_Light3D_constant_BAKE_STATIC>` and with :ref:`Light3D.editor_only<class_Light3D_property_editor_only>` set to ``false``). The directional information is also used to provide rough reflections for static and dynamic objects. This has a small run-time performance cost as the shader has to perform more work to interpret the direction information from the lightmap. Directional lightmaps also take longer to bake and result in larger file sizes.
  266. \ **Note:** The property's name has no relationship with :ref:`DirectionalLight3D<class_DirectionalLight3D>`. :ref:`directional<class_LightmapGI_property_directional>` works with all light types.
  267. .. rst-class:: classref-item-separator
  268. ----
  269. .. _class_LightmapGI_property_environment_custom_color:
  270. .. rst-class:: classref-property
  271. :ref:`Color<class_Color>` **environment_custom_color** = ``Color(1, 1, 1, 1)`` :ref:`🔗<class_LightmapGI_property_environment_custom_color>`
  272. .. rst-class:: classref-property-setget
  273. - |void| **set_environment_custom_color**\ (\ value\: :ref:`Color<class_Color>`\ )
  274. - :ref:`Color<class_Color>` **get_environment_custom_color**\ (\ )
  275. The color to use for environment lighting. Only effective if :ref:`environment_mode<class_LightmapGI_property_environment_mode>` is :ref:`ENVIRONMENT_MODE_CUSTOM_COLOR<class_LightmapGI_constant_ENVIRONMENT_MODE_CUSTOM_COLOR>`.
  276. .. rst-class:: classref-item-separator
  277. ----
  278. .. _class_LightmapGI_property_environment_custom_energy:
  279. .. rst-class:: classref-property
  280. :ref:`float<class_float>` **environment_custom_energy** = ``1.0`` :ref:`🔗<class_LightmapGI_property_environment_custom_energy>`
  281. .. rst-class:: classref-property-setget
  282. - |void| **set_environment_custom_energy**\ (\ value\: :ref:`float<class_float>`\ )
  283. - :ref:`float<class_float>` **get_environment_custom_energy**\ (\ )
  284. The color multiplier to use for environment lighting. Only effective if :ref:`environment_mode<class_LightmapGI_property_environment_mode>` is :ref:`ENVIRONMENT_MODE_CUSTOM_COLOR<class_LightmapGI_constant_ENVIRONMENT_MODE_CUSTOM_COLOR>`.
  285. .. rst-class:: classref-item-separator
  286. ----
  287. .. _class_LightmapGI_property_environment_custom_sky:
  288. .. rst-class:: classref-property
  289. :ref:`Sky<class_Sky>` **environment_custom_sky** :ref:`🔗<class_LightmapGI_property_environment_custom_sky>`
  290. .. rst-class:: classref-property-setget
  291. - |void| **set_environment_custom_sky**\ (\ value\: :ref:`Sky<class_Sky>`\ )
  292. - :ref:`Sky<class_Sky>` **get_environment_custom_sky**\ (\ )
  293. The sky to use as a source of environment lighting. Only effective if :ref:`environment_mode<class_LightmapGI_property_environment_mode>` is :ref:`ENVIRONMENT_MODE_CUSTOM_SKY<class_LightmapGI_constant_ENVIRONMENT_MODE_CUSTOM_SKY>`.
  294. .. rst-class:: classref-item-separator
  295. ----
  296. .. _class_LightmapGI_property_environment_mode:
  297. .. rst-class:: classref-property
  298. :ref:`EnvironmentMode<enum_LightmapGI_EnvironmentMode>` **environment_mode** = ``1`` :ref:`🔗<class_LightmapGI_property_environment_mode>`
  299. .. rst-class:: classref-property-setget
  300. - |void| **set_environment_mode**\ (\ value\: :ref:`EnvironmentMode<enum_LightmapGI_EnvironmentMode>`\ )
  301. - :ref:`EnvironmentMode<enum_LightmapGI_EnvironmentMode>` **get_environment_mode**\ (\ )
  302. The environment mode to use when baking lightmaps.
  303. .. rst-class:: classref-item-separator
  304. ----
  305. .. _class_LightmapGI_property_generate_probes_subdiv:
  306. .. rst-class:: classref-property
  307. :ref:`GenerateProbes<enum_LightmapGI_GenerateProbes>` **generate_probes_subdiv** = ``2`` :ref:`🔗<class_LightmapGI_property_generate_probes_subdiv>`
  308. .. rst-class:: classref-property-setget
  309. - |void| **set_generate_probes**\ (\ value\: :ref:`GenerateProbes<enum_LightmapGI_GenerateProbes>`\ )
  310. - :ref:`GenerateProbes<enum_LightmapGI_GenerateProbes>` **get_generate_probes**\ (\ )
  311. The level of subdivision to use when automatically generating :ref:`LightmapProbe<class_LightmapProbe>`\ s for dynamic object lighting. Higher values result in more accurate indirect lighting on dynamic objects, at the cost of longer bake times and larger file sizes.
  312. \ **Note:** Automatically generated :ref:`LightmapProbe<class_LightmapProbe>`\ s are not visible as nodes in the Scene tree dock, and cannot be modified this way after they are generated.
  313. \ **Note:** Regardless of :ref:`generate_probes_subdiv<class_LightmapGI_property_generate_probes_subdiv>`, direct lighting on dynamic objects is always applied using :ref:`Light3D<class_Light3D>` nodes in real-time.
  314. .. rst-class:: classref-item-separator
  315. ----
  316. .. _class_LightmapGI_property_interior:
  317. .. rst-class:: classref-property
  318. :ref:`bool<class_bool>` **interior** = ``false`` :ref:`🔗<class_LightmapGI_property_interior>`
  319. .. rst-class:: classref-property-setget
  320. - |void| **set_interior**\ (\ value\: :ref:`bool<class_bool>`\ )
  321. - :ref:`bool<class_bool>` **is_interior**\ (\ )
  322. If ``true``, ignore environment lighting when baking lightmaps.
  323. .. rst-class:: classref-item-separator
  324. ----
  325. .. _class_LightmapGI_property_light_data:
  326. .. rst-class:: classref-property
  327. :ref:`LightmapGIData<class_LightmapGIData>` **light_data** :ref:`🔗<class_LightmapGI_property_light_data>`
  328. .. rst-class:: classref-property-setget
  329. - |void| **set_light_data**\ (\ value\: :ref:`LightmapGIData<class_LightmapGIData>`\ )
  330. - :ref:`LightmapGIData<class_LightmapGIData>` **get_light_data**\ (\ )
  331. The :ref:`LightmapGIData<class_LightmapGIData>` associated to this **LightmapGI** node. This resource is automatically created after baking, and is not meant to be created manually.
  332. .. rst-class:: classref-item-separator
  333. ----
  334. .. _class_LightmapGI_property_max_texture_size:
  335. .. rst-class:: classref-property
  336. :ref:`int<class_int>` **max_texture_size** = ``16384`` :ref:`🔗<class_LightmapGI_property_max_texture_size>`
  337. .. rst-class:: classref-property-setget
  338. - |void| **set_max_texture_size**\ (\ value\: :ref:`int<class_int>`\ )
  339. - :ref:`int<class_int>` **get_max_texture_size**\ (\ )
  340. The maximum texture size for the generated texture atlas. Higher values will result in fewer slices being generated, but may not work on all hardware as a result of hardware limitations on texture sizes. Leave :ref:`max_texture_size<class_LightmapGI_property_max_texture_size>` at its default value of ``16384`` if unsure.
  341. .. rst-class:: classref-item-separator
  342. ----
  343. .. _class_LightmapGI_property_quality:
  344. .. rst-class:: classref-property
  345. :ref:`BakeQuality<enum_LightmapGI_BakeQuality>` **quality** = ``1`` :ref:`🔗<class_LightmapGI_property_quality>`
  346. .. rst-class:: classref-property-setget
  347. - |void| **set_bake_quality**\ (\ value\: :ref:`BakeQuality<enum_LightmapGI_BakeQuality>`\ )
  348. - :ref:`BakeQuality<enum_LightmapGI_BakeQuality>` **get_bake_quality**\ (\ )
  349. The quality preset to use when baking lightmaps. This affects bake times, but output file sizes remain mostly identical across quality levels.
  350. To further speed up bake times, decrease :ref:`bounces<class_LightmapGI_property_bounces>`, disable :ref:`use_denoiser<class_LightmapGI_property_use_denoiser>` and/or decrease :ref:`texel_scale<class_LightmapGI_property_texel_scale>`.
  351. To further increase quality, enable :ref:`supersampling<class_LightmapGI_property_supersampling>` and/or increase :ref:`texel_scale<class_LightmapGI_property_texel_scale>`.
  352. .. rst-class:: classref-item-separator
  353. ----
  354. .. _class_LightmapGI_property_shadowmask_mode:
  355. .. rst-class:: classref-property
  356. :ref:`ShadowmaskMode<enum_LightmapGIData_ShadowmaskMode>` **shadowmask_mode** = ``0`` :ref:`🔗<class_LightmapGI_property_shadowmask_mode>`
  357. .. rst-class:: classref-property-setget
  358. - |void| **set_shadowmask_mode**\ (\ value\: :ref:`ShadowmaskMode<enum_LightmapGIData_ShadowmaskMode>`\ )
  359. - :ref:`ShadowmaskMode<enum_LightmapGIData_ShadowmaskMode>` **get_shadowmask_mode**\ (\ )
  360. **Experimental:** This property may be changed or removed in future versions.
  361. The shadowmasking policy to use for directional shadows on static objects that are baked with this **LightmapGI** instance.
  362. Shadowmasking allows :ref:`DirectionalLight3D<class_DirectionalLight3D>` nodes to cast shadows even outside the range defined by their :ref:`DirectionalLight3D.directional_shadow_max_distance<class_DirectionalLight3D_property_directional_shadow_max_distance>` property. This is done by baking a texture that contains a shadowmap for the directional light, then using this texture according to the current shadowmask mode.
  363. \ **Note:** The shadowmask texture is only created if :ref:`shadowmask_mode<class_LightmapGI_property_shadowmask_mode>` is not :ref:`LightmapGIData.SHADOWMASK_MODE_NONE<class_LightmapGIData_constant_SHADOWMASK_MODE_NONE>`. To see a difference, you need to bake lightmaps again after switching from :ref:`LightmapGIData.SHADOWMASK_MODE_NONE<class_LightmapGIData_constant_SHADOWMASK_MODE_NONE>` to any other mode.
  364. .. rst-class:: classref-item-separator
  365. ----
  366. .. _class_LightmapGI_property_supersampling:
  367. .. rst-class:: classref-property
  368. :ref:`bool<class_bool>` **supersampling** = ``false`` :ref:`🔗<class_LightmapGI_property_supersampling>`
  369. .. rst-class:: classref-property-setget
  370. - |void| **set_supersampling_enabled**\ (\ value\: :ref:`bool<class_bool>`\ )
  371. - :ref:`bool<class_bool>` **is_supersampling_enabled**\ (\ )
  372. If ``true``, lightmaps are baked with the texel scale multiplied with :ref:`supersampling_factor<class_LightmapGI_property_supersampling_factor>` and downsampled before saving the lightmap (so the effective texel density is identical to having supersampling disabled).
  373. Supersampling provides increased lightmap quality with less noise, smoother shadows and better shadowing of small-scale features in objects. However, it may result in significantly increased bake times and memory usage while baking lightmaps. Padding is automatically adjusted to avoid increasing light leaking.
  374. .. rst-class:: classref-item-separator
  375. ----
  376. .. _class_LightmapGI_property_supersampling_factor:
  377. .. rst-class:: classref-property
  378. :ref:`float<class_float>` **supersampling_factor** = ``2.0`` :ref:`🔗<class_LightmapGI_property_supersampling_factor>`
  379. .. rst-class:: classref-property-setget
  380. - |void| **set_supersampling_factor**\ (\ value\: :ref:`float<class_float>`\ )
  381. - :ref:`float<class_float>` **get_supersampling_factor**\ (\ )
  382. The factor by which the texel density is multiplied for supersampling. For best results, use an integer value. While fractional values are allowed, they can result in increased light leaking and a blurry lightmap.
  383. Higher values may result in better quality, but also increase bake times and memory usage while baking.
  384. See :ref:`supersampling<class_LightmapGI_property_supersampling>` for more information.
  385. .. rst-class:: classref-item-separator
  386. ----
  387. .. _class_LightmapGI_property_texel_scale:
  388. .. rst-class:: classref-property
  389. :ref:`float<class_float>` **texel_scale** = ``1.0`` :ref:`🔗<class_LightmapGI_property_texel_scale>`
  390. .. rst-class:: classref-property-setget
  391. - |void| **set_texel_scale**\ (\ value\: :ref:`float<class_float>`\ )
  392. - :ref:`float<class_float>` **get_texel_scale**\ (\ )
  393. Scales the lightmap texel density of all meshes for the current bake. This is a multiplier that builds upon the existing lightmap texel size defined in each imported 3D scene, along with the per-mesh density multiplier (which is designed to be used when the same mesh is used at different scales). Lower values will result in faster bake times.
  394. For example, doubling :ref:`texel_scale<class_LightmapGI_property_texel_scale>` doubles the lightmap texture resolution for all objects *on each axis*, so it will *quadruple* the texel count.
  395. .. rst-class:: classref-item-separator
  396. ----
  397. .. _class_LightmapGI_property_use_denoiser:
  398. .. rst-class:: classref-property
  399. :ref:`bool<class_bool>` **use_denoiser** = ``true`` :ref:`🔗<class_LightmapGI_property_use_denoiser>`
  400. .. rst-class:: classref-property-setget
  401. - |void| **set_use_denoiser**\ (\ value\: :ref:`bool<class_bool>`\ )
  402. - :ref:`bool<class_bool>` **is_using_denoiser**\ (\ )
  403. If ``true``, uses a GPU-based denoising algorithm on the generated lightmap. This eliminates most noise within the generated lightmap at the cost of longer bake times. File sizes are generally not impacted significantly by the use of a denoiser, although lossless compression may do a better job at compressing a denoised image.
  404. .. rst-class:: classref-item-separator
  405. ----
  406. .. _class_LightmapGI_property_use_texture_for_bounces:
  407. .. rst-class:: classref-property
  408. :ref:`bool<class_bool>` **use_texture_for_bounces** = ``true`` :ref:`🔗<class_LightmapGI_property_use_texture_for_bounces>`
  409. .. rst-class:: classref-property-setget
  410. - |void| **set_use_texture_for_bounces**\ (\ value\: :ref:`bool<class_bool>`\ )
  411. - :ref:`bool<class_bool>` **is_using_texture_for_bounces**\ (\ )
  412. If ``true``, a texture with the lighting information will be generated to speed up the generation of indirect lighting at the cost of some accuracy. The geometry might exhibit extra light leak artifacts when using low resolution lightmaps or UVs that stretch the lightmap significantly across surfaces. Leave :ref:`use_texture_for_bounces<class_LightmapGI_property_use_texture_for_bounces>` at its default value of ``true`` if unsure.
  413. \ **Note:** :ref:`use_texture_for_bounces<class_LightmapGI_property_use_texture_for_bounces>` only has an effect if :ref:`bounces<class_LightmapGI_property_bounces>` is set to a value greater than or equal to ``1``.
  414. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
  415. .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
  416. .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
  417. .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
  418. .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`
  419. .. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`
  420. .. |bitfield| replace:: :abbr:`BitField (This value is an integer composed as a bitmask of the following flags.)`
  421. .. |void| replace:: :abbr:`void (No return value.)`