class_particleprocessmaterial.rst 133 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408
  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/ParticleProcessMaterial.xml.
  6. .. _class_ParticleProcessMaterial:
  7. ParticleProcessMaterial
  8. =======================
  9. **Inherits:** :ref:`Material<class_Material>` **<** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
  10. Holds a particle configuration for :ref:`GPUParticles2D<class_GPUParticles2D>` or :ref:`GPUParticles3D<class_GPUParticles3D>` nodes.
  11. .. rst-class:: classref-introduction-group
  12. Description
  13. -----------
  14. **ParticleProcessMaterial** defines particle properties and behavior. It is used in the ``process_material`` of the :ref:`GPUParticles2D<class_GPUParticles2D>` and :ref:`GPUParticles3D<class_GPUParticles3D>` nodes. Some of this material's properties are applied to each particle when emitted, while others can have a :ref:`CurveTexture<class_CurveTexture>` or a :ref:`GradientTexture1D<class_GradientTexture1D>` applied to vary numerical or color values over the lifetime of the particle.
  15. .. rst-class:: classref-reftable-group
  16. Properties
  17. ----------
  18. .. table::
  19. :widths: auto
  20. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  21. | :ref:`Texture2D<class_Texture2D>` | :ref:`alpha_curve<class_ParticleProcessMaterial_property_alpha_curve>` | |
  22. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  23. | :ref:`Texture2D<class_Texture2D>` | :ref:`angle_curve<class_ParticleProcessMaterial_property_angle_curve>` | |
  24. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  25. | :ref:`float<class_float>` | :ref:`angle_max<class_ParticleProcessMaterial_property_angle_max>` | ``0.0`` |
  26. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  27. | :ref:`float<class_float>` | :ref:`angle_min<class_ParticleProcessMaterial_property_angle_min>` | ``0.0`` |
  28. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  29. | :ref:`Texture2D<class_Texture2D>` | :ref:`angular_velocity_curve<class_ParticleProcessMaterial_property_angular_velocity_curve>` | |
  30. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  31. | :ref:`float<class_float>` | :ref:`angular_velocity_max<class_ParticleProcessMaterial_property_angular_velocity_max>` | ``0.0`` |
  32. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  33. | :ref:`float<class_float>` | :ref:`angular_velocity_min<class_ParticleProcessMaterial_property_angular_velocity_min>` | ``0.0`` |
  34. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  35. | :ref:`Texture2D<class_Texture2D>` | :ref:`anim_offset_curve<class_ParticleProcessMaterial_property_anim_offset_curve>` | |
  36. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  37. | :ref:`float<class_float>` | :ref:`anim_offset_max<class_ParticleProcessMaterial_property_anim_offset_max>` | ``0.0`` |
  38. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  39. | :ref:`float<class_float>` | :ref:`anim_offset_min<class_ParticleProcessMaterial_property_anim_offset_min>` | ``0.0`` |
  40. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  41. | :ref:`Texture2D<class_Texture2D>` | :ref:`anim_speed_curve<class_ParticleProcessMaterial_property_anim_speed_curve>` | |
  42. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  43. | :ref:`float<class_float>` | :ref:`anim_speed_max<class_ParticleProcessMaterial_property_anim_speed_max>` | ``0.0`` |
  44. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  45. | :ref:`float<class_float>` | :ref:`anim_speed_min<class_ParticleProcessMaterial_property_anim_speed_min>` | ``0.0`` |
  46. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  47. | :ref:`bool<class_bool>` | :ref:`attractor_interaction_enabled<class_ParticleProcessMaterial_property_attractor_interaction_enabled>` | ``true`` |
  48. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  49. | :ref:`float<class_float>` | :ref:`collision_bounce<class_ParticleProcessMaterial_property_collision_bounce>` | |
  50. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  51. | :ref:`float<class_float>` | :ref:`collision_friction<class_ParticleProcessMaterial_property_collision_friction>` | |
  52. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  53. | :ref:`CollisionMode<enum_ParticleProcessMaterial_CollisionMode>` | :ref:`collision_mode<class_ParticleProcessMaterial_property_collision_mode>` | ``0`` |
  54. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  55. | :ref:`bool<class_bool>` | :ref:`collision_use_scale<class_ParticleProcessMaterial_property_collision_use_scale>` | ``false`` |
  56. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  57. | :ref:`Color<class_Color>` | :ref:`color<class_ParticleProcessMaterial_property_color>` | ``Color(1, 1, 1, 1)`` |
  58. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  59. | :ref:`Texture2D<class_Texture2D>` | :ref:`color_initial_ramp<class_ParticleProcessMaterial_property_color_initial_ramp>` | |
  60. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  61. | :ref:`Texture2D<class_Texture2D>` | :ref:`color_ramp<class_ParticleProcessMaterial_property_color_ramp>` | |
  62. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  63. | :ref:`Texture2D<class_Texture2D>` | :ref:`damping_curve<class_ParticleProcessMaterial_property_damping_curve>` | |
  64. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  65. | :ref:`float<class_float>` | :ref:`damping_max<class_ParticleProcessMaterial_property_damping_max>` | ``0.0`` |
  66. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  67. | :ref:`float<class_float>` | :ref:`damping_min<class_ParticleProcessMaterial_property_damping_min>` | ``0.0`` |
  68. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  69. | :ref:`Vector3<class_Vector3>` | :ref:`direction<class_ParticleProcessMaterial_property_direction>` | ``Vector3(1, 0, 0)`` |
  70. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  71. | :ref:`Texture2D<class_Texture2D>` | :ref:`directional_velocity_curve<class_ParticleProcessMaterial_property_directional_velocity_curve>` | |
  72. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  73. | :ref:`float<class_float>` | :ref:`directional_velocity_max<class_ParticleProcessMaterial_property_directional_velocity_max>` | |
  74. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  75. | :ref:`float<class_float>` | :ref:`directional_velocity_min<class_ParticleProcessMaterial_property_directional_velocity_min>` | |
  76. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  77. | :ref:`Vector3<class_Vector3>` | :ref:`emission_box_extents<class_ParticleProcessMaterial_property_emission_box_extents>` | |
  78. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  79. | :ref:`Texture2D<class_Texture2D>` | :ref:`emission_color_texture<class_ParticleProcessMaterial_property_emission_color_texture>` | |
  80. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  81. | :ref:`Texture2D<class_Texture2D>` | :ref:`emission_curve<class_ParticleProcessMaterial_property_emission_curve>` | |
  82. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  83. | :ref:`Texture2D<class_Texture2D>` | :ref:`emission_normal_texture<class_ParticleProcessMaterial_property_emission_normal_texture>` | |
  84. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  85. | :ref:`int<class_int>` | :ref:`emission_point_count<class_ParticleProcessMaterial_property_emission_point_count>` | |
  86. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  87. | :ref:`Texture2D<class_Texture2D>` | :ref:`emission_point_texture<class_ParticleProcessMaterial_property_emission_point_texture>` | |
  88. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  89. | :ref:`Vector3<class_Vector3>` | :ref:`emission_ring_axis<class_ParticleProcessMaterial_property_emission_ring_axis>` | |
  90. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  91. | :ref:`float<class_float>` | :ref:`emission_ring_height<class_ParticleProcessMaterial_property_emission_ring_height>` | |
  92. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  93. | :ref:`float<class_float>` | :ref:`emission_ring_inner_radius<class_ParticleProcessMaterial_property_emission_ring_inner_radius>` | |
  94. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  95. | :ref:`float<class_float>` | :ref:`emission_ring_radius<class_ParticleProcessMaterial_property_emission_ring_radius>` | |
  96. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  97. | :ref:`EmissionShape<enum_ParticleProcessMaterial_EmissionShape>` | :ref:`emission_shape<class_ParticleProcessMaterial_property_emission_shape>` | ``0`` |
  98. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  99. | :ref:`Vector3<class_Vector3>` | :ref:`emission_shape_offset<class_ParticleProcessMaterial_property_emission_shape_offset>` | ``Vector3(0, 0, 0)`` |
  100. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  101. | :ref:`Vector3<class_Vector3>` | :ref:`emission_shape_scale<class_ParticleProcessMaterial_property_emission_shape_scale>` | ``Vector3(1, 1, 1)`` |
  102. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  103. | :ref:`float<class_float>` | :ref:`emission_sphere_radius<class_ParticleProcessMaterial_property_emission_sphere_radius>` | |
  104. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  105. | :ref:`float<class_float>` | :ref:`flatness<class_ParticleProcessMaterial_property_flatness>` | ``0.0`` |
  106. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  107. | :ref:`Vector3<class_Vector3>` | :ref:`gravity<class_ParticleProcessMaterial_property_gravity>` | ``Vector3(0, -9.8, 0)`` |
  108. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  109. | :ref:`Texture2D<class_Texture2D>` | :ref:`hue_variation_curve<class_ParticleProcessMaterial_property_hue_variation_curve>` | |
  110. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  111. | :ref:`float<class_float>` | :ref:`hue_variation_max<class_ParticleProcessMaterial_property_hue_variation_max>` | ``0.0`` |
  112. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  113. | :ref:`float<class_float>` | :ref:`hue_variation_min<class_ParticleProcessMaterial_property_hue_variation_min>` | ``0.0`` |
  114. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  115. | :ref:`float<class_float>` | :ref:`inherit_velocity_ratio<class_ParticleProcessMaterial_property_inherit_velocity_ratio>` | ``0.0`` |
  116. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  117. | :ref:`float<class_float>` | :ref:`initial_velocity_max<class_ParticleProcessMaterial_property_initial_velocity_max>` | ``0.0`` |
  118. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  119. | :ref:`float<class_float>` | :ref:`initial_velocity_min<class_ParticleProcessMaterial_property_initial_velocity_min>` | ``0.0`` |
  120. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  121. | :ref:`float<class_float>` | :ref:`lifetime_randomness<class_ParticleProcessMaterial_property_lifetime_randomness>` | ``0.0`` |
  122. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  123. | :ref:`Texture2D<class_Texture2D>` | :ref:`linear_accel_curve<class_ParticleProcessMaterial_property_linear_accel_curve>` | |
  124. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  125. | :ref:`float<class_float>` | :ref:`linear_accel_max<class_ParticleProcessMaterial_property_linear_accel_max>` | ``0.0`` |
  126. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  127. | :ref:`float<class_float>` | :ref:`linear_accel_min<class_ParticleProcessMaterial_property_linear_accel_min>` | ``0.0`` |
  128. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  129. | :ref:`Texture2D<class_Texture2D>` | :ref:`orbit_velocity_curve<class_ParticleProcessMaterial_property_orbit_velocity_curve>` | |
  130. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  131. | :ref:`float<class_float>` | :ref:`orbit_velocity_max<class_ParticleProcessMaterial_property_orbit_velocity_max>` | ``0.0`` |
  132. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  133. | :ref:`float<class_float>` | :ref:`orbit_velocity_min<class_ParticleProcessMaterial_property_orbit_velocity_min>` | ``0.0`` |
  134. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  135. | :ref:`bool<class_bool>` | :ref:`particle_flag_align_y<class_ParticleProcessMaterial_property_particle_flag_align_y>` | ``false`` |
  136. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  137. | :ref:`bool<class_bool>` | :ref:`particle_flag_damping_as_friction<class_ParticleProcessMaterial_property_particle_flag_damping_as_friction>` | ``false`` |
  138. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  139. | :ref:`bool<class_bool>` | :ref:`particle_flag_disable_z<class_ParticleProcessMaterial_property_particle_flag_disable_z>` | ``false`` |
  140. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  141. | :ref:`bool<class_bool>` | :ref:`particle_flag_rotate_y<class_ParticleProcessMaterial_property_particle_flag_rotate_y>` | ``false`` |
  142. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  143. | :ref:`Texture2D<class_Texture2D>` | :ref:`radial_accel_curve<class_ParticleProcessMaterial_property_radial_accel_curve>` | |
  144. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  145. | :ref:`float<class_float>` | :ref:`radial_accel_max<class_ParticleProcessMaterial_property_radial_accel_max>` | ``0.0`` |
  146. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  147. | :ref:`float<class_float>` | :ref:`radial_accel_min<class_ParticleProcessMaterial_property_radial_accel_min>` | ``0.0`` |
  148. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  149. | :ref:`Texture2D<class_Texture2D>` | :ref:`radial_velocity_curve<class_ParticleProcessMaterial_property_radial_velocity_curve>` | |
  150. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  151. | :ref:`float<class_float>` | :ref:`radial_velocity_max<class_ParticleProcessMaterial_property_radial_velocity_max>` | ``0.0`` |
  152. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  153. | :ref:`float<class_float>` | :ref:`radial_velocity_min<class_ParticleProcessMaterial_property_radial_velocity_min>` | ``0.0`` |
  154. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  155. | :ref:`Texture2D<class_Texture2D>` | :ref:`scale_curve<class_ParticleProcessMaterial_property_scale_curve>` | |
  156. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  157. | :ref:`float<class_float>` | :ref:`scale_max<class_ParticleProcessMaterial_property_scale_max>` | ``1.0`` |
  158. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  159. | :ref:`float<class_float>` | :ref:`scale_min<class_ParticleProcessMaterial_property_scale_min>` | ``1.0`` |
  160. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  161. | :ref:`Texture2D<class_Texture2D>` | :ref:`scale_over_velocity_curve<class_ParticleProcessMaterial_property_scale_over_velocity_curve>` | |
  162. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  163. | :ref:`float<class_float>` | :ref:`scale_over_velocity_max<class_ParticleProcessMaterial_property_scale_over_velocity_max>` | ``0.0`` |
  164. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  165. | :ref:`float<class_float>` | :ref:`scale_over_velocity_min<class_ParticleProcessMaterial_property_scale_over_velocity_min>` | ``0.0`` |
  166. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  167. | :ref:`float<class_float>` | :ref:`spread<class_ParticleProcessMaterial_property_spread>` | ``45.0`` |
  168. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  169. | :ref:`int<class_int>` | :ref:`sub_emitter_amount_at_collision<class_ParticleProcessMaterial_property_sub_emitter_amount_at_collision>` | |
  170. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  171. | :ref:`int<class_int>` | :ref:`sub_emitter_amount_at_end<class_ParticleProcessMaterial_property_sub_emitter_amount_at_end>` | |
  172. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  173. | :ref:`float<class_float>` | :ref:`sub_emitter_frequency<class_ParticleProcessMaterial_property_sub_emitter_frequency>` | |
  174. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  175. | :ref:`bool<class_bool>` | :ref:`sub_emitter_keep_velocity<class_ParticleProcessMaterial_property_sub_emitter_keep_velocity>` | ``false`` |
  176. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  177. | :ref:`SubEmitterMode<enum_ParticleProcessMaterial_SubEmitterMode>` | :ref:`sub_emitter_mode<class_ParticleProcessMaterial_property_sub_emitter_mode>` | ``0`` |
  178. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  179. | :ref:`Texture2D<class_Texture2D>` | :ref:`tangential_accel_curve<class_ParticleProcessMaterial_property_tangential_accel_curve>` | |
  180. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  181. | :ref:`float<class_float>` | :ref:`tangential_accel_max<class_ParticleProcessMaterial_property_tangential_accel_max>` | ``0.0`` |
  182. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  183. | :ref:`float<class_float>` | :ref:`tangential_accel_min<class_ParticleProcessMaterial_property_tangential_accel_min>` | ``0.0`` |
  184. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  185. | :ref:`bool<class_bool>` | :ref:`turbulence_enabled<class_ParticleProcessMaterial_property_turbulence_enabled>` | ``false`` |
  186. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  187. | :ref:`float<class_float>` | :ref:`turbulence_influence_max<class_ParticleProcessMaterial_property_turbulence_influence_max>` | ``0.1`` |
  188. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  189. | :ref:`float<class_float>` | :ref:`turbulence_influence_min<class_ParticleProcessMaterial_property_turbulence_influence_min>` | ``0.1`` |
  190. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  191. | :ref:`Texture2D<class_Texture2D>` | :ref:`turbulence_influence_over_life<class_ParticleProcessMaterial_property_turbulence_influence_over_life>` | |
  192. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  193. | :ref:`float<class_float>` | :ref:`turbulence_initial_displacement_max<class_ParticleProcessMaterial_property_turbulence_initial_displacement_max>` | ``0.0`` |
  194. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  195. | :ref:`float<class_float>` | :ref:`turbulence_initial_displacement_min<class_ParticleProcessMaterial_property_turbulence_initial_displacement_min>` | ``0.0`` |
  196. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  197. | :ref:`float<class_float>` | :ref:`turbulence_noise_scale<class_ParticleProcessMaterial_property_turbulence_noise_scale>` | ``9.0`` |
  198. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  199. | :ref:`Vector3<class_Vector3>` | :ref:`turbulence_noise_speed<class_ParticleProcessMaterial_property_turbulence_noise_speed>` | ``Vector3(0, 0, 0)`` |
  200. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  201. | :ref:`float<class_float>` | :ref:`turbulence_noise_speed_random<class_ParticleProcessMaterial_property_turbulence_noise_speed_random>` | ``0.2`` |
  202. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  203. | :ref:`float<class_float>` | :ref:`turbulence_noise_strength<class_ParticleProcessMaterial_property_turbulence_noise_strength>` | ``1.0`` |
  204. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  205. | :ref:`Texture2D<class_Texture2D>` | :ref:`velocity_limit_curve<class_ParticleProcessMaterial_property_velocity_limit_curve>` | |
  206. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  207. | :ref:`Vector3<class_Vector3>` | :ref:`velocity_pivot<class_ParticleProcessMaterial_property_velocity_pivot>` | ``Vector3(0, 0, 0)`` |
  208. +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+
  209. .. rst-class:: classref-reftable-group
  210. Methods
  211. -------
  212. .. table::
  213. :widths: auto
  214. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  215. | :ref:`float<class_float>` | :ref:`get_param_max<class_ParticleProcessMaterial_method_get_param_max>` **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const| |
  216. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  217. | :ref:`float<class_float>` | :ref:`get_param_min<class_ParticleProcessMaterial_method_get_param_min>` **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const| |
  218. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  219. | :ref:`Texture2D<class_Texture2D>` | :ref:`get_param_texture<class_ParticleProcessMaterial_method_get_param_texture>` **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const| |
  220. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  221. | :ref:`bool<class_bool>` | :ref:`get_particle_flag<class_ParticleProcessMaterial_method_get_particle_flag>` **(** :ref:`ParticleFlags<enum_ParticleProcessMaterial_ParticleFlags>` particle_flag **)** |const| |
  222. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  223. | void | :ref:`set_param_max<class_ParticleProcessMaterial_method_set_param_max>` **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)** |
  224. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  225. | void | :ref:`set_param_min<class_ParticleProcessMaterial_method_set_param_min>` **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)** |
  226. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  227. | void | :ref:`set_param_texture<class_ParticleProcessMaterial_method_set_param_texture>` **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`Texture2D<class_Texture2D>` texture **)** |
  228. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  229. | void | :ref:`set_particle_flag<class_ParticleProcessMaterial_method_set_particle_flag>` **(** :ref:`ParticleFlags<enum_ParticleProcessMaterial_ParticleFlags>` particle_flag, :ref:`bool<class_bool>` enable **)** |
  230. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  231. .. rst-class:: classref-section-separator
  232. ----
  233. .. rst-class:: classref-descriptions-group
  234. Enumerations
  235. ------------
  236. .. _enum_ParticleProcessMaterial_Parameter:
  237. .. rst-class:: classref-enumeration
  238. enum **Parameter**:
  239. .. _class_ParticleProcessMaterial_constant_PARAM_INITIAL_LINEAR_VELOCITY:
  240. .. rst-class:: classref-enumeration-constant
  241. :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` **PARAM_INITIAL_LINEAR_VELOCITY** = ``0``
  242. Use with :ref:`set_param_min<class_ParticleProcessMaterial_method_set_param_min>`, :ref:`set_param_max<class_ParticleProcessMaterial_method_set_param_max>`, and :ref:`set_param_texture<class_ParticleProcessMaterial_method_set_param_texture>` to set initial velocity properties.
  243. .. _class_ParticleProcessMaterial_constant_PARAM_ANGULAR_VELOCITY:
  244. .. rst-class:: classref-enumeration-constant
  245. :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` **PARAM_ANGULAR_VELOCITY** = ``1``
  246. Use with :ref:`set_param_min<class_ParticleProcessMaterial_method_set_param_min>`, :ref:`set_param_max<class_ParticleProcessMaterial_method_set_param_max>`, and :ref:`set_param_texture<class_ParticleProcessMaterial_method_set_param_texture>` to set angular velocity properties.
  247. .. _class_ParticleProcessMaterial_constant_PARAM_ORBIT_VELOCITY:
  248. .. rst-class:: classref-enumeration-constant
  249. :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` **PARAM_ORBIT_VELOCITY** = ``2``
  250. Use with :ref:`set_param_min<class_ParticleProcessMaterial_method_set_param_min>`, :ref:`set_param_max<class_ParticleProcessMaterial_method_set_param_max>`, and :ref:`set_param_texture<class_ParticleProcessMaterial_method_set_param_texture>` to set orbital velocity properties.
  251. .. _class_ParticleProcessMaterial_constant_PARAM_LINEAR_ACCEL:
  252. .. rst-class:: classref-enumeration-constant
  253. :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` **PARAM_LINEAR_ACCEL** = ``3``
  254. Use with :ref:`set_param_min<class_ParticleProcessMaterial_method_set_param_min>`, :ref:`set_param_max<class_ParticleProcessMaterial_method_set_param_max>`, and :ref:`set_param_texture<class_ParticleProcessMaterial_method_set_param_texture>` to set linear acceleration properties.
  255. .. _class_ParticleProcessMaterial_constant_PARAM_RADIAL_ACCEL:
  256. .. rst-class:: classref-enumeration-constant
  257. :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` **PARAM_RADIAL_ACCEL** = ``4``
  258. Use with :ref:`set_param_min<class_ParticleProcessMaterial_method_set_param_min>`, :ref:`set_param_max<class_ParticleProcessMaterial_method_set_param_max>`, and :ref:`set_param_texture<class_ParticleProcessMaterial_method_set_param_texture>` to set radial acceleration properties.
  259. .. _class_ParticleProcessMaterial_constant_PARAM_TANGENTIAL_ACCEL:
  260. .. rst-class:: classref-enumeration-constant
  261. :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` **PARAM_TANGENTIAL_ACCEL** = ``5``
  262. Use with :ref:`set_param_min<class_ParticleProcessMaterial_method_set_param_min>`, :ref:`set_param_max<class_ParticleProcessMaterial_method_set_param_max>`, and :ref:`set_param_texture<class_ParticleProcessMaterial_method_set_param_texture>` to set tangential acceleration properties.
  263. .. _class_ParticleProcessMaterial_constant_PARAM_DAMPING:
  264. .. rst-class:: classref-enumeration-constant
  265. :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` **PARAM_DAMPING** = ``6``
  266. Use with :ref:`set_param_min<class_ParticleProcessMaterial_method_set_param_min>`, :ref:`set_param_max<class_ParticleProcessMaterial_method_set_param_max>`, and :ref:`set_param_texture<class_ParticleProcessMaterial_method_set_param_texture>` to set damping properties.
  267. .. _class_ParticleProcessMaterial_constant_PARAM_ANGLE:
  268. .. rst-class:: classref-enumeration-constant
  269. :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` **PARAM_ANGLE** = ``7``
  270. Use with :ref:`set_param_min<class_ParticleProcessMaterial_method_set_param_min>`, :ref:`set_param_max<class_ParticleProcessMaterial_method_set_param_max>`, and :ref:`set_param_texture<class_ParticleProcessMaterial_method_set_param_texture>` to set angle properties.
  271. .. _class_ParticleProcessMaterial_constant_PARAM_SCALE:
  272. .. rst-class:: classref-enumeration-constant
  273. :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` **PARAM_SCALE** = ``8``
  274. Use with :ref:`set_param_min<class_ParticleProcessMaterial_method_set_param_min>`, :ref:`set_param_max<class_ParticleProcessMaterial_method_set_param_max>`, and :ref:`set_param_texture<class_ParticleProcessMaterial_method_set_param_texture>` to set scale properties.
  275. .. _class_ParticleProcessMaterial_constant_PARAM_HUE_VARIATION:
  276. .. rst-class:: classref-enumeration-constant
  277. :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` **PARAM_HUE_VARIATION** = ``9``
  278. Use with :ref:`set_param_min<class_ParticleProcessMaterial_method_set_param_min>`, :ref:`set_param_max<class_ParticleProcessMaterial_method_set_param_max>`, and :ref:`set_param_texture<class_ParticleProcessMaterial_method_set_param_texture>` to set hue variation properties.
  279. .. _class_ParticleProcessMaterial_constant_PARAM_ANIM_SPEED:
  280. .. rst-class:: classref-enumeration-constant
  281. :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` **PARAM_ANIM_SPEED** = ``10``
  282. Use with :ref:`set_param_min<class_ParticleProcessMaterial_method_set_param_min>`, :ref:`set_param_max<class_ParticleProcessMaterial_method_set_param_max>`, and :ref:`set_param_texture<class_ParticleProcessMaterial_method_set_param_texture>` to set animation speed properties.
  283. .. _class_ParticleProcessMaterial_constant_PARAM_ANIM_OFFSET:
  284. .. rst-class:: classref-enumeration-constant
  285. :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` **PARAM_ANIM_OFFSET** = ``11``
  286. Use with :ref:`set_param_min<class_ParticleProcessMaterial_method_set_param_min>`, :ref:`set_param_max<class_ParticleProcessMaterial_method_set_param_max>`, and :ref:`set_param_texture<class_ParticleProcessMaterial_method_set_param_texture>` to set animation offset properties.
  287. .. _class_ParticleProcessMaterial_constant_PARAM_RADIAL_VELOCITY:
  288. .. rst-class:: classref-enumeration-constant
  289. :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` **PARAM_RADIAL_VELOCITY** = ``15``
  290. Use with :ref:`set_param_min<class_ParticleProcessMaterial_method_set_param_min>`, :ref:`set_param_max<class_ParticleProcessMaterial_method_set_param_max>`, and :ref:`set_param_texture<class_ParticleProcessMaterial_method_set_param_texture>` to set radial velocity properties.
  291. .. _class_ParticleProcessMaterial_constant_PARAM_DIRECTIONAL_VELOCITY:
  292. .. rst-class:: classref-enumeration-constant
  293. :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` **PARAM_DIRECTIONAL_VELOCITY** = ``16``
  294. Use with :ref:`set_param_min<class_ParticleProcessMaterial_method_set_param_min>`, :ref:`set_param_max<class_ParticleProcessMaterial_method_set_param_max>`, and :ref:`set_param_texture<class_ParticleProcessMaterial_method_set_param_texture>` to set directional velocity properties.
  295. .. _class_ParticleProcessMaterial_constant_PARAM_SCALE_OVER_VELOCITY:
  296. .. rst-class:: classref-enumeration-constant
  297. :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` **PARAM_SCALE_OVER_VELOCITY** = ``17``
  298. Use with :ref:`set_param_min<class_ParticleProcessMaterial_method_set_param_min>`, :ref:`set_param_max<class_ParticleProcessMaterial_method_set_param_max>`, and :ref:`set_param_texture<class_ParticleProcessMaterial_method_set_param_texture>` to set scale over velocity properties.
  299. .. _class_ParticleProcessMaterial_constant_PARAM_MAX:
  300. .. rst-class:: classref-enumeration-constant
  301. :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` **PARAM_MAX** = ``18``
  302. Represents the size of the :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` enum.
  303. .. _class_ParticleProcessMaterial_constant_PARAM_TURB_VEL_INFLUENCE:
  304. .. rst-class:: classref-enumeration-constant
  305. :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` **PARAM_TURB_VEL_INFLUENCE** = ``13``
  306. Use with :ref:`set_param_min<class_ParticleProcessMaterial_method_set_param_min>` and :ref:`set_param_max<class_ParticleProcessMaterial_method_set_param_max>` to set the turbulence minimum und maximum influence on each particles velocity.
  307. .. _class_ParticleProcessMaterial_constant_PARAM_TURB_INIT_DISPLACEMENT:
  308. .. rst-class:: classref-enumeration-constant
  309. :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` **PARAM_TURB_INIT_DISPLACEMENT** = ``14``
  310. Use with :ref:`set_param_min<class_ParticleProcessMaterial_method_set_param_min>` and :ref:`set_param_max<class_ParticleProcessMaterial_method_set_param_max>` to set the turbulence minimum and maximum displacement of the particles spawn position.
  311. .. _class_ParticleProcessMaterial_constant_PARAM_TURB_INFLUENCE_OVER_LIFE:
  312. .. rst-class:: classref-enumeration-constant
  313. :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` **PARAM_TURB_INFLUENCE_OVER_LIFE** = ``12``
  314. Use with :ref:`set_param_texture<class_ParticleProcessMaterial_method_set_param_texture>` to set the turbulence influence over the particles life time.
  315. .. rst-class:: classref-item-separator
  316. ----
  317. .. _enum_ParticleProcessMaterial_ParticleFlags:
  318. .. rst-class:: classref-enumeration
  319. enum **ParticleFlags**:
  320. .. _class_ParticleProcessMaterial_constant_PARTICLE_FLAG_ALIGN_Y_TO_VELOCITY:
  321. .. rst-class:: classref-enumeration-constant
  322. :ref:`ParticleFlags<enum_ParticleProcessMaterial_ParticleFlags>` **PARTICLE_FLAG_ALIGN_Y_TO_VELOCITY** = ``0``
  323. Use with :ref:`set_particle_flag<class_ParticleProcessMaterial_method_set_particle_flag>` to set :ref:`particle_flag_align_y<class_ParticleProcessMaterial_property_particle_flag_align_y>`.
  324. .. _class_ParticleProcessMaterial_constant_PARTICLE_FLAG_ROTATE_Y:
  325. .. rst-class:: classref-enumeration-constant
  326. :ref:`ParticleFlags<enum_ParticleProcessMaterial_ParticleFlags>` **PARTICLE_FLAG_ROTATE_Y** = ``1``
  327. Use with :ref:`set_particle_flag<class_ParticleProcessMaterial_method_set_particle_flag>` to set :ref:`particle_flag_rotate_y<class_ParticleProcessMaterial_property_particle_flag_rotate_y>`.
  328. .. _class_ParticleProcessMaterial_constant_PARTICLE_FLAG_DISABLE_Z:
  329. .. rst-class:: classref-enumeration-constant
  330. :ref:`ParticleFlags<enum_ParticleProcessMaterial_ParticleFlags>` **PARTICLE_FLAG_DISABLE_Z** = ``2``
  331. Use with :ref:`set_particle_flag<class_ParticleProcessMaterial_method_set_particle_flag>` to set :ref:`particle_flag_disable_z<class_ParticleProcessMaterial_property_particle_flag_disable_z>`.
  332. .. _class_ParticleProcessMaterial_constant_PARTICLE_FLAG_DAMPING_AS_FRICTION:
  333. .. rst-class:: classref-enumeration-constant
  334. :ref:`ParticleFlags<enum_ParticleProcessMaterial_ParticleFlags>` **PARTICLE_FLAG_DAMPING_AS_FRICTION** = ``3``
  335. .. _class_ParticleProcessMaterial_constant_PARTICLE_FLAG_MAX:
  336. .. rst-class:: classref-enumeration-constant
  337. :ref:`ParticleFlags<enum_ParticleProcessMaterial_ParticleFlags>` **PARTICLE_FLAG_MAX** = ``4``
  338. Represents the size of the :ref:`ParticleFlags<enum_ParticleProcessMaterial_ParticleFlags>` enum.
  339. .. rst-class:: classref-item-separator
  340. ----
  341. .. _enum_ParticleProcessMaterial_EmissionShape:
  342. .. rst-class:: classref-enumeration
  343. enum **EmissionShape**:
  344. .. _class_ParticleProcessMaterial_constant_EMISSION_SHAPE_POINT:
  345. .. rst-class:: classref-enumeration-constant
  346. :ref:`EmissionShape<enum_ParticleProcessMaterial_EmissionShape>` **EMISSION_SHAPE_POINT** = ``0``
  347. All particles will be emitted from a single point.
  348. .. _class_ParticleProcessMaterial_constant_EMISSION_SHAPE_SPHERE:
  349. .. rst-class:: classref-enumeration-constant
  350. :ref:`EmissionShape<enum_ParticleProcessMaterial_EmissionShape>` **EMISSION_SHAPE_SPHERE** = ``1``
  351. Particles will be emitted in the volume of a sphere.
  352. .. _class_ParticleProcessMaterial_constant_EMISSION_SHAPE_SPHERE_SURFACE:
  353. .. rst-class:: classref-enumeration-constant
  354. :ref:`EmissionShape<enum_ParticleProcessMaterial_EmissionShape>` **EMISSION_SHAPE_SPHERE_SURFACE** = ``2``
  355. Particles will be emitted on the surface of a sphere.
  356. .. _class_ParticleProcessMaterial_constant_EMISSION_SHAPE_BOX:
  357. .. rst-class:: classref-enumeration-constant
  358. :ref:`EmissionShape<enum_ParticleProcessMaterial_EmissionShape>` **EMISSION_SHAPE_BOX** = ``3``
  359. Particles will be emitted in the volume of a box.
  360. .. _class_ParticleProcessMaterial_constant_EMISSION_SHAPE_POINTS:
  361. .. rst-class:: classref-enumeration-constant
  362. :ref:`EmissionShape<enum_ParticleProcessMaterial_EmissionShape>` **EMISSION_SHAPE_POINTS** = ``4``
  363. Particles will be emitted at a position determined by sampling a random point on the :ref:`emission_point_texture<class_ParticleProcessMaterial_property_emission_point_texture>`. Particle color will be modulated by :ref:`emission_color_texture<class_ParticleProcessMaterial_property_emission_color_texture>`.
  364. .. _class_ParticleProcessMaterial_constant_EMISSION_SHAPE_DIRECTED_POINTS:
  365. .. rst-class:: classref-enumeration-constant
  366. :ref:`EmissionShape<enum_ParticleProcessMaterial_EmissionShape>` **EMISSION_SHAPE_DIRECTED_POINTS** = ``5``
  367. Particles will be emitted at a position determined by sampling a random point on the :ref:`emission_point_texture<class_ParticleProcessMaterial_property_emission_point_texture>`. Particle velocity and rotation will be set based on :ref:`emission_normal_texture<class_ParticleProcessMaterial_property_emission_normal_texture>`. Particle color will be modulated by :ref:`emission_color_texture<class_ParticleProcessMaterial_property_emission_color_texture>`.
  368. .. _class_ParticleProcessMaterial_constant_EMISSION_SHAPE_RING:
  369. .. rst-class:: classref-enumeration-constant
  370. :ref:`EmissionShape<enum_ParticleProcessMaterial_EmissionShape>` **EMISSION_SHAPE_RING** = ``6``
  371. Particles will be emitted in a ring or cylinder.
  372. .. _class_ParticleProcessMaterial_constant_EMISSION_SHAPE_MAX:
  373. .. rst-class:: classref-enumeration-constant
  374. :ref:`EmissionShape<enum_ParticleProcessMaterial_EmissionShape>` **EMISSION_SHAPE_MAX** = ``7``
  375. Represents the size of the :ref:`EmissionShape<enum_ParticleProcessMaterial_EmissionShape>` enum.
  376. .. rst-class:: classref-item-separator
  377. ----
  378. .. _enum_ParticleProcessMaterial_SubEmitterMode:
  379. .. rst-class:: classref-enumeration
  380. enum **SubEmitterMode**:
  381. .. _class_ParticleProcessMaterial_constant_SUB_EMITTER_DISABLED:
  382. .. rst-class:: classref-enumeration-constant
  383. :ref:`SubEmitterMode<enum_ParticleProcessMaterial_SubEmitterMode>` **SUB_EMITTER_DISABLED** = ``0``
  384. .. _class_ParticleProcessMaterial_constant_SUB_EMITTER_CONSTANT:
  385. .. rst-class:: classref-enumeration-constant
  386. :ref:`SubEmitterMode<enum_ParticleProcessMaterial_SubEmitterMode>` **SUB_EMITTER_CONSTANT** = ``1``
  387. .. _class_ParticleProcessMaterial_constant_SUB_EMITTER_AT_END:
  388. .. rst-class:: classref-enumeration-constant
  389. :ref:`SubEmitterMode<enum_ParticleProcessMaterial_SubEmitterMode>` **SUB_EMITTER_AT_END** = ``2``
  390. .. _class_ParticleProcessMaterial_constant_SUB_EMITTER_AT_COLLISION:
  391. .. rst-class:: classref-enumeration-constant
  392. :ref:`SubEmitterMode<enum_ParticleProcessMaterial_SubEmitterMode>` **SUB_EMITTER_AT_COLLISION** = ``3``
  393. .. _class_ParticleProcessMaterial_constant_SUB_EMITTER_MAX:
  394. .. rst-class:: classref-enumeration-constant
  395. :ref:`SubEmitterMode<enum_ParticleProcessMaterial_SubEmitterMode>` **SUB_EMITTER_MAX** = ``4``
  396. Represents the size of the :ref:`SubEmitterMode<enum_ParticleProcessMaterial_SubEmitterMode>` enum.
  397. .. rst-class:: classref-item-separator
  398. ----
  399. .. _enum_ParticleProcessMaterial_CollisionMode:
  400. .. rst-class:: classref-enumeration
  401. enum **CollisionMode**:
  402. .. _class_ParticleProcessMaterial_constant_COLLISION_DISABLED:
  403. .. rst-class:: classref-enumeration-constant
  404. :ref:`CollisionMode<enum_ParticleProcessMaterial_CollisionMode>` **COLLISION_DISABLED** = ``0``
  405. No collision for particles. Particles will go through :ref:`GPUParticlesCollision3D<class_GPUParticlesCollision3D>` nodes.
  406. .. _class_ParticleProcessMaterial_constant_COLLISION_RIGID:
  407. .. rst-class:: classref-enumeration-constant
  408. :ref:`CollisionMode<enum_ParticleProcessMaterial_CollisionMode>` **COLLISION_RIGID** = ``1``
  409. :ref:`RigidBody3D<class_RigidBody3D>`-style collision for particles using :ref:`GPUParticlesCollision3D<class_GPUParticlesCollision3D>` nodes.
  410. .. _class_ParticleProcessMaterial_constant_COLLISION_HIDE_ON_CONTACT:
  411. .. rst-class:: classref-enumeration-constant
  412. :ref:`CollisionMode<enum_ParticleProcessMaterial_CollisionMode>` **COLLISION_HIDE_ON_CONTACT** = ``2``
  413. Hide particles instantly when colliding with a :ref:`GPUParticlesCollision3D<class_GPUParticlesCollision3D>` node. This can be combined with a subemitter that uses the :ref:`COLLISION_RIGID<class_ParticleProcessMaterial_constant_COLLISION_RIGID>` collision mode to "replace" the parent particle with the subemitter on impact.
  414. .. _class_ParticleProcessMaterial_constant_COLLISION_MAX:
  415. .. rst-class:: classref-enumeration-constant
  416. :ref:`CollisionMode<enum_ParticleProcessMaterial_CollisionMode>` **COLLISION_MAX** = ``3``
  417. Represents the size of the :ref:`CollisionMode<enum_ParticleProcessMaterial_CollisionMode>` enum.
  418. .. rst-class:: classref-section-separator
  419. ----
  420. .. rst-class:: classref-descriptions-group
  421. Property Descriptions
  422. ---------------------
  423. .. _class_ParticleProcessMaterial_property_alpha_curve:
  424. .. rst-class:: classref-property
  425. :ref:`Texture2D<class_Texture2D>` **alpha_curve**
  426. .. rst-class:: classref-property-setget
  427. - void **set_alpha_curve** **(** :ref:`Texture2D<class_Texture2D>` value **)**
  428. - :ref:`Texture2D<class_Texture2D>` **get_alpha_curve** **(** **)**
  429. The alpha value of each particle's color will be multiplied by this :ref:`CurveTexture<class_CurveTexture>` over its lifetime.
  430. .. rst-class:: classref-item-separator
  431. ----
  432. .. _class_ParticleProcessMaterial_property_angle_curve:
  433. .. rst-class:: classref-property
  434. :ref:`Texture2D<class_Texture2D>` **angle_curve**
  435. .. rst-class:: classref-property-setget
  436. - void **set_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`Texture2D<class_Texture2D>` texture **)**
  437. - :ref:`Texture2D<class_Texture2D>` **get_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  438. Each particle's rotation will be animated along this :ref:`CurveTexture<class_CurveTexture>`.
  439. .. rst-class:: classref-item-separator
  440. ----
  441. .. _class_ParticleProcessMaterial_property_angle_max:
  442. .. rst-class:: classref-property
  443. :ref:`float<class_float>` **angle_max** = ``0.0``
  444. .. rst-class:: classref-property-setget
  445. - void **set_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  446. - :ref:`float<class_float>` **get_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  447. Maximum initial rotation applied to each particle, in degrees.
  448. Only applied when :ref:`particle_flag_disable_z<class_ParticleProcessMaterial_property_particle_flag_disable_z>` or :ref:`particle_flag_rotate_y<class_ParticleProcessMaterial_property_particle_flag_rotate_y>` are ``true`` or the :ref:`BaseMaterial3D<class_BaseMaterial3D>` being used to draw the particle is using :ref:`BaseMaterial3D.BILLBOARD_PARTICLES<class_BaseMaterial3D_constant_BILLBOARD_PARTICLES>`.
  449. .. rst-class:: classref-item-separator
  450. ----
  451. .. _class_ParticleProcessMaterial_property_angle_min:
  452. .. rst-class:: classref-property
  453. :ref:`float<class_float>` **angle_min** = ``0.0``
  454. .. rst-class:: classref-property-setget
  455. - void **set_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  456. - :ref:`float<class_float>` **get_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  457. Minimum equivalent of :ref:`angle_max<class_ParticleProcessMaterial_property_angle_max>`.
  458. .. rst-class:: classref-item-separator
  459. ----
  460. .. _class_ParticleProcessMaterial_property_angular_velocity_curve:
  461. .. rst-class:: classref-property
  462. :ref:`Texture2D<class_Texture2D>` **angular_velocity_curve**
  463. .. rst-class:: classref-property-setget
  464. - void **set_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`Texture2D<class_Texture2D>` texture **)**
  465. - :ref:`Texture2D<class_Texture2D>` **get_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  466. Each particle's angular velocity (rotation speed) will vary along this :ref:`CurveTexture<class_CurveTexture>` over its lifetime.
  467. .. rst-class:: classref-item-separator
  468. ----
  469. .. _class_ParticleProcessMaterial_property_angular_velocity_max:
  470. .. rst-class:: classref-property
  471. :ref:`float<class_float>` **angular_velocity_max** = ``0.0``
  472. .. rst-class:: classref-property-setget
  473. - void **set_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  474. - :ref:`float<class_float>` **get_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  475. Maximum initial angular velocity (rotation speed) applied to each particle in *degrees* per second.
  476. Only applied when :ref:`particle_flag_disable_z<class_ParticleProcessMaterial_property_particle_flag_disable_z>` or :ref:`particle_flag_rotate_y<class_ParticleProcessMaterial_property_particle_flag_rotate_y>` are ``true`` or the :ref:`BaseMaterial3D<class_BaseMaterial3D>` being used to draw the particle is using :ref:`BaseMaterial3D.BILLBOARD_PARTICLES<class_BaseMaterial3D_constant_BILLBOARD_PARTICLES>`.
  477. .. rst-class:: classref-item-separator
  478. ----
  479. .. _class_ParticleProcessMaterial_property_angular_velocity_min:
  480. .. rst-class:: classref-property
  481. :ref:`float<class_float>` **angular_velocity_min** = ``0.0``
  482. .. rst-class:: classref-property-setget
  483. - void **set_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  484. - :ref:`float<class_float>` **get_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  485. Minimum equivalent of :ref:`angular_velocity_max<class_ParticleProcessMaterial_property_angular_velocity_max>`.
  486. .. rst-class:: classref-item-separator
  487. ----
  488. .. _class_ParticleProcessMaterial_property_anim_offset_curve:
  489. .. rst-class:: classref-property
  490. :ref:`Texture2D<class_Texture2D>` **anim_offset_curve**
  491. .. rst-class:: classref-property-setget
  492. - void **set_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`Texture2D<class_Texture2D>` texture **)**
  493. - :ref:`Texture2D<class_Texture2D>` **get_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  494. Each particle's animation offset will vary along this :ref:`CurveTexture<class_CurveTexture>`.
  495. .. rst-class:: classref-item-separator
  496. ----
  497. .. _class_ParticleProcessMaterial_property_anim_offset_max:
  498. .. rst-class:: classref-property
  499. :ref:`float<class_float>` **anim_offset_max** = ``0.0``
  500. .. rst-class:: classref-property-setget
  501. - void **set_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  502. - :ref:`float<class_float>` **get_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  503. Maximum animation offset that corresponds to frame index in the texture. ``0`` is the first frame, ``1`` is the last one. See :ref:`CanvasItemMaterial.particles_animation<class_CanvasItemMaterial_property_particles_animation>`.
  504. .. rst-class:: classref-item-separator
  505. ----
  506. .. _class_ParticleProcessMaterial_property_anim_offset_min:
  507. .. rst-class:: classref-property
  508. :ref:`float<class_float>` **anim_offset_min** = ``0.0``
  509. .. rst-class:: classref-property-setget
  510. - void **set_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  511. - :ref:`float<class_float>` **get_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  512. Minimum equivalent of :ref:`anim_offset_max<class_ParticleProcessMaterial_property_anim_offset_max>`.
  513. .. rst-class:: classref-item-separator
  514. ----
  515. .. _class_ParticleProcessMaterial_property_anim_speed_curve:
  516. .. rst-class:: classref-property
  517. :ref:`Texture2D<class_Texture2D>` **anim_speed_curve**
  518. .. rst-class:: classref-property-setget
  519. - void **set_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`Texture2D<class_Texture2D>` texture **)**
  520. - :ref:`Texture2D<class_Texture2D>` **get_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  521. Each particle's animation speed will vary along this :ref:`CurveTexture<class_CurveTexture>`.
  522. .. rst-class:: classref-item-separator
  523. ----
  524. .. _class_ParticleProcessMaterial_property_anim_speed_max:
  525. .. rst-class:: classref-property
  526. :ref:`float<class_float>` **anim_speed_max** = ``0.0``
  527. .. rst-class:: classref-property-setget
  528. - void **set_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  529. - :ref:`float<class_float>` **get_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  530. Maximum particle animation speed. Animation speed of ``1`` means that the particles will make full ``0`` to ``1`` offset cycle during lifetime, ``2`` means ``2`` cycles etc.
  531. With animation speed greater than ``1``, remember to enable :ref:`CanvasItemMaterial.particles_anim_loop<class_CanvasItemMaterial_property_particles_anim_loop>` property if you want the animation to repeat.
  532. .. rst-class:: classref-item-separator
  533. ----
  534. .. _class_ParticleProcessMaterial_property_anim_speed_min:
  535. .. rst-class:: classref-property
  536. :ref:`float<class_float>` **anim_speed_min** = ``0.0``
  537. .. rst-class:: classref-property-setget
  538. - void **set_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  539. - :ref:`float<class_float>` **get_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  540. Minimum equivalent of :ref:`anim_speed_max<class_ParticleProcessMaterial_property_anim_speed_max>`.
  541. .. rst-class:: classref-item-separator
  542. ----
  543. .. _class_ParticleProcessMaterial_property_attractor_interaction_enabled:
  544. .. rst-class:: classref-property
  545. :ref:`bool<class_bool>` **attractor_interaction_enabled** = ``true``
  546. .. rst-class:: classref-property-setget
  547. - void **set_attractor_interaction_enabled** **(** :ref:`bool<class_bool>` value **)**
  548. - :ref:`bool<class_bool>` **is_attractor_interaction_enabled** **(** **)**
  549. If ``true``, interaction with particle attractors is enabled. In 3D, attraction only occurs within the area defined by the :ref:`GPUParticles3D<class_GPUParticles3D>` node's :ref:`GPUParticles3D.visibility_aabb<class_GPUParticles3D_property_visibility_aabb>`.
  550. .. rst-class:: classref-item-separator
  551. ----
  552. .. _class_ParticleProcessMaterial_property_collision_bounce:
  553. .. rst-class:: classref-property
  554. :ref:`float<class_float>` **collision_bounce**
  555. .. rst-class:: classref-property-setget
  556. - void **set_collision_bounce** **(** :ref:`float<class_float>` value **)**
  557. - :ref:`float<class_float>` **get_collision_bounce** **(** **)**
  558. The particles' bounciness. Values range from ``0`` (no bounce) to ``1`` (full bounciness). Only effective if :ref:`collision_mode<class_ParticleProcessMaterial_property_collision_mode>` is :ref:`COLLISION_RIGID<class_ParticleProcessMaterial_constant_COLLISION_RIGID>`.
  559. .. rst-class:: classref-item-separator
  560. ----
  561. .. _class_ParticleProcessMaterial_property_collision_friction:
  562. .. rst-class:: classref-property
  563. :ref:`float<class_float>` **collision_friction**
  564. .. rst-class:: classref-property-setget
  565. - void **set_collision_friction** **(** :ref:`float<class_float>` value **)**
  566. - :ref:`float<class_float>` **get_collision_friction** **(** **)**
  567. The particles' friction. Values range from ``0`` (frictionless) to ``1`` (maximum friction). Only effective if :ref:`collision_mode<class_ParticleProcessMaterial_property_collision_mode>` is :ref:`COLLISION_RIGID<class_ParticleProcessMaterial_constant_COLLISION_RIGID>`.
  568. .. rst-class:: classref-item-separator
  569. ----
  570. .. _class_ParticleProcessMaterial_property_collision_mode:
  571. .. rst-class:: classref-property
  572. :ref:`CollisionMode<enum_ParticleProcessMaterial_CollisionMode>` **collision_mode** = ``0``
  573. .. rst-class:: classref-property-setget
  574. - void **set_collision_mode** **(** :ref:`CollisionMode<enum_ParticleProcessMaterial_CollisionMode>` value **)**
  575. - :ref:`CollisionMode<enum_ParticleProcessMaterial_CollisionMode>` **get_collision_mode** **(** **)**
  576. The particles' collision mode.
  577. \ **Note:** 3D Particles can only collide with :ref:`GPUParticlesCollision3D<class_GPUParticlesCollision3D>` nodes, not :ref:`PhysicsBody3D<class_PhysicsBody3D>` nodes. To make particles collide with various objects, you can add :ref:`GPUParticlesCollision3D<class_GPUParticlesCollision3D>` nodes as children of :ref:`PhysicsBody3D<class_PhysicsBody3D>` nodes. In 3D, collisions only occur within the area defined by the :ref:`GPUParticles3D<class_GPUParticles3D>` node's :ref:`GPUParticles3D.visibility_aabb<class_GPUParticles3D_property_visibility_aabb>`.
  578. \ **Note:** 2D Particles can only collide with :ref:`LightOccluder2D<class_LightOccluder2D>` nodes, not :ref:`PhysicsBody2D<class_PhysicsBody2D>` nodes.
  579. .. rst-class:: classref-item-separator
  580. ----
  581. .. _class_ParticleProcessMaterial_property_collision_use_scale:
  582. .. rst-class:: classref-property
  583. :ref:`bool<class_bool>` **collision_use_scale** = ``false``
  584. .. rst-class:: classref-property-setget
  585. - void **set_collision_use_scale** **(** :ref:`bool<class_bool>` value **)**
  586. - :ref:`bool<class_bool>` **is_collision_using_scale** **(** **)**
  587. If ``true``, :ref:`GPUParticles3D.collision_base_size<class_GPUParticles3D_property_collision_base_size>` is multiplied by the particle's effective scale (see :ref:`scale_min<class_ParticleProcessMaterial_property_scale_min>`, :ref:`scale_max<class_ParticleProcessMaterial_property_scale_max>`, :ref:`scale_curve<class_ParticleProcessMaterial_property_scale_curve>`, and :ref:`scale_over_velocity_curve<class_ParticleProcessMaterial_property_scale_over_velocity_curve>`).
  588. .. rst-class:: classref-item-separator
  589. ----
  590. .. _class_ParticleProcessMaterial_property_color:
  591. .. rst-class:: classref-property
  592. :ref:`Color<class_Color>` **color** = ``Color(1, 1, 1, 1)``
  593. .. rst-class:: classref-property-setget
  594. - void **set_color** **(** :ref:`Color<class_Color>` value **)**
  595. - :ref:`Color<class_Color>` **get_color** **(** **)**
  596. Each particle's initial color. If the :ref:`GPUParticles2D<class_GPUParticles2D>`'s ``texture`` is defined, it will be multiplied by this color.
  597. \ **Note:** :ref:`color<class_ParticleProcessMaterial_property_color>` multiplies the particle mesh's vertex colors. To have a visible effect on a :ref:`BaseMaterial3D<class_BaseMaterial3D>`, :ref:`BaseMaterial3D.vertex_color_use_as_albedo<class_BaseMaterial3D_property_vertex_color_use_as_albedo>` *must* be ``true``. For a :ref:`ShaderMaterial<class_ShaderMaterial>`, ``ALBEDO *= COLOR.rgb;`` must be inserted in the shader's ``fragment()`` function. Otherwise, :ref:`color<class_ParticleProcessMaterial_property_color>` will have no visible effect.
  598. .. rst-class:: classref-item-separator
  599. ----
  600. .. _class_ParticleProcessMaterial_property_color_initial_ramp:
  601. .. rst-class:: classref-property
  602. :ref:`Texture2D<class_Texture2D>` **color_initial_ramp**
  603. .. rst-class:: classref-property-setget
  604. - void **set_color_initial_ramp** **(** :ref:`Texture2D<class_Texture2D>` value **)**
  605. - :ref:`Texture2D<class_Texture2D>` **get_color_initial_ramp** **(** **)**
  606. Each particle's initial color will vary along this :ref:`GradientTexture1D<class_GradientTexture1D>` (multiplied with :ref:`color<class_ParticleProcessMaterial_property_color>`).
  607. \ **Note:** :ref:`color_initial_ramp<class_ParticleProcessMaterial_property_color_initial_ramp>` multiplies the particle mesh's vertex colors. To have a visible effect on a :ref:`BaseMaterial3D<class_BaseMaterial3D>`, :ref:`BaseMaterial3D.vertex_color_use_as_albedo<class_BaseMaterial3D_property_vertex_color_use_as_albedo>` *must* be ``true``. For a :ref:`ShaderMaterial<class_ShaderMaterial>`, ``ALBEDO *= COLOR.rgb;`` must be inserted in the shader's ``fragment()`` function. Otherwise, :ref:`color_initial_ramp<class_ParticleProcessMaterial_property_color_initial_ramp>` will have no visible effect.
  608. .. rst-class:: classref-item-separator
  609. ----
  610. .. _class_ParticleProcessMaterial_property_color_ramp:
  611. .. rst-class:: classref-property
  612. :ref:`Texture2D<class_Texture2D>` **color_ramp**
  613. .. rst-class:: classref-property-setget
  614. - void **set_color_ramp** **(** :ref:`Texture2D<class_Texture2D>` value **)**
  615. - :ref:`Texture2D<class_Texture2D>` **get_color_ramp** **(** **)**
  616. Each particle's color will vary along this :ref:`GradientTexture1D<class_GradientTexture1D>` over its lifetime (multiplied with :ref:`color<class_ParticleProcessMaterial_property_color>`).
  617. \ **Note:** :ref:`color_ramp<class_ParticleProcessMaterial_property_color_ramp>` multiplies the particle mesh's vertex colors. To have a visible effect on a :ref:`BaseMaterial3D<class_BaseMaterial3D>`, :ref:`BaseMaterial3D.vertex_color_use_as_albedo<class_BaseMaterial3D_property_vertex_color_use_as_albedo>` *must* be ``true``. For a :ref:`ShaderMaterial<class_ShaderMaterial>`, ``ALBEDO *= COLOR.rgb;`` must be inserted in the shader's ``fragment()`` function. Otherwise, :ref:`color_ramp<class_ParticleProcessMaterial_property_color_ramp>` will have no visible effect.
  618. .. rst-class:: classref-item-separator
  619. ----
  620. .. _class_ParticleProcessMaterial_property_damping_curve:
  621. .. rst-class:: classref-property
  622. :ref:`Texture2D<class_Texture2D>` **damping_curve**
  623. .. rst-class:: classref-property-setget
  624. - void **set_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`Texture2D<class_Texture2D>` texture **)**
  625. - :ref:`Texture2D<class_Texture2D>` **get_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  626. Damping will vary along this :ref:`CurveTexture<class_CurveTexture>`.
  627. .. rst-class:: classref-item-separator
  628. ----
  629. .. _class_ParticleProcessMaterial_property_damping_max:
  630. .. rst-class:: classref-property
  631. :ref:`float<class_float>` **damping_max** = ``0.0``
  632. .. rst-class:: classref-property-setget
  633. - void **set_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  634. - :ref:`float<class_float>` **get_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  635. The maximum rate at which particles lose velocity. For example value of ``100`` means that the particle will go from ``100`` velocity to ``0`` in ``1`` second.
  636. .. rst-class:: classref-item-separator
  637. ----
  638. .. _class_ParticleProcessMaterial_property_damping_min:
  639. .. rst-class:: classref-property
  640. :ref:`float<class_float>` **damping_min** = ``0.0``
  641. .. rst-class:: classref-property-setget
  642. - void **set_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  643. - :ref:`float<class_float>` **get_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  644. Minimum equivalent of :ref:`damping_max<class_ParticleProcessMaterial_property_damping_max>`.
  645. .. rst-class:: classref-item-separator
  646. ----
  647. .. _class_ParticleProcessMaterial_property_direction:
  648. .. rst-class:: classref-property
  649. :ref:`Vector3<class_Vector3>` **direction** = ``Vector3(1, 0, 0)``
  650. .. rst-class:: classref-property-setget
  651. - void **set_direction** **(** :ref:`Vector3<class_Vector3>` value **)**
  652. - :ref:`Vector3<class_Vector3>` **get_direction** **(** **)**
  653. Unit vector specifying the particles' emission direction.
  654. .. rst-class:: classref-item-separator
  655. ----
  656. .. _class_ParticleProcessMaterial_property_directional_velocity_curve:
  657. .. rst-class:: classref-property
  658. :ref:`Texture2D<class_Texture2D>` **directional_velocity_curve**
  659. .. rst-class:: classref-property-setget
  660. - void **set_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`Texture2D<class_Texture2D>` texture **)**
  661. - :ref:`Texture2D<class_Texture2D>` **get_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  662. A curve that specifies the velocity along each of the axes of the particle system along its lifetime.
  663. \ **Note:** Animated velocities will not be affected by damping, use :ref:`velocity_limit_curve<class_ParticleProcessMaterial_property_velocity_limit_curve>` instead.
  664. .. rst-class:: classref-item-separator
  665. ----
  666. .. _class_ParticleProcessMaterial_property_directional_velocity_max:
  667. .. rst-class:: classref-property
  668. :ref:`float<class_float>` **directional_velocity_max**
  669. .. rst-class:: classref-property-setget
  670. - void **set_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  671. - :ref:`float<class_float>` **get_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  672. Maximum directional velocity value, which is multiplied by :ref:`directional_velocity_curve<class_ParticleProcessMaterial_property_directional_velocity_curve>`.
  673. \ **Note:** Animated velocities will not be affected by damping, use :ref:`velocity_limit_curve<class_ParticleProcessMaterial_property_velocity_limit_curve>` instead.
  674. .. rst-class:: classref-item-separator
  675. ----
  676. .. _class_ParticleProcessMaterial_property_directional_velocity_min:
  677. .. rst-class:: classref-property
  678. :ref:`float<class_float>` **directional_velocity_min**
  679. .. rst-class:: classref-property-setget
  680. - void **set_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  681. - :ref:`float<class_float>` **get_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  682. Minimum directional velocity value, which is multiplied by :ref:`directional_velocity_curve<class_ParticleProcessMaterial_property_directional_velocity_curve>`.
  683. \ **Note:** Animated velocities will not be affected by damping, use :ref:`velocity_limit_curve<class_ParticleProcessMaterial_property_velocity_limit_curve>` instead.
  684. .. rst-class:: classref-item-separator
  685. ----
  686. .. _class_ParticleProcessMaterial_property_emission_box_extents:
  687. .. rst-class:: classref-property
  688. :ref:`Vector3<class_Vector3>` **emission_box_extents**
  689. .. rst-class:: classref-property-setget
  690. - void **set_emission_box_extents** **(** :ref:`Vector3<class_Vector3>` value **)**
  691. - :ref:`Vector3<class_Vector3>` **get_emission_box_extents** **(** **)**
  692. The box's extents if :ref:`emission_shape<class_ParticleProcessMaterial_property_emission_shape>` is set to :ref:`EMISSION_SHAPE_BOX<class_ParticleProcessMaterial_constant_EMISSION_SHAPE_BOX>`.
  693. .. rst-class:: classref-item-separator
  694. ----
  695. .. _class_ParticleProcessMaterial_property_emission_color_texture:
  696. .. rst-class:: classref-property
  697. :ref:`Texture2D<class_Texture2D>` **emission_color_texture**
  698. .. rst-class:: classref-property-setget
  699. - void **set_emission_color_texture** **(** :ref:`Texture2D<class_Texture2D>` value **)**
  700. - :ref:`Texture2D<class_Texture2D>` **get_emission_color_texture** **(** **)**
  701. Particle color will be modulated by color determined by sampling this texture at the same point as the :ref:`emission_point_texture<class_ParticleProcessMaterial_property_emission_point_texture>`.
  702. \ **Note:** :ref:`emission_color_texture<class_ParticleProcessMaterial_property_emission_color_texture>` multiplies the particle mesh's vertex colors. To have a visible effect on a :ref:`BaseMaterial3D<class_BaseMaterial3D>`, :ref:`BaseMaterial3D.vertex_color_use_as_albedo<class_BaseMaterial3D_property_vertex_color_use_as_albedo>` *must* be ``true``. For a :ref:`ShaderMaterial<class_ShaderMaterial>`, ``ALBEDO *= COLOR.rgb;`` must be inserted in the shader's ``fragment()`` function. Otherwise, :ref:`emission_color_texture<class_ParticleProcessMaterial_property_emission_color_texture>` will have no visible effect.
  703. .. rst-class:: classref-item-separator
  704. ----
  705. .. _class_ParticleProcessMaterial_property_emission_curve:
  706. .. rst-class:: classref-property
  707. :ref:`Texture2D<class_Texture2D>` **emission_curve**
  708. .. rst-class:: classref-property-setget
  709. - void **set_emission_curve** **(** :ref:`Texture2D<class_Texture2D>` value **)**
  710. - :ref:`Texture2D<class_Texture2D>` **get_emission_curve** **(** **)**
  711. Each particle's color will be multiplied by this :ref:`CurveTexture<class_CurveTexture>` over its lifetime.
  712. \ **Note:** This property won't have a visible effect unless the render material is marked as unshaded.
  713. .. rst-class:: classref-item-separator
  714. ----
  715. .. _class_ParticleProcessMaterial_property_emission_normal_texture:
  716. .. rst-class:: classref-property
  717. :ref:`Texture2D<class_Texture2D>` **emission_normal_texture**
  718. .. rst-class:: classref-property-setget
  719. - void **set_emission_normal_texture** **(** :ref:`Texture2D<class_Texture2D>` value **)**
  720. - :ref:`Texture2D<class_Texture2D>` **get_emission_normal_texture** **(** **)**
  721. Particle velocity and rotation will be set by sampling this texture at the same point as the :ref:`emission_point_texture<class_ParticleProcessMaterial_property_emission_point_texture>`. Used only in :ref:`EMISSION_SHAPE_DIRECTED_POINTS<class_ParticleProcessMaterial_constant_EMISSION_SHAPE_DIRECTED_POINTS>`. Can be created automatically from mesh or node by selecting "Create Emission Points from Mesh/Node" under the "Particles" tool in the toolbar.
  722. .. rst-class:: classref-item-separator
  723. ----
  724. .. _class_ParticleProcessMaterial_property_emission_point_count:
  725. .. rst-class:: classref-property
  726. :ref:`int<class_int>` **emission_point_count**
  727. .. rst-class:: classref-property-setget
  728. - void **set_emission_point_count** **(** :ref:`int<class_int>` value **)**
  729. - :ref:`int<class_int>` **get_emission_point_count** **(** **)**
  730. The number of emission points if :ref:`emission_shape<class_ParticleProcessMaterial_property_emission_shape>` is set to :ref:`EMISSION_SHAPE_POINTS<class_ParticleProcessMaterial_constant_EMISSION_SHAPE_POINTS>` or :ref:`EMISSION_SHAPE_DIRECTED_POINTS<class_ParticleProcessMaterial_constant_EMISSION_SHAPE_DIRECTED_POINTS>`.
  731. .. rst-class:: classref-item-separator
  732. ----
  733. .. _class_ParticleProcessMaterial_property_emission_point_texture:
  734. .. rst-class:: classref-property
  735. :ref:`Texture2D<class_Texture2D>` **emission_point_texture**
  736. .. rst-class:: classref-property-setget
  737. - void **set_emission_point_texture** **(** :ref:`Texture2D<class_Texture2D>` value **)**
  738. - :ref:`Texture2D<class_Texture2D>` **get_emission_point_texture** **(** **)**
  739. Particles will be emitted at positions determined by sampling this texture at a random position. Used with :ref:`EMISSION_SHAPE_POINTS<class_ParticleProcessMaterial_constant_EMISSION_SHAPE_POINTS>` and :ref:`EMISSION_SHAPE_DIRECTED_POINTS<class_ParticleProcessMaterial_constant_EMISSION_SHAPE_DIRECTED_POINTS>`. Can be created automatically from mesh or node by selecting "Create Emission Points from Mesh/Node" under the "Particles" tool in the toolbar.
  740. .. rst-class:: classref-item-separator
  741. ----
  742. .. _class_ParticleProcessMaterial_property_emission_ring_axis:
  743. .. rst-class:: classref-property
  744. :ref:`Vector3<class_Vector3>` **emission_ring_axis**
  745. .. rst-class:: classref-property-setget
  746. - void **set_emission_ring_axis** **(** :ref:`Vector3<class_Vector3>` value **)**
  747. - :ref:`Vector3<class_Vector3>` **get_emission_ring_axis** **(** **)**
  748. The axis of the ring when using the emitter :ref:`EMISSION_SHAPE_RING<class_ParticleProcessMaterial_constant_EMISSION_SHAPE_RING>`.
  749. .. rst-class:: classref-item-separator
  750. ----
  751. .. _class_ParticleProcessMaterial_property_emission_ring_height:
  752. .. rst-class:: classref-property
  753. :ref:`float<class_float>` **emission_ring_height**
  754. .. rst-class:: classref-property-setget
  755. - void **set_emission_ring_height** **(** :ref:`float<class_float>` value **)**
  756. - :ref:`float<class_float>` **get_emission_ring_height** **(** **)**
  757. The height of the ring when using the emitter :ref:`EMISSION_SHAPE_RING<class_ParticleProcessMaterial_constant_EMISSION_SHAPE_RING>`.
  758. .. rst-class:: classref-item-separator
  759. ----
  760. .. _class_ParticleProcessMaterial_property_emission_ring_inner_radius:
  761. .. rst-class:: classref-property
  762. :ref:`float<class_float>` **emission_ring_inner_radius**
  763. .. rst-class:: classref-property-setget
  764. - void **set_emission_ring_inner_radius** **(** :ref:`float<class_float>` value **)**
  765. - :ref:`float<class_float>` **get_emission_ring_inner_radius** **(** **)**
  766. The inner radius of the ring when using the emitter :ref:`EMISSION_SHAPE_RING<class_ParticleProcessMaterial_constant_EMISSION_SHAPE_RING>`.
  767. .. rst-class:: classref-item-separator
  768. ----
  769. .. _class_ParticleProcessMaterial_property_emission_ring_radius:
  770. .. rst-class:: classref-property
  771. :ref:`float<class_float>` **emission_ring_radius**
  772. .. rst-class:: classref-property-setget
  773. - void **set_emission_ring_radius** **(** :ref:`float<class_float>` value **)**
  774. - :ref:`float<class_float>` **get_emission_ring_radius** **(** **)**
  775. The radius of the ring when using the emitter :ref:`EMISSION_SHAPE_RING<class_ParticleProcessMaterial_constant_EMISSION_SHAPE_RING>`.
  776. .. rst-class:: classref-item-separator
  777. ----
  778. .. _class_ParticleProcessMaterial_property_emission_shape:
  779. .. rst-class:: classref-property
  780. :ref:`EmissionShape<enum_ParticleProcessMaterial_EmissionShape>` **emission_shape** = ``0``
  781. .. rst-class:: classref-property-setget
  782. - void **set_emission_shape** **(** :ref:`EmissionShape<enum_ParticleProcessMaterial_EmissionShape>` value **)**
  783. - :ref:`EmissionShape<enum_ParticleProcessMaterial_EmissionShape>` **get_emission_shape** **(** **)**
  784. Particles will be emitted inside this region. Use :ref:`EmissionShape<enum_ParticleProcessMaterial_EmissionShape>` constants for values.
  785. .. rst-class:: classref-item-separator
  786. ----
  787. .. _class_ParticleProcessMaterial_property_emission_shape_offset:
  788. .. rst-class:: classref-property
  789. :ref:`Vector3<class_Vector3>` **emission_shape_offset** = ``Vector3(0, 0, 0)``
  790. .. rst-class:: classref-property-setget
  791. - void **set_emission_shape_offset** **(** :ref:`Vector3<class_Vector3>` value **)**
  792. - :ref:`Vector3<class_Vector3>` **get_emission_shape_offset** **(** **)**
  793. The offset for the :ref:`emission_shape<class_ParticleProcessMaterial_property_emission_shape>`, in local space.
  794. .. rst-class:: classref-item-separator
  795. ----
  796. .. _class_ParticleProcessMaterial_property_emission_shape_scale:
  797. .. rst-class:: classref-property
  798. :ref:`Vector3<class_Vector3>` **emission_shape_scale** = ``Vector3(1, 1, 1)``
  799. .. rst-class:: classref-property-setget
  800. - void **set_emission_shape_scale** **(** :ref:`Vector3<class_Vector3>` value **)**
  801. - :ref:`Vector3<class_Vector3>` **get_emission_shape_scale** **(** **)**
  802. The scale of the :ref:`emission_shape<class_ParticleProcessMaterial_property_emission_shape>`, in local space.
  803. .. rst-class:: classref-item-separator
  804. ----
  805. .. _class_ParticleProcessMaterial_property_emission_sphere_radius:
  806. .. rst-class:: classref-property
  807. :ref:`float<class_float>` **emission_sphere_radius**
  808. .. rst-class:: classref-property-setget
  809. - void **set_emission_sphere_radius** **(** :ref:`float<class_float>` value **)**
  810. - :ref:`float<class_float>` **get_emission_sphere_radius** **(** **)**
  811. The sphere's radius if :ref:`emission_shape<class_ParticleProcessMaterial_property_emission_shape>` is set to :ref:`EMISSION_SHAPE_SPHERE<class_ParticleProcessMaterial_constant_EMISSION_SHAPE_SPHERE>`.
  812. .. rst-class:: classref-item-separator
  813. ----
  814. .. _class_ParticleProcessMaterial_property_flatness:
  815. .. rst-class:: classref-property
  816. :ref:`float<class_float>` **flatness** = ``0.0``
  817. .. rst-class:: classref-property-setget
  818. - void **set_flatness** **(** :ref:`float<class_float>` value **)**
  819. - :ref:`float<class_float>` **get_flatness** **(** **)**
  820. Amount of :ref:`spread<class_ParticleProcessMaterial_property_spread>` along the Y axis.
  821. .. rst-class:: classref-item-separator
  822. ----
  823. .. _class_ParticleProcessMaterial_property_gravity:
  824. .. rst-class:: classref-property
  825. :ref:`Vector3<class_Vector3>` **gravity** = ``Vector3(0, -9.8, 0)``
  826. .. rst-class:: classref-property-setget
  827. - void **set_gravity** **(** :ref:`Vector3<class_Vector3>` value **)**
  828. - :ref:`Vector3<class_Vector3>` **get_gravity** **(** **)**
  829. Gravity applied to every particle.
  830. .. rst-class:: classref-item-separator
  831. ----
  832. .. _class_ParticleProcessMaterial_property_hue_variation_curve:
  833. .. rst-class:: classref-property
  834. :ref:`Texture2D<class_Texture2D>` **hue_variation_curve**
  835. .. rst-class:: classref-property-setget
  836. - void **set_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`Texture2D<class_Texture2D>` texture **)**
  837. - :ref:`Texture2D<class_Texture2D>` **get_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  838. Each particle's hue will vary along this :ref:`CurveTexture<class_CurveTexture>`.
  839. .. rst-class:: classref-item-separator
  840. ----
  841. .. _class_ParticleProcessMaterial_property_hue_variation_max:
  842. .. rst-class:: classref-property
  843. :ref:`float<class_float>` **hue_variation_max** = ``0.0``
  844. .. rst-class:: classref-property-setget
  845. - void **set_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  846. - :ref:`float<class_float>` **get_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  847. Maximum initial hue variation applied to each particle. It will shift the particle color's hue.
  848. .. rst-class:: classref-item-separator
  849. ----
  850. .. _class_ParticleProcessMaterial_property_hue_variation_min:
  851. .. rst-class:: classref-property
  852. :ref:`float<class_float>` **hue_variation_min** = ``0.0``
  853. .. rst-class:: classref-property-setget
  854. - void **set_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  855. - :ref:`float<class_float>` **get_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  856. Minimum equivalent of :ref:`hue_variation_max<class_ParticleProcessMaterial_property_hue_variation_max>`.
  857. .. rst-class:: classref-item-separator
  858. ----
  859. .. _class_ParticleProcessMaterial_property_inherit_velocity_ratio:
  860. .. rst-class:: classref-property
  861. :ref:`float<class_float>` **inherit_velocity_ratio** = ``0.0``
  862. .. rst-class:: classref-property-setget
  863. - void **set_inherit_velocity_ratio** **(** :ref:`float<class_float>` value **)**
  864. - :ref:`float<class_float>` **get_inherit_velocity_ratio** **(** **)**
  865. Percentage of the velocity of the respective :ref:`GPUParticles2D<class_GPUParticles2D>` or :ref:`GPUParticles3D<class_GPUParticles3D>` inherited by each particle when spawning.
  866. .. rst-class:: classref-item-separator
  867. ----
  868. .. _class_ParticleProcessMaterial_property_initial_velocity_max:
  869. .. rst-class:: classref-property
  870. :ref:`float<class_float>` **initial_velocity_max** = ``0.0``
  871. .. rst-class:: classref-property-setget
  872. - void **set_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  873. - :ref:`float<class_float>` **get_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  874. Maximum initial velocity magnitude for each particle. Direction comes from :ref:`direction<class_ParticleProcessMaterial_property_direction>` and :ref:`spread<class_ParticleProcessMaterial_property_spread>`.
  875. .. rst-class:: classref-item-separator
  876. ----
  877. .. _class_ParticleProcessMaterial_property_initial_velocity_min:
  878. .. rst-class:: classref-property
  879. :ref:`float<class_float>` **initial_velocity_min** = ``0.0``
  880. .. rst-class:: classref-property-setget
  881. - void **set_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  882. - :ref:`float<class_float>` **get_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  883. Minimum equivalent of :ref:`initial_velocity_max<class_ParticleProcessMaterial_property_initial_velocity_max>`.
  884. .. rst-class:: classref-item-separator
  885. ----
  886. .. _class_ParticleProcessMaterial_property_lifetime_randomness:
  887. .. rst-class:: classref-property
  888. :ref:`float<class_float>` **lifetime_randomness** = ``0.0``
  889. .. rst-class:: classref-property-setget
  890. - void **set_lifetime_randomness** **(** :ref:`float<class_float>` value **)**
  891. - :ref:`float<class_float>` **get_lifetime_randomness** **(** **)**
  892. Particle lifetime randomness ratio. The equation for the lifetime of a particle is ``lifetime * (1.0 - randf() * lifetime_randomness)``. For example, a :ref:`lifetime_randomness<class_ParticleProcessMaterial_property_lifetime_randomness>` of ``0.4`` scales the lifetime between ``0.6`` to ``1.0`` of its original value.
  893. .. rst-class:: classref-item-separator
  894. ----
  895. .. _class_ParticleProcessMaterial_property_linear_accel_curve:
  896. .. rst-class:: classref-property
  897. :ref:`Texture2D<class_Texture2D>` **linear_accel_curve**
  898. .. rst-class:: classref-property-setget
  899. - void **set_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`Texture2D<class_Texture2D>` texture **)**
  900. - :ref:`Texture2D<class_Texture2D>` **get_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  901. Each particle's linear acceleration will vary along this :ref:`CurveTexture<class_CurveTexture>`.
  902. .. rst-class:: classref-item-separator
  903. ----
  904. .. _class_ParticleProcessMaterial_property_linear_accel_max:
  905. .. rst-class:: classref-property
  906. :ref:`float<class_float>` **linear_accel_max** = ``0.0``
  907. .. rst-class:: classref-property-setget
  908. - void **set_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  909. - :ref:`float<class_float>` **get_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  910. Maximum linear acceleration applied to each particle in the direction of motion.
  911. .. rst-class:: classref-item-separator
  912. ----
  913. .. _class_ParticleProcessMaterial_property_linear_accel_min:
  914. .. rst-class:: classref-property
  915. :ref:`float<class_float>` **linear_accel_min** = ``0.0``
  916. .. rst-class:: classref-property-setget
  917. - void **set_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  918. - :ref:`float<class_float>` **get_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  919. Minimum equivalent of :ref:`linear_accel_max<class_ParticleProcessMaterial_property_linear_accel_max>`.
  920. .. rst-class:: classref-item-separator
  921. ----
  922. .. _class_ParticleProcessMaterial_property_orbit_velocity_curve:
  923. .. rst-class:: classref-property
  924. :ref:`Texture2D<class_Texture2D>` **orbit_velocity_curve**
  925. .. rst-class:: classref-property-setget
  926. - void **set_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`Texture2D<class_Texture2D>` texture **)**
  927. - :ref:`Texture2D<class_Texture2D>` **get_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  928. Each particle's orbital velocity will vary along this :ref:`CurveTexture<class_CurveTexture>`.
  929. \ **Note:** For 3D orbital velocity, use a :ref:`CurveXYZTexture<class_CurveXYZTexture>`.
  930. \ **Note:** Animated velocities will not be affected by damping, use :ref:`velocity_limit_curve<class_ParticleProcessMaterial_property_velocity_limit_curve>` instead.
  931. .. rst-class:: classref-item-separator
  932. ----
  933. .. _class_ParticleProcessMaterial_property_orbit_velocity_max:
  934. .. rst-class:: classref-property
  935. :ref:`float<class_float>` **orbit_velocity_max** = ``0.0``
  936. .. rst-class:: classref-property-setget
  937. - void **set_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  938. - :ref:`float<class_float>` **get_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  939. Maximum orbital velocity applied to each particle. Makes the particles circle around origin. Specified in number of full rotations around origin per second.
  940. \ **Note:** Animated velocities will not be affected by damping, use :ref:`velocity_limit_curve<class_ParticleProcessMaterial_property_velocity_limit_curve>` instead.
  941. .. rst-class:: classref-item-separator
  942. ----
  943. .. _class_ParticleProcessMaterial_property_orbit_velocity_min:
  944. .. rst-class:: classref-property
  945. :ref:`float<class_float>` **orbit_velocity_min** = ``0.0``
  946. .. rst-class:: classref-property-setget
  947. - void **set_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  948. - :ref:`float<class_float>` **get_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  949. Minimum equivalent of :ref:`orbit_velocity_max<class_ParticleProcessMaterial_property_orbit_velocity_max>`.
  950. \ **Note:** Animated velocities will not be affected by damping, use :ref:`velocity_limit_curve<class_ParticleProcessMaterial_property_velocity_limit_curve>` instead.
  951. .. rst-class:: classref-item-separator
  952. ----
  953. .. _class_ParticleProcessMaterial_property_particle_flag_align_y:
  954. .. rst-class:: classref-property
  955. :ref:`bool<class_bool>` **particle_flag_align_y** = ``false``
  956. .. rst-class:: classref-property-setget
  957. - void **set_particle_flag** **(** :ref:`ParticleFlags<enum_ParticleProcessMaterial_ParticleFlags>` particle_flag, :ref:`bool<class_bool>` enable **)**
  958. - :ref:`bool<class_bool>` **get_particle_flag** **(** :ref:`ParticleFlags<enum_ParticleProcessMaterial_ParticleFlags>` particle_flag **)** |const|
  959. Align Y axis of particle with the direction of its velocity.
  960. .. rst-class:: classref-item-separator
  961. ----
  962. .. _class_ParticleProcessMaterial_property_particle_flag_damping_as_friction:
  963. .. rst-class:: classref-property
  964. :ref:`bool<class_bool>` **particle_flag_damping_as_friction** = ``false``
  965. .. rst-class:: classref-property-setget
  966. - void **set_particle_flag** **(** :ref:`ParticleFlags<enum_ParticleProcessMaterial_ParticleFlags>` particle_flag, :ref:`bool<class_bool>` enable **)**
  967. - :ref:`bool<class_bool>` **get_particle_flag** **(** :ref:`ParticleFlags<enum_ParticleProcessMaterial_ParticleFlags>` particle_flag **)** |const|
  968. Changes the behavior of the damping properties from a linear deceleration to a deceleration based on speed percentage.
  969. .. rst-class:: classref-item-separator
  970. ----
  971. .. _class_ParticleProcessMaterial_property_particle_flag_disable_z:
  972. .. rst-class:: classref-property
  973. :ref:`bool<class_bool>` **particle_flag_disable_z** = ``false``
  974. .. rst-class:: classref-property-setget
  975. - void **set_particle_flag** **(** :ref:`ParticleFlags<enum_ParticleProcessMaterial_ParticleFlags>` particle_flag, :ref:`bool<class_bool>` enable **)**
  976. - :ref:`bool<class_bool>` **get_particle_flag** **(** :ref:`ParticleFlags<enum_ParticleProcessMaterial_ParticleFlags>` particle_flag **)** |const|
  977. If ``true``, particles will not move on the z axis.
  978. .. rst-class:: classref-item-separator
  979. ----
  980. .. _class_ParticleProcessMaterial_property_particle_flag_rotate_y:
  981. .. rst-class:: classref-property
  982. :ref:`bool<class_bool>` **particle_flag_rotate_y** = ``false``
  983. .. rst-class:: classref-property-setget
  984. - void **set_particle_flag** **(** :ref:`ParticleFlags<enum_ParticleProcessMaterial_ParticleFlags>` particle_flag, :ref:`bool<class_bool>` enable **)**
  985. - :ref:`bool<class_bool>` **get_particle_flag** **(** :ref:`ParticleFlags<enum_ParticleProcessMaterial_ParticleFlags>` particle_flag **)** |const|
  986. If ``true``, particles rotate around Y axis by :ref:`angle_min<class_ParticleProcessMaterial_property_angle_min>`.
  987. .. rst-class:: classref-item-separator
  988. ----
  989. .. _class_ParticleProcessMaterial_property_radial_accel_curve:
  990. .. rst-class:: classref-property
  991. :ref:`Texture2D<class_Texture2D>` **radial_accel_curve**
  992. .. rst-class:: classref-property-setget
  993. - void **set_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`Texture2D<class_Texture2D>` texture **)**
  994. - :ref:`Texture2D<class_Texture2D>` **get_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  995. Each particle's radial acceleration will vary along this :ref:`CurveTexture<class_CurveTexture>`.
  996. .. rst-class:: classref-item-separator
  997. ----
  998. .. _class_ParticleProcessMaterial_property_radial_accel_max:
  999. .. rst-class:: classref-property
  1000. :ref:`float<class_float>` **radial_accel_max** = ``0.0``
  1001. .. rst-class:: classref-property-setget
  1002. - void **set_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  1003. - :ref:`float<class_float>` **get_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  1004. Maximum radial acceleration applied to each particle. Makes particle accelerate away from the origin or towards it if negative.
  1005. .. rst-class:: classref-item-separator
  1006. ----
  1007. .. _class_ParticleProcessMaterial_property_radial_accel_min:
  1008. .. rst-class:: classref-property
  1009. :ref:`float<class_float>` **radial_accel_min** = ``0.0``
  1010. .. rst-class:: classref-property-setget
  1011. - void **set_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  1012. - :ref:`float<class_float>` **get_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  1013. Minimum equivalent of :ref:`radial_accel_max<class_ParticleProcessMaterial_property_radial_accel_max>`.
  1014. .. rst-class:: classref-item-separator
  1015. ----
  1016. .. _class_ParticleProcessMaterial_property_radial_velocity_curve:
  1017. .. rst-class:: classref-property
  1018. :ref:`Texture2D<class_Texture2D>` **radial_velocity_curve**
  1019. .. rst-class:: classref-property-setget
  1020. - void **set_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`Texture2D<class_Texture2D>` texture **)**
  1021. - :ref:`Texture2D<class_Texture2D>` **get_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  1022. A :ref:`CurveTexture<class_CurveTexture>` that defines the velocity over the particle's lifetime away (or toward) the :ref:`velocity_pivot<class_ParticleProcessMaterial_property_velocity_pivot>`.
  1023. \ **Note:** Animated velocities will not be affected by damping, use :ref:`velocity_limit_curve<class_ParticleProcessMaterial_property_velocity_limit_curve>` instead.
  1024. .. rst-class:: classref-item-separator
  1025. ----
  1026. .. _class_ParticleProcessMaterial_property_radial_velocity_max:
  1027. .. rst-class:: classref-property
  1028. :ref:`float<class_float>` **radial_velocity_max** = ``0.0``
  1029. .. rst-class:: classref-property-setget
  1030. - void **set_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  1031. - :ref:`float<class_float>` **get_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  1032. Maximum radial velocity applied to each particle. Makes particles move away from the :ref:`velocity_pivot<class_ParticleProcessMaterial_property_velocity_pivot>`, or toward it if negative.
  1033. \ **Note:** Animated velocities will not be affected by damping, use :ref:`velocity_limit_curve<class_ParticleProcessMaterial_property_velocity_limit_curve>` instead.
  1034. .. rst-class:: classref-item-separator
  1035. ----
  1036. .. _class_ParticleProcessMaterial_property_radial_velocity_min:
  1037. .. rst-class:: classref-property
  1038. :ref:`float<class_float>` **radial_velocity_min** = ``0.0``
  1039. .. rst-class:: classref-property-setget
  1040. - void **set_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  1041. - :ref:`float<class_float>` **get_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  1042. Minimum radial velocity applied to each particle. Makes particles move away from the :ref:`velocity_pivot<class_ParticleProcessMaterial_property_velocity_pivot>`, or toward it if negative.
  1043. \ **Note:** Animated velocities will not be affected by damping, use :ref:`velocity_limit_curve<class_ParticleProcessMaterial_property_velocity_limit_curve>` instead.
  1044. .. rst-class:: classref-item-separator
  1045. ----
  1046. .. _class_ParticleProcessMaterial_property_scale_curve:
  1047. .. rst-class:: classref-property
  1048. :ref:`Texture2D<class_Texture2D>` **scale_curve**
  1049. .. rst-class:: classref-property-setget
  1050. - void **set_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`Texture2D<class_Texture2D>` texture **)**
  1051. - :ref:`Texture2D<class_Texture2D>` **get_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  1052. Each particle's scale will vary along this :ref:`CurveTexture<class_CurveTexture>`. If a :ref:`CurveXYZTexture<class_CurveXYZTexture>` is supplied instead, the scale will be separated per-axis.
  1053. .. rst-class:: classref-item-separator
  1054. ----
  1055. .. _class_ParticleProcessMaterial_property_scale_max:
  1056. .. rst-class:: classref-property
  1057. :ref:`float<class_float>` **scale_max** = ``1.0``
  1058. .. rst-class:: classref-property-setget
  1059. - void **set_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  1060. - :ref:`float<class_float>` **get_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  1061. Maximum initial scale applied to each particle.
  1062. .. rst-class:: classref-item-separator
  1063. ----
  1064. .. _class_ParticleProcessMaterial_property_scale_min:
  1065. .. rst-class:: classref-property
  1066. :ref:`float<class_float>` **scale_min** = ``1.0``
  1067. .. rst-class:: classref-property-setget
  1068. - void **set_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  1069. - :ref:`float<class_float>` **get_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  1070. Minimum equivalent of :ref:`scale_max<class_ParticleProcessMaterial_property_scale_max>`.
  1071. .. rst-class:: classref-item-separator
  1072. ----
  1073. .. _class_ParticleProcessMaterial_property_scale_over_velocity_curve:
  1074. .. rst-class:: classref-property
  1075. :ref:`Texture2D<class_Texture2D>` **scale_over_velocity_curve**
  1076. .. rst-class:: classref-property-setget
  1077. - void **set_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`Texture2D<class_Texture2D>` texture **)**
  1078. - :ref:`Texture2D<class_Texture2D>` **get_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  1079. Either a :ref:`CurveTexture<class_CurveTexture>` or a :ref:`CurveXYZTexture<class_CurveXYZTexture>` that scales each particle based on its velocity.
  1080. .. rst-class:: classref-item-separator
  1081. ----
  1082. .. _class_ParticleProcessMaterial_property_scale_over_velocity_max:
  1083. .. rst-class:: classref-property
  1084. :ref:`float<class_float>` **scale_over_velocity_max** = ``0.0``
  1085. .. rst-class:: classref-property-setget
  1086. - void **set_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  1087. - :ref:`float<class_float>` **get_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  1088. Maximum velocity value reference for :ref:`scale_over_velocity_curve<class_ParticleProcessMaterial_property_scale_over_velocity_curve>`.
  1089. \ :ref:`scale_over_velocity_curve<class_ParticleProcessMaterial_property_scale_over_velocity_curve>` will be interpolated between :ref:`scale_over_velocity_min<class_ParticleProcessMaterial_property_scale_over_velocity_min>` and :ref:`scale_over_velocity_max<class_ParticleProcessMaterial_property_scale_over_velocity_max>`.
  1090. .. rst-class:: classref-item-separator
  1091. ----
  1092. .. _class_ParticleProcessMaterial_property_scale_over_velocity_min:
  1093. .. rst-class:: classref-property
  1094. :ref:`float<class_float>` **scale_over_velocity_min** = ``0.0``
  1095. .. rst-class:: classref-property-setget
  1096. - void **set_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  1097. - :ref:`float<class_float>` **get_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  1098. Minimum velocity value reference for :ref:`scale_over_velocity_curve<class_ParticleProcessMaterial_property_scale_over_velocity_curve>`.
  1099. \ :ref:`scale_over_velocity_curve<class_ParticleProcessMaterial_property_scale_over_velocity_curve>` will be interpolated between :ref:`scale_over_velocity_min<class_ParticleProcessMaterial_property_scale_over_velocity_min>` and :ref:`scale_over_velocity_max<class_ParticleProcessMaterial_property_scale_over_velocity_max>`.
  1100. .. rst-class:: classref-item-separator
  1101. ----
  1102. .. _class_ParticleProcessMaterial_property_spread:
  1103. .. rst-class:: classref-property
  1104. :ref:`float<class_float>` **spread** = ``45.0``
  1105. .. rst-class:: classref-property-setget
  1106. - void **set_spread** **(** :ref:`float<class_float>` value **)**
  1107. - :ref:`float<class_float>` **get_spread** **(** **)**
  1108. Each particle's initial direction range from ``+spread`` to ``-spread`` degrees.
  1109. .. rst-class:: classref-item-separator
  1110. ----
  1111. .. _class_ParticleProcessMaterial_property_sub_emitter_amount_at_collision:
  1112. .. rst-class:: classref-property
  1113. :ref:`int<class_int>` **sub_emitter_amount_at_collision**
  1114. .. rst-class:: classref-property-setget
  1115. - void **set_sub_emitter_amount_at_collision** **(** :ref:`int<class_int>` value **)**
  1116. - :ref:`int<class_int>` **get_sub_emitter_amount_at_collision** **(** **)**
  1117. The amount of particles to spawn from the subemitter node when a collision occurs. When combined with :ref:`COLLISION_HIDE_ON_CONTACT<class_ParticleProcessMaterial_constant_COLLISION_HIDE_ON_CONTACT>` on the main particles material, this can be used to achieve effects such as raindrops hitting the ground.
  1118. \ **Note:** This value shouldn't exceed :ref:`GPUParticles2D.amount<class_GPUParticles2D_property_amount>` or :ref:`GPUParticles3D.amount<class_GPUParticles3D_property_amount>` defined on the *subemitter node* (not the main node), relative to the subemitter's particle lifetime. If the number of particles is exceeded, no new particles will spawn from the subemitter until enough particles have expired.
  1119. .. rst-class:: classref-item-separator
  1120. ----
  1121. .. _class_ParticleProcessMaterial_property_sub_emitter_amount_at_end:
  1122. .. rst-class:: classref-property
  1123. :ref:`int<class_int>` **sub_emitter_amount_at_end**
  1124. .. rst-class:: classref-property-setget
  1125. - void **set_sub_emitter_amount_at_end** **(** :ref:`int<class_int>` value **)**
  1126. - :ref:`int<class_int>` **get_sub_emitter_amount_at_end** **(** **)**
  1127. The amount of particles to spawn from the subemitter node when the particle expires.
  1128. \ **Note:** This value shouldn't exceed :ref:`GPUParticles2D.amount<class_GPUParticles2D_property_amount>` or :ref:`GPUParticles3D.amount<class_GPUParticles3D_property_amount>` defined on the *subemitter node* (not the main node), relative to the subemitter's particle lifetime. If the number of particles is exceeded, no new particles will spawn from the subemitter until enough particles have expired.
  1129. .. rst-class:: classref-item-separator
  1130. ----
  1131. .. _class_ParticleProcessMaterial_property_sub_emitter_frequency:
  1132. .. rst-class:: classref-property
  1133. :ref:`float<class_float>` **sub_emitter_frequency**
  1134. .. rst-class:: classref-property-setget
  1135. - void **set_sub_emitter_frequency** **(** :ref:`float<class_float>` value **)**
  1136. - :ref:`float<class_float>` **get_sub_emitter_frequency** **(** **)**
  1137. The frequency at which particles should be emitted from the subemitter node. One particle will be spawned every :ref:`sub_emitter_frequency<class_ParticleProcessMaterial_property_sub_emitter_frequency>` seconds.
  1138. \ **Note:** This value shouldn't exceed :ref:`GPUParticles2D.amount<class_GPUParticles2D_property_amount>` or :ref:`GPUParticles3D.amount<class_GPUParticles3D_property_amount>` defined on the *subemitter node* (not the main node), relative to the subemitter's particle lifetime. If the number of particles is exceeded, no new particles will spawn from the subemitter until enough particles have expired.
  1139. .. rst-class:: classref-item-separator
  1140. ----
  1141. .. _class_ParticleProcessMaterial_property_sub_emitter_keep_velocity:
  1142. .. rst-class:: classref-property
  1143. :ref:`bool<class_bool>` **sub_emitter_keep_velocity** = ``false``
  1144. .. rst-class:: classref-property-setget
  1145. - void **set_sub_emitter_keep_velocity** **(** :ref:`bool<class_bool>` value **)**
  1146. - :ref:`bool<class_bool>` **get_sub_emitter_keep_velocity** **(** **)**
  1147. If ``true``, the subemitter inherits the parent particle's velocity when it spawns.
  1148. .. rst-class:: classref-item-separator
  1149. ----
  1150. .. _class_ParticleProcessMaterial_property_sub_emitter_mode:
  1151. .. rst-class:: classref-property
  1152. :ref:`SubEmitterMode<enum_ParticleProcessMaterial_SubEmitterMode>` **sub_emitter_mode** = ``0``
  1153. .. rst-class:: classref-property-setget
  1154. - void **set_sub_emitter_mode** **(** :ref:`SubEmitterMode<enum_ParticleProcessMaterial_SubEmitterMode>` value **)**
  1155. - :ref:`SubEmitterMode<enum_ParticleProcessMaterial_SubEmitterMode>` **get_sub_emitter_mode** **(** **)**
  1156. The particle subemitter mode (see :ref:`GPUParticles2D.sub_emitter<class_GPUParticles2D_property_sub_emitter>` and :ref:`GPUParticles3D.sub_emitter<class_GPUParticles3D_property_sub_emitter>`).
  1157. .. rst-class:: classref-item-separator
  1158. ----
  1159. .. _class_ParticleProcessMaterial_property_tangential_accel_curve:
  1160. .. rst-class:: classref-property
  1161. :ref:`Texture2D<class_Texture2D>` **tangential_accel_curve**
  1162. .. rst-class:: classref-property-setget
  1163. - void **set_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`Texture2D<class_Texture2D>` texture **)**
  1164. - :ref:`Texture2D<class_Texture2D>` **get_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  1165. Each particle's tangential acceleration will vary along this :ref:`CurveTexture<class_CurveTexture>`.
  1166. .. rst-class:: classref-item-separator
  1167. ----
  1168. .. _class_ParticleProcessMaterial_property_tangential_accel_max:
  1169. .. rst-class:: classref-property
  1170. :ref:`float<class_float>` **tangential_accel_max** = ``0.0``
  1171. .. rst-class:: classref-property-setget
  1172. - void **set_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  1173. - :ref:`float<class_float>` **get_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  1174. Maximum tangential acceleration applied to each particle. Tangential acceleration is perpendicular to the particle's velocity giving the particles a swirling motion.
  1175. .. rst-class:: classref-item-separator
  1176. ----
  1177. .. _class_ParticleProcessMaterial_property_tangential_accel_min:
  1178. .. rst-class:: classref-property
  1179. :ref:`float<class_float>` **tangential_accel_min** = ``0.0``
  1180. .. rst-class:: classref-property-setget
  1181. - void **set_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  1182. - :ref:`float<class_float>` **get_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  1183. Minimum equivalent of :ref:`tangential_accel_max<class_ParticleProcessMaterial_property_tangential_accel_max>`.
  1184. .. rst-class:: classref-item-separator
  1185. ----
  1186. .. _class_ParticleProcessMaterial_property_turbulence_enabled:
  1187. .. rst-class:: classref-property
  1188. :ref:`bool<class_bool>` **turbulence_enabled** = ``false``
  1189. .. rst-class:: classref-property-setget
  1190. - void **set_turbulence_enabled** **(** :ref:`bool<class_bool>` value **)**
  1191. - :ref:`bool<class_bool>` **get_turbulence_enabled** **(** **)**
  1192. If ``true``, enables turbulence for the particle system. Turbulence can be used to vary particle movement according to its position (based on a 3D noise pattern). In 3D, :ref:`GPUParticlesAttractorVectorField3D<class_GPUParticlesAttractorVectorField3D>` with :ref:`NoiseTexture3D<class_NoiseTexture3D>` can be used as an alternative to turbulence that works in world space and with multiple particle systems reacting in the same way.
  1193. \ **Note:** Enabling turbulence has a high performance cost on the GPU. Only enable turbulence on a few particle systems at once at most, and consider disabling it when targeting mobile/web platforms.
  1194. .. rst-class:: classref-item-separator
  1195. ----
  1196. .. _class_ParticleProcessMaterial_property_turbulence_influence_max:
  1197. .. rst-class:: classref-property
  1198. :ref:`float<class_float>` **turbulence_influence_max** = ``0.1``
  1199. .. rst-class:: classref-property-setget
  1200. - void **set_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  1201. - :ref:`float<class_float>` **get_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  1202. Maximum turbulence influence on each particle.
  1203. The actual amount of turbulence influence on each particle is calculated as a random value between :ref:`turbulence_influence_min<class_ParticleProcessMaterial_property_turbulence_influence_min>` and :ref:`turbulence_influence_max<class_ParticleProcessMaterial_property_turbulence_influence_max>` and multiplied by the amount of turbulence influence from :ref:`turbulence_influence_over_life<class_ParticleProcessMaterial_property_turbulence_influence_over_life>`.
  1204. .. rst-class:: classref-item-separator
  1205. ----
  1206. .. _class_ParticleProcessMaterial_property_turbulence_influence_min:
  1207. .. rst-class:: classref-property
  1208. :ref:`float<class_float>` **turbulence_influence_min** = ``0.1``
  1209. .. rst-class:: classref-property-setget
  1210. - void **set_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  1211. - :ref:`float<class_float>` **get_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  1212. Minimum turbulence influence on each particle.
  1213. The actual amount of turbulence influence on each particle is calculated as a random value between :ref:`turbulence_influence_min<class_ParticleProcessMaterial_property_turbulence_influence_min>` and :ref:`turbulence_influence_max<class_ParticleProcessMaterial_property_turbulence_influence_max>` and multiplied by the amount of turbulence influence from :ref:`turbulence_influence_over_life<class_ParticleProcessMaterial_property_turbulence_influence_over_life>`.
  1214. .. rst-class:: classref-item-separator
  1215. ----
  1216. .. _class_ParticleProcessMaterial_property_turbulence_influence_over_life:
  1217. .. rst-class:: classref-property
  1218. :ref:`Texture2D<class_Texture2D>` **turbulence_influence_over_life**
  1219. .. rst-class:: classref-property-setget
  1220. - void **set_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`Texture2D<class_Texture2D>` texture **)**
  1221. - :ref:`Texture2D<class_Texture2D>` **get_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  1222. Each particle's amount of turbulence will be influenced along this :ref:`CurveTexture<class_CurveTexture>` over its life time.
  1223. .. rst-class:: classref-item-separator
  1224. ----
  1225. .. _class_ParticleProcessMaterial_property_turbulence_initial_displacement_max:
  1226. .. rst-class:: classref-property
  1227. :ref:`float<class_float>` **turbulence_initial_displacement_max** = ``0.0``
  1228. .. rst-class:: classref-property-setget
  1229. - void **set_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  1230. - :ref:`float<class_float>` **get_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  1231. Maximum displacement of each particle's spawn position by the turbulence.
  1232. The actual amount of displacement will be a factor of the underlying turbulence multiplied by a random value between :ref:`turbulence_initial_displacement_min<class_ParticleProcessMaterial_property_turbulence_initial_displacement_min>` and :ref:`turbulence_initial_displacement_max<class_ParticleProcessMaterial_property_turbulence_initial_displacement_max>`.
  1233. .. rst-class:: classref-item-separator
  1234. ----
  1235. .. _class_ParticleProcessMaterial_property_turbulence_initial_displacement_min:
  1236. .. rst-class:: classref-property
  1237. :ref:`float<class_float>` **turbulence_initial_displacement_min** = ``0.0``
  1238. .. rst-class:: classref-property-setget
  1239. - void **set_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  1240. - :ref:`float<class_float>` **get_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  1241. Minimum displacement of each particle's spawn position by the turbulence.
  1242. The actual amount of displacement will be a factor of the underlying turbulence multiplied by a random value between :ref:`turbulence_initial_displacement_min<class_ParticleProcessMaterial_property_turbulence_initial_displacement_min>` and :ref:`turbulence_initial_displacement_max<class_ParticleProcessMaterial_property_turbulence_initial_displacement_max>`.
  1243. .. rst-class:: classref-item-separator
  1244. ----
  1245. .. _class_ParticleProcessMaterial_property_turbulence_noise_scale:
  1246. .. rst-class:: classref-property
  1247. :ref:`float<class_float>` **turbulence_noise_scale** = ``9.0``
  1248. .. rst-class:: classref-property-setget
  1249. - void **set_turbulence_noise_scale** **(** :ref:`float<class_float>` value **)**
  1250. - :ref:`float<class_float>` **get_turbulence_noise_scale** **(** **)**
  1251. This value controls the overall scale/frequency of the turbulence noise pattern.
  1252. A small scale will result in smaller features with more detail while a high scale will result in smoother noise with larger features.
  1253. .. rst-class:: classref-item-separator
  1254. ----
  1255. .. _class_ParticleProcessMaterial_property_turbulence_noise_speed:
  1256. .. rst-class:: classref-property
  1257. :ref:`Vector3<class_Vector3>` **turbulence_noise_speed** = ``Vector3(0, 0, 0)``
  1258. .. rst-class:: classref-property-setget
  1259. - void **set_turbulence_noise_speed** **(** :ref:`Vector3<class_Vector3>` value **)**
  1260. - :ref:`Vector3<class_Vector3>` **get_turbulence_noise_speed** **(** **)**
  1261. A scrolling velocity for the turbulence field. This sets a directional trend for the pattern to move in over time.
  1262. The default value of ``Vector3(0, 0, 0)`` turns off the scrolling.
  1263. .. rst-class:: classref-item-separator
  1264. ----
  1265. .. _class_ParticleProcessMaterial_property_turbulence_noise_speed_random:
  1266. .. rst-class:: classref-property
  1267. :ref:`float<class_float>` **turbulence_noise_speed_random** = ``0.2``
  1268. .. rst-class:: classref-property-setget
  1269. - void **set_turbulence_noise_speed_random** **(** :ref:`float<class_float>` value **)**
  1270. - :ref:`float<class_float>` **get_turbulence_noise_speed_random** **(** **)**
  1271. The in-place rate of change of the turbulence field. This defines how quickly the noise pattern varies over time.
  1272. A value of 0.0 will result in a fixed pattern.
  1273. .. rst-class:: classref-item-separator
  1274. ----
  1275. .. _class_ParticleProcessMaterial_property_turbulence_noise_strength:
  1276. .. rst-class:: classref-property
  1277. :ref:`float<class_float>` **turbulence_noise_strength** = ``1.0``
  1278. .. rst-class:: classref-property-setget
  1279. - void **set_turbulence_noise_strength** **(** :ref:`float<class_float>` value **)**
  1280. - :ref:`float<class_float>` **get_turbulence_noise_strength** **(** **)**
  1281. The turbulence noise strength. Increasing this will result in a stronger, more contrasting, flow pattern.
  1282. .. rst-class:: classref-item-separator
  1283. ----
  1284. .. _class_ParticleProcessMaterial_property_velocity_limit_curve:
  1285. .. rst-class:: classref-property
  1286. :ref:`Texture2D<class_Texture2D>` **velocity_limit_curve**
  1287. .. rst-class:: classref-property-setget
  1288. - void **set_velocity_limit_curve** **(** :ref:`Texture2D<class_Texture2D>` value **)**
  1289. - :ref:`Texture2D<class_Texture2D>` **get_velocity_limit_curve** **(** **)**
  1290. A :ref:`CurveTexture<class_CurveTexture>` that defines the maximum velocity of a particle during its lifetime.
  1291. .. rst-class:: classref-item-separator
  1292. ----
  1293. .. _class_ParticleProcessMaterial_property_velocity_pivot:
  1294. .. rst-class:: classref-property
  1295. :ref:`Vector3<class_Vector3>` **velocity_pivot** = ``Vector3(0, 0, 0)``
  1296. .. rst-class:: classref-property-setget
  1297. - void **set_velocity_pivot** **(** :ref:`Vector3<class_Vector3>` value **)**
  1298. - :ref:`Vector3<class_Vector3>` **get_velocity_pivot** **(** **)**
  1299. A pivot point used to calculate radial and orbital velocity of particles.
  1300. .. rst-class:: classref-section-separator
  1301. ----
  1302. .. rst-class:: classref-descriptions-group
  1303. Method Descriptions
  1304. -------------------
  1305. .. _class_ParticleProcessMaterial_method_get_param_max:
  1306. .. rst-class:: classref-method
  1307. :ref:`float<class_float>` **get_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  1308. Returns the maximum value range for the given parameter.
  1309. .. rst-class:: classref-item-separator
  1310. ----
  1311. .. _class_ParticleProcessMaterial_method_get_param_min:
  1312. .. rst-class:: classref-method
  1313. :ref:`float<class_float>` **get_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  1314. Returns the minimum value range for the given parameter.
  1315. .. rst-class:: classref-item-separator
  1316. ----
  1317. .. _class_ParticleProcessMaterial_method_get_param_texture:
  1318. .. rst-class:: classref-method
  1319. :ref:`Texture2D<class_Texture2D>` **get_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  1320. Returns the :ref:`Texture2D<class_Texture2D>` used by the specified parameter.
  1321. .. rst-class:: classref-item-separator
  1322. ----
  1323. .. _class_ParticleProcessMaterial_method_get_particle_flag:
  1324. .. rst-class:: classref-method
  1325. :ref:`bool<class_bool>` **get_particle_flag** **(** :ref:`ParticleFlags<enum_ParticleProcessMaterial_ParticleFlags>` particle_flag **)** |const|
  1326. Returns ``true`` if the specified particle flag is enabled. See :ref:`ParticleFlags<enum_ParticleProcessMaterial_ParticleFlags>` for options.
  1327. .. rst-class:: classref-item-separator
  1328. ----
  1329. .. _class_ParticleProcessMaterial_method_set_param_max:
  1330. .. rst-class:: classref-method
  1331. void **set_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  1332. Sets the maximum value range for the given parameter.
  1333. .. rst-class:: classref-item-separator
  1334. ----
  1335. .. _class_ParticleProcessMaterial_method_set_param_min:
  1336. .. rst-class:: classref-method
  1337. void **set_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  1338. Sets the minimum value range for the given parameter.
  1339. .. rst-class:: classref-item-separator
  1340. ----
  1341. .. _class_ParticleProcessMaterial_method_set_param_texture:
  1342. .. rst-class:: classref-method
  1343. void **set_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`Texture2D<class_Texture2D>` texture **)**
  1344. Sets the :ref:`Texture2D<class_Texture2D>` for the specified :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>`.
  1345. .. rst-class:: classref-item-separator
  1346. ----
  1347. .. _class_ParticleProcessMaterial_method_set_particle_flag:
  1348. .. rst-class:: classref-method
  1349. void **set_particle_flag** **(** :ref:`ParticleFlags<enum_ParticleProcessMaterial_ParticleFlags>` particle_flag, :ref:`bool<class_bool>` enable **)**
  1350. If ``true``, enables the specified particle flag. See :ref:`ParticleFlags<enum_ParticleProcessMaterial_ParticleFlags>` for options.
  1351. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
  1352. .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
  1353. .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
  1354. .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
  1355. .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`
  1356. .. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`
  1357. .. |bitfield| replace:: :abbr:`BitField (This value is an integer composed as a bitmask of the following flags.)`