class_particleprocessmaterial.rst 134 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439
  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:`Vector2<class_Vector2>` | :ref:`get_param<class_ParticleProcessMaterial_method_get_param>` **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const| |
  216. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  217. | :ref:`float<class_float>` | :ref:`get_param_max<class_ParticleProcessMaterial_method_get_param_max>` **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const| |
  218. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  219. | :ref:`float<class_float>` | :ref:`get_param_min<class_ParticleProcessMaterial_method_get_param_min>` **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const| |
  220. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  221. | :ref:`Texture2D<class_Texture2D>` | :ref:`get_param_texture<class_ParticleProcessMaterial_method_get_param_texture>` **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const| |
  222. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  223. | :ref:`bool<class_bool>` | :ref:`get_particle_flag<class_ParticleProcessMaterial_method_get_particle_flag>` **(** :ref:`ParticleFlags<enum_ParticleProcessMaterial_ParticleFlags>` particle_flag **)** |const| |
  224. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  225. | void | :ref:`set_param<class_ParticleProcessMaterial_method_set_param>` **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`Vector2<class_Vector2>` value **)** |
  226. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  227. | void | :ref:`set_param_max<class_ParticleProcessMaterial_method_set_param_max>` **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)** |
  228. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  229. | void | :ref:`set_param_min<class_ParticleProcessMaterial_method_set_param_min>` **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)** |
  230. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  231. | void | :ref:`set_param_texture<class_ParticleProcessMaterial_method_set_param_texture>` **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`Texture2D<class_Texture2D>` texture **)** |
  232. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  233. | void | :ref:`set_particle_flag<class_ParticleProcessMaterial_method_set_particle_flag>` **(** :ref:`ParticleFlags<enum_ParticleProcessMaterial_ParticleFlags>` particle_flag, :ref:`bool<class_bool>` enable **)** |
  234. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  235. .. rst-class:: classref-section-separator
  236. ----
  237. .. rst-class:: classref-descriptions-group
  238. Enumerations
  239. ------------
  240. .. _enum_ParticleProcessMaterial_Parameter:
  241. .. rst-class:: classref-enumeration
  242. enum **Parameter**:
  243. .. _class_ParticleProcessMaterial_constant_PARAM_INITIAL_LINEAR_VELOCITY:
  244. .. rst-class:: classref-enumeration-constant
  245. :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` **PARAM_INITIAL_LINEAR_VELOCITY** = ``0``
  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 initial velocity properties.
  247. .. _class_ParticleProcessMaterial_constant_PARAM_ANGULAR_VELOCITY:
  248. .. rst-class:: classref-enumeration-constant
  249. :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` **PARAM_ANGULAR_VELOCITY** = ``1``
  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 angular velocity properties.
  251. .. _class_ParticleProcessMaterial_constant_PARAM_ORBIT_VELOCITY:
  252. .. rst-class:: classref-enumeration-constant
  253. :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` **PARAM_ORBIT_VELOCITY** = ``2``
  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 orbital velocity properties.
  255. .. _class_ParticleProcessMaterial_constant_PARAM_LINEAR_ACCEL:
  256. .. rst-class:: classref-enumeration-constant
  257. :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` **PARAM_LINEAR_ACCEL** = ``3``
  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 linear acceleration properties.
  259. .. _class_ParticleProcessMaterial_constant_PARAM_RADIAL_ACCEL:
  260. .. rst-class:: classref-enumeration-constant
  261. :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` **PARAM_RADIAL_ACCEL** = ``4``
  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 radial acceleration properties.
  263. .. _class_ParticleProcessMaterial_constant_PARAM_TANGENTIAL_ACCEL:
  264. .. rst-class:: classref-enumeration-constant
  265. :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` **PARAM_TANGENTIAL_ACCEL** = ``5``
  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 tangential acceleration properties.
  267. .. _class_ParticleProcessMaterial_constant_PARAM_DAMPING:
  268. .. rst-class:: classref-enumeration-constant
  269. :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` **PARAM_DAMPING** = ``6``
  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 damping properties.
  271. .. _class_ParticleProcessMaterial_constant_PARAM_ANGLE:
  272. .. rst-class:: classref-enumeration-constant
  273. :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` **PARAM_ANGLE** = ``7``
  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 angle properties.
  275. .. _class_ParticleProcessMaterial_constant_PARAM_SCALE:
  276. .. rst-class:: classref-enumeration-constant
  277. :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` **PARAM_SCALE** = ``8``
  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 scale properties.
  279. .. _class_ParticleProcessMaterial_constant_PARAM_HUE_VARIATION:
  280. .. rst-class:: classref-enumeration-constant
  281. :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` **PARAM_HUE_VARIATION** = ``9``
  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 hue variation properties.
  283. .. _class_ParticleProcessMaterial_constant_PARAM_ANIM_SPEED:
  284. .. rst-class:: classref-enumeration-constant
  285. :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` **PARAM_ANIM_SPEED** = ``10``
  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 speed properties.
  287. .. _class_ParticleProcessMaterial_constant_PARAM_ANIM_OFFSET:
  288. .. rst-class:: classref-enumeration-constant
  289. :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` **PARAM_ANIM_OFFSET** = ``11``
  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 animation offset properties.
  291. .. _class_ParticleProcessMaterial_constant_PARAM_RADIAL_VELOCITY:
  292. .. rst-class:: classref-enumeration-constant
  293. :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` **PARAM_RADIAL_VELOCITY** = ``15``
  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 radial velocity properties.
  295. .. _class_ParticleProcessMaterial_constant_PARAM_DIRECTIONAL_VELOCITY:
  296. .. rst-class:: classref-enumeration-constant
  297. :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` **PARAM_DIRECTIONAL_VELOCITY** = ``16``
  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 directional velocity properties.
  299. .. _class_ParticleProcessMaterial_constant_PARAM_SCALE_OVER_VELOCITY:
  300. .. rst-class:: classref-enumeration-constant
  301. :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` **PARAM_SCALE_OVER_VELOCITY** = ``17``
  302. 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.
  303. .. _class_ParticleProcessMaterial_constant_PARAM_MAX:
  304. .. rst-class:: classref-enumeration-constant
  305. :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` **PARAM_MAX** = ``18``
  306. Represents the size of the :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` enum.
  307. .. _class_ParticleProcessMaterial_constant_PARAM_TURB_VEL_INFLUENCE:
  308. .. rst-class:: classref-enumeration-constant
  309. :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` **PARAM_TURB_VEL_INFLUENCE** = ``13``
  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 und maximum influence on each particles velocity.
  311. .. _class_ParticleProcessMaterial_constant_PARAM_TURB_INIT_DISPLACEMENT:
  312. .. rst-class:: classref-enumeration-constant
  313. :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` **PARAM_TURB_INIT_DISPLACEMENT** = ``14``
  314. 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.
  315. .. _class_ParticleProcessMaterial_constant_PARAM_TURB_INFLUENCE_OVER_LIFE:
  316. .. rst-class:: classref-enumeration-constant
  317. :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` **PARAM_TURB_INFLUENCE_OVER_LIFE** = ``12``
  318. Use with :ref:`set_param_texture<class_ParticleProcessMaterial_method_set_param_texture>` to set the turbulence influence over the particles life time.
  319. .. rst-class:: classref-item-separator
  320. ----
  321. .. _enum_ParticleProcessMaterial_ParticleFlags:
  322. .. rst-class:: classref-enumeration
  323. enum **ParticleFlags**:
  324. .. _class_ParticleProcessMaterial_constant_PARTICLE_FLAG_ALIGN_Y_TO_VELOCITY:
  325. .. rst-class:: classref-enumeration-constant
  326. :ref:`ParticleFlags<enum_ParticleProcessMaterial_ParticleFlags>` **PARTICLE_FLAG_ALIGN_Y_TO_VELOCITY** = ``0``
  327. 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>`.
  328. .. _class_ParticleProcessMaterial_constant_PARTICLE_FLAG_ROTATE_Y:
  329. .. rst-class:: classref-enumeration-constant
  330. :ref:`ParticleFlags<enum_ParticleProcessMaterial_ParticleFlags>` **PARTICLE_FLAG_ROTATE_Y** = ``1``
  331. 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>`.
  332. .. _class_ParticleProcessMaterial_constant_PARTICLE_FLAG_DISABLE_Z:
  333. .. rst-class:: classref-enumeration-constant
  334. :ref:`ParticleFlags<enum_ParticleProcessMaterial_ParticleFlags>` **PARTICLE_FLAG_DISABLE_Z** = ``2``
  335. 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>`.
  336. .. _class_ParticleProcessMaterial_constant_PARTICLE_FLAG_DAMPING_AS_FRICTION:
  337. .. rst-class:: classref-enumeration-constant
  338. :ref:`ParticleFlags<enum_ParticleProcessMaterial_ParticleFlags>` **PARTICLE_FLAG_DAMPING_AS_FRICTION** = ``3``
  339. .. _class_ParticleProcessMaterial_constant_PARTICLE_FLAG_MAX:
  340. .. rst-class:: classref-enumeration-constant
  341. :ref:`ParticleFlags<enum_ParticleProcessMaterial_ParticleFlags>` **PARTICLE_FLAG_MAX** = ``4``
  342. Represents the size of the :ref:`ParticleFlags<enum_ParticleProcessMaterial_ParticleFlags>` enum.
  343. .. rst-class:: classref-item-separator
  344. ----
  345. .. _enum_ParticleProcessMaterial_EmissionShape:
  346. .. rst-class:: classref-enumeration
  347. enum **EmissionShape**:
  348. .. _class_ParticleProcessMaterial_constant_EMISSION_SHAPE_POINT:
  349. .. rst-class:: classref-enumeration-constant
  350. :ref:`EmissionShape<enum_ParticleProcessMaterial_EmissionShape>` **EMISSION_SHAPE_POINT** = ``0``
  351. All particles will be emitted from a single point.
  352. .. _class_ParticleProcessMaterial_constant_EMISSION_SHAPE_SPHERE:
  353. .. rst-class:: classref-enumeration-constant
  354. :ref:`EmissionShape<enum_ParticleProcessMaterial_EmissionShape>` **EMISSION_SHAPE_SPHERE** = ``1``
  355. Particles will be emitted in the volume of a sphere.
  356. .. _class_ParticleProcessMaterial_constant_EMISSION_SHAPE_SPHERE_SURFACE:
  357. .. rst-class:: classref-enumeration-constant
  358. :ref:`EmissionShape<enum_ParticleProcessMaterial_EmissionShape>` **EMISSION_SHAPE_SPHERE_SURFACE** = ``2``
  359. Particles will be emitted on the surface of a sphere.
  360. .. _class_ParticleProcessMaterial_constant_EMISSION_SHAPE_BOX:
  361. .. rst-class:: classref-enumeration-constant
  362. :ref:`EmissionShape<enum_ParticleProcessMaterial_EmissionShape>` **EMISSION_SHAPE_BOX** = ``3``
  363. Particles will be emitted in the volume of a box.
  364. .. _class_ParticleProcessMaterial_constant_EMISSION_SHAPE_POINTS:
  365. .. rst-class:: classref-enumeration-constant
  366. :ref:`EmissionShape<enum_ParticleProcessMaterial_EmissionShape>` **EMISSION_SHAPE_POINTS** = ``4``
  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 color will be modulated by :ref:`emission_color_texture<class_ParticleProcessMaterial_property_emission_color_texture>`.
  368. .. _class_ParticleProcessMaterial_constant_EMISSION_SHAPE_DIRECTED_POINTS:
  369. .. rst-class:: classref-enumeration-constant
  370. :ref:`EmissionShape<enum_ParticleProcessMaterial_EmissionShape>` **EMISSION_SHAPE_DIRECTED_POINTS** = ``5``
  371. 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>`.
  372. .. _class_ParticleProcessMaterial_constant_EMISSION_SHAPE_RING:
  373. .. rst-class:: classref-enumeration-constant
  374. :ref:`EmissionShape<enum_ParticleProcessMaterial_EmissionShape>` **EMISSION_SHAPE_RING** = ``6``
  375. Particles will be emitted in a ring or cylinder.
  376. .. _class_ParticleProcessMaterial_constant_EMISSION_SHAPE_MAX:
  377. .. rst-class:: classref-enumeration-constant
  378. :ref:`EmissionShape<enum_ParticleProcessMaterial_EmissionShape>` **EMISSION_SHAPE_MAX** = ``7``
  379. Represents the size of the :ref:`EmissionShape<enum_ParticleProcessMaterial_EmissionShape>` enum.
  380. .. rst-class:: classref-item-separator
  381. ----
  382. .. _enum_ParticleProcessMaterial_SubEmitterMode:
  383. .. rst-class:: classref-enumeration
  384. enum **SubEmitterMode**:
  385. .. _class_ParticleProcessMaterial_constant_SUB_EMITTER_DISABLED:
  386. .. rst-class:: classref-enumeration-constant
  387. :ref:`SubEmitterMode<enum_ParticleProcessMaterial_SubEmitterMode>` **SUB_EMITTER_DISABLED** = ``0``
  388. .. _class_ParticleProcessMaterial_constant_SUB_EMITTER_CONSTANT:
  389. .. rst-class:: classref-enumeration-constant
  390. :ref:`SubEmitterMode<enum_ParticleProcessMaterial_SubEmitterMode>` **SUB_EMITTER_CONSTANT** = ``1``
  391. .. _class_ParticleProcessMaterial_constant_SUB_EMITTER_AT_END:
  392. .. rst-class:: classref-enumeration-constant
  393. :ref:`SubEmitterMode<enum_ParticleProcessMaterial_SubEmitterMode>` **SUB_EMITTER_AT_END** = ``2``
  394. .. _class_ParticleProcessMaterial_constant_SUB_EMITTER_AT_COLLISION:
  395. .. rst-class:: classref-enumeration-constant
  396. :ref:`SubEmitterMode<enum_ParticleProcessMaterial_SubEmitterMode>` **SUB_EMITTER_AT_COLLISION** = ``3``
  397. .. _class_ParticleProcessMaterial_constant_SUB_EMITTER_MAX:
  398. .. rst-class:: classref-enumeration-constant
  399. :ref:`SubEmitterMode<enum_ParticleProcessMaterial_SubEmitterMode>` **SUB_EMITTER_MAX** = ``4``
  400. Represents the size of the :ref:`SubEmitterMode<enum_ParticleProcessMaterial_SubEmitterMode>` enum.
  401. .. rst-class:: classref-item-separator
  402. ----
  403. .. _enum_ParticleProcessMaterial_CollisionMode:
  404. .. rst-class:: classref-enumeration
  405. enum **CollisionMode**:
  406. .. _class_ParticleProcessMaterial_constant_COLLISION_DISABLED:
  407. .. rst-class:: classref-enumeration-constant
  408. :ref:`CollisionMode<enum_ParticleProcessMaterial_CollisionMode>` **COLLISION_DISABLED** = ``0``
  409. No collision for particles. Particles will go through :ref:`GPUParticlesCollision3D<class_GPUParticlesCollision3D>` nodes.
  410. .. _class_ParticleProcessMaterial_constant_COLLISION_RIGID:
  411. .. rst-class:: classref-enumeration-constant
  412. :ref:`CollisionMode<enum_ParticleProcessMaterial_CollisionMode>` **COLLISION_RIGID** = ``1``
  413. :ref:`RigidBody3D<class_RigidBody3D>`-style collision for particles using :ref:`GPUParticlesCollision3D<class_GPUParticlesCollision3D>` nodes.
  414. .. _class_ParticleProcessMaterial_constant_COLLISION_HIDE_ON_CONTACT:
  415. .. rst-class:: classref-enumeration-constant
  416. :ref:`CollisionMode<enum_ParticleProcessMaterial_CollisionMode>` **COLLISION_HIDE_ON_CONTACT** = ``2``
  417. 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.
  418. .. _class_ParticleProcessMaterial_constant_COLLISION_MAX:
  419. .. rst-class:: classref-enumeration-constant
  420. :ref:`CollisionMode<enum_ParticleProcessMaterial_CollisionMode>` **COLLISION_MAX** = ``3``
  421. Represents the size of the :ref:`CollisionMode<enum_ParticleProcessMaterial_CollisionMode>` enum.
  422. .. rst-class:: classref-section-separator
  423. ----
  424. .. rst-class:: classref-descriptions-group
  425. Property Descriptions
  426. ---------------------
  427. .. _class_ParticleProcessMaterial_property_alpha_curve:
  428. .. rst-class:: classref-property
  429. :ref:`Texture2D<class_Texture2D>` **alpha_curve**
  430. .. rst-class:: classref-property-setget
  431. - void **set_alpha_curve** **(** :ref:`Texture2D<class_Texture2D>` value **)**
  432. - :ref:`Texture2D<class_Texture2D>` **get_alpha_curve** **(** **)**
  433. The alpha value of each particle's color will be multiplied by this :ref:`CurveTexture<class_CurveTexture>` over its lifetime.
  434. .. rst-class:: classref-item-separator
  435. ----
  436. .. _class_ParticleProcessMaterial_property_angle_curve:
  437. .. rst-class:: classref-property
  438. :ref:`Texture2D<class_Texture2D>` **angle_curve**
  439. .. rst-class:: classref-property-setget
  440. - void **set_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`Texture2D<class_Texture2D>` texture **)**
  441. - :ref:`Texture2D<class_Texture2D>` **get_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  442. Each particle's rotation will be animated along this :ref:`CurveTexture<class_CurveTexture>`.
  443. .. rst-class:: classref-item-separator
  444. ----
  445. .. _class_ParticleProcessMaterial_property_angle_max:
  446. .. rst-class:: classref-property
  447. :ref:`float<class_float>` **angle_max** = ``0.0``
  448. .. rst-class:: classref-property-setget
  449. - void **set_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  450. - :ref:`float<class_float>` **get_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  451. Maximum initial rotation applied to each particle, in degrees.
  452. 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>`.
  453. .. rst-class:: classref-item-separator
  454. ----
  455. .. _class_ParticleProcessMaterial_property_angle_min:
  456. .. rst-class:: classref-property
  457. :ref:`float<class_float>` **angle_min** = ``0.0``
  458. .. rst-class:: classref-property-setget
  459. - void **set_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  460. - :ref:`float<class_float>` **get_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  461. Minimum equivalent of :ref:`angle_max<class_ParticleProcessMaterial_property_angle_max>`.
  462. .. rst-class:: classref-item-separator
  463. ----
  464. .. _class_ParticleProcessMaterial_property_angular_velocity_curve:
  465. .. rst-class:: classref-property
  466. :ref:`Texture2D<class_Texture2D>` **angular_velocity_curve**
  467. .. rst-class:: classref-property-setget
  468. - void **set_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`Texture2D<class_Texture2D>` texture **)**
  469. - :ref:`Texture2D<class_Texture2D>` **get_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  470. Each particle's angular velocity (rotation speed) will vary along this :ref:`CurveTexture<class_CurveTexture>` over its lifetime.
  471. .. rst-class:: classref-item-separator
  472. ----
  473. .. _class_ParticleProcessMaterial_property_angular_velocity_max:
  474. .. rst-class:: classref-property
  475. :ref:`float<class_float>` **angular_velocity_max** = ``0.0``
  476. .. rst-class:: classref-property-setget
  477. - void **set_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  478. - :ref:`float<class_float>` **get_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  479. Maximum initial angular velocity (rotation speed) applied to each particle in *degrees* per second.
  480. 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>`.
  481. .. rst-class:: classref-item-separator
  482. ----
  483. .. _class_ParticleProcessMaterial_property_angular_velocity_min:
  484. .. rst-class:: classref-property
  485. :ref:`float<class_float>` **angular_velocity_min** = ``0.0``
  486. .. rst-class:: classref-property-setget
  487. - void **set_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  488. - :ref:`float<class_float>` **get_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  489. Minimum equivalent of :ref:`angular_velocity_max<class_ParticleProcessMaterial_property_angular_velocity_max>`.
  490. .. rst-class:: classref-item-separator
  491. ----
  492. .. _class_ParticleProcessMaterial_property_anim_offset_curve:
  493. .. rst-class:: classref-property
  494. :ref:`Texture2D<class_Texture2D>` **anim_offset_curve**
  495. .. rst-class:: classref-property-setget
  496. - void **set_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`Texture2D<class_Texture2D>` texture **)**
  497. - :ref:`Texture2D<class_Texture2D>` **get_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  498. Each particle's animation offset will vary along this :ref:`CurveTexture<class_CurveTexture>`.
  499. .. rst-class:: classref-item-separator
  500. ----
  501. .. _class_ParticleProcessMaterial_property_anim_offset_max:
  502. .. rst-class:: classref-property
  503. :ref:`float<class_float>` **anim_offset_max** = ``0.0``
  504. .. rst-class:: classref-property-setget
  505. - void **set_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  506. - :ref:`float<class_float>` **get_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  507. 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>`.
  508. .. rst-class:: classref-item-separator
  509. ----
  510. .. _class_ParticleProcessMaterial_property_anim_offset_min:
  511. .. rst-class:: classref-property
  512. :ref:`float<class_float>` **anim_offset_min** = ``0.0``
  513. .. rst-class:: classref-property-setget
  514. - void **set_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  515. - :ref:`float<class_float>` **get_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  516. Minimum equivalent of :ref:`anim_offset_max<class_ParticleProcessMaterial_property_anim_offset_max>`.
  517. .. rst-class:: classref-item-separator
  518. ----
  519. .. _class_ParticleProcessMaterial_property_anim_speed_curve:
  520. .. rst-class:: classref-property
  521. :ref:`Texture2D<class_Texture2D>` **anim_speed_curve**
  522. .. rst-class:: classref-property-setget
  523. - void **set_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`Texture2D<class_Texture2D>` texture **)**
  524. - :ref:`Texture2D<class_Texture2D>` **get_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  525. Each particle's animation speed will vary along this :ref:`CurveTexture<class_CurveTexture>`.
  526. .. rst-class:: classref-item-separator
  527. ----
  528. .. _class_ParticleProcessMaterial_property_anim_speed_max:
  529. .. rst-class:: classref-property
  530. :ref:`float<class_float>` **anim_speed_max** = ``0.0``
  531. .. rst-class:: classref-property-setget
  532. - void **set_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  533. - :ref:`float<class_float>` **get_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  534. 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.
  535. 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.
  536. .. rst-class:: classref-item-separator
  537. ----
  538. .. _class_ParticleProcessMaterial_property_anim_speed_min:
  539. .. rst-class:: classref-property
  540. :ref:`float<class_float>` **anim_speed_min** = ``0.0``
  541. .. rst-class:: classref-property-setget
  542. - void **set_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  543. - :ref:`float<class_float>` **get_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  544. Minimum equivalent of :ref:`anim_speed_max<class_ParticleProcessMaterial_property_anim_speed_max>`.
  545. .. rst-class:: classref-item-separator
  546. ----
  547. .. _class_ParticleProcessMaterial_property_attractor_interaction_enabled:
  548. .. rst-class:: classref-property
  549. :ref:`bool<class_bool>` **attractor_interaction_enabled** = ``true``
  550. .. rst-class:: classref-property-setget
  551. - void **set_attractor_interaction_enabled** **(** :ref:`bool<class_bool>` value **)**
  552. - :ref:`bool<class_bool>` **is_attractor_interaction_enabled** **(** **)**
  553. 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>`.
  554. .. rst-class:: classref-item-separator
  555. ----
  556. .. _class_ParticleProcessMaterial_property_collision_bounce:
  557. .. rst-class:: classref-property
  558. :ref:`float<class_float>` **collision_bounce**
  559. .. rst-class:: classref-property-setget
  560. - void **set_collision_bounce** **(** :ref:`float<class_float>` value **)**
  561. - :ref:`float<class_float>` **get_collision_bounce** **(** **)**
  562. 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>`.
  563. .. rst-class:: classref-item-separator
  564. ----
  565. .. _class_ParticleProcessMaterial_property_collision_friction:
  566. .. rst-class:: classref-property
  567. :ref:`float<class_float>` **collision_friction**
  568. .. rst-class:: classref-property-setget
  569. - void **set_collision_friction** **(** :ref:`float<class_float>` value **)**
  570. - :ref:`float<class_float>` **get_collision_friction** **(** **)**
  571. 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>`.
  572. .. rst-class:: classref-item-separator
  573. ----
  574. .. _class_ParticleProcessMaterial_property_collision_mode:
  575. .. rst-class:: classref-property
  576. :ref:`CollisionMode<enum_ParticleProcessMaterial_CollisionMode>` **collision_mode** = ``0``
  577. .. rst-class:: classref-property-setget
  578. - void **set_collision_mode** **(** :ref:`CollisionMode<enum_ParticleProcessMaterial_CollisionMode>` value **)**
  579. - :ref:`CollisionMode<enum_ParticleProcessMaterial_CollisionMode>` **get_collision_mode** **(** **)**
  580. The particles' collision mode.
  581. \ **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>`.
  582. \ **Note:** 2D Particles can only collide with :ref:`LightOccluder2D<class_LightOccluder2D>` nodes, not :ref:`PhysicsBody2D<class_PhysicsBody2D>` nodes.
  583. .. rst-class:: classref-item-separator
  584. ----
  585. .. _class_ParticleProcessMaterial_property_collision_use_scale:
  586. .. rst-class:: classref-property
  587. :ref:`bool<class_bool>` **collision_use_scale** = ``false``
  588. .. rst-class:: classref-property-setget
  589. - void **set_collision_use_scale** **(** :ref:`bool<class_bool>` value **)**
  590. - :ref:`bool<class_bool>` **is_collision_using_scale** **(** **)**
  591. 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>`).
  592. .. rst-class:: classref-item-separator
  593. ----
  594. .. _class_ParticleProcessMaterial_property_color:
  595. .. rst-class:: classref-property
  596. :ref:`Color<class_Color>` **color** = ``Color(1, 1, 1, 1)``
  597. .. rst-class:: classref-property-setget
  598. - void **set_color** **(** :ref:`Color<class_Color>` value **)**
  599. - :ref:`Color<class_Color>` **get_color** **(** **)**
  600. Each particle's initial color. If the :ref:`GPUParticles2D<class_GPUParticles2D>`'s ``texture`` is defined, it will be multiplied by this color.
  601. \ **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.
  602. .. rst-class:: classref-item-separator
  603. ----
  604. .. _class_ParticleProcessMaterial_property_color_initial_ramp:
  605. .. rst-class:: classref-property
  606. :ref:`Texture2D<class_Texture2D>` **color_initial_ramp**
  607. .. rst-class:: classref-property-setget
  608. - void **set_color_initial_ramp** **(** :ref:`Texture2D<class_Texture2D>` value **)**
  609. - :ref:`Texture2D<class_Texture2D>` **get_color_initial_ramp** **(** **)**
  610. Each particle's initial color will vary along this :ref:`GradientTexture1D<class_GradientTexture1D>` (multiplied with :ref:`color<class_ParticleProcessMaterial_property_color>`).
  611. \ **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.
  612. .. rst-class:: classref-item-separator
  613. ----
  614. .. _class_ParticleProcessMaterial_property_color_ramp:
  615. .. rst-class:: classref-property
  616. :ref:`Texture2D<class_Texture2D>` **color_ramp**
  617. .. rst-class:: classref-property-setget
  618. - void **set_color_ramp** **(** :ref:`Texture2D<class_Texture2D>` value **)**
  619. - :ref:`Texture2D<class_Texture2D>` **get_color_ramp** **(** **)**
  620. Each particle's color will vary along this :ref:`GradientTexture1D<class_GradientTexture1D>` over its lifetime (multiplied with :ref:`color<class_ParticleProcessMaterial_property_color>`).
  621. \ **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.
  622. .. rst-class:: classref-item-separator
  623. ----
  624. .. _class_ParticleProcessMaterial_property_damping_curve:
  625. .. rst-class:: classref-property
  626. :ref:`Texture2D<class_Texture2D>` **damping_curve**
  627. .. rst-class:: classref-property-setget
  628. - void **set_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`Texture2D<class_Texture2D>` texture **)**
  629. - :ref:`Texture2D<class_Texture2D>` **get_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  630. Damping will vary along this :ref:`CurveTexture<class_CurveTexture>`.
  631. .. rst-class:: classref-item-separator
  632. ----
  633. .. _class_ParticleProcessMaterial_property_damping_max:
  634. .. rst-class:: classref-property
  635. :ref:`float<class_float>` **damping_max** = ``0.0``
  636. .. rst-class:: classref-property-setget
  637. - void **set_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  638. - :ref:`float<class_float>` **get_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  639. 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.
  640. .. rst-class:: classref-item-separator
  641. ----
  642. .. _class_ParticleProcessMaterial_property_damping_min:
  643. .. rst-class:: classref-property
  644. :ref:`float<class_float>` **damping_min** = ``0.0``
  645. .. rst-class:: classref-property-setget
  646. - void **set_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  647. - :ref:`float<class_float>` **get_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  648. Minimum equivalent of :ref:`damping_max<class_ParticleProcessMaterial_property_damping_max>`.
  649. .. rst-class:: classref-item-separator
  650. ----
  651. .. _class_ParticleProcessMaterial_property_direction:
  652. .. rst-class:: classref-property
  653. :ref:`Vector3<class_Vector3>` **direction** = ``Vector3(1, 0, 0)``
  654. .. rst-class:: classref-property-setget
  655. - void **set_direction** **(** :ref:`Vector3<class_Vector3>` value **)**
  656. - :ref:`Vector3<class_Vector3>` **get_direction** **(** **)**
  657. Unit vector specifying the particles' emission direction.
  658. .. rst-class:: classref-item-separator
  659. ----
  660. .. _class_ParticleProcessMaterial_property_directional_velocity_curve:
  661. .. rst-class:: classref-property
  662. :ref:`Texture2D<class_Texture2D>` **directional_velocity_curve**
  663. .. rst-class:: classref-property-setget
  664. - void **set_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`Texture2D<class_Texture2D>` texture **)**
  665. - :ref:`Texture2D<class_Texture2D>` **get_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  666. A curve that specifies the velocity along each of the axes of the particle system along its lifetime.
  667. \ **Note:** Animated velocities will not be affected by damping, use :ref:`velocity_limit_curve<class_ParticleProcessMaterial_property_velocity_limit_curve>` instead.
  668. .. rst-class:: classref-item-separator
  669. ----
  670. .. _class_ParticleProcessMaterial_property_directional_velocity_max:
  671. .. rst-class:: classref-property
  672. :ref:`float<class_float>` **directional_velocity_max**
  673. .. rst-class:: classref-property-setget
  674. - void **set_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  675. - :ref:`float<class_float>` **get_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  676. Maximum directional velocity value, which is multiplied by :ref:`directional_velocity_curve<class_ParticleProcessMaterial_property_directional_velocity_curve>`.
  677. \ **Note:** Animated velocities will not be affected by damping, use :ref:`velocity_limit_curve<class_ParticleProcessMaterial_property_velocity_limit_curve>` instead.
  678. .. rst-class:: classref-item-separator
  679. ----
  680. .. _class_ParticleProcessMaterial_property_directional_velocity_min:
  681. .. rst-class:: classref-property
  682. :ref:`float<class_float>` **directional_velocity_min**
  683. .. rst-class:: classref-property-setget
  684. - void **set_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  685. - :ref:`float<class_float>` **get_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  686. Minimum directional velocity value, which is multiplied by :ref:`directional_velocity_curve<class_ParticleProcessMaterial_property_directional_velocity_curve>`.
  687. \ **Note:** Animated velocities will not be affected by damping, use :ref:`velocity_limit_curve<class_ParticleProcessMaterial_property_velocity_limit_curve>` instead.
  688. .. rst-class:: classref-item-separator
  689. ----
  690. .. _class_ParticleProcessMaterial_property_emission_box_extents:
  691. .. rst-class:: classref-property
  692. :ref:`Vector3<class_Vector3>` **emission_box_extents**
  693. .. rst-class:: classref-property-setget
  694. - void **set_emission_box_extents** **(** :ref:`Vector3<class_Vector3>` value **)**
  695. - :ref:`Vector3<class_Vector3>` **get_emission_box_extents** **(** **)**
  696. 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>`.
  697. .. rst-class:: classref-item-separator
  698. ----
  699. .. _class_ParticleProcessMaterial_property_emission_color_texture:
  700. .. rst-class:: classref-property
  701. :ref:`Texture2D<class_Texture2D>` **emission_color_texture**
  702. .. rst-class:: classref-property-setget
  703. - void **set_emission_color_texture** **(** :ref:`Texture2D<class_Texture2D>` value **)**
  704. - :ref:`Texture2D<class_Texture2D>` **get_emission_color_texture** **(** **)**
  705. 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>`.
  706. \ **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.
  707. .. rst-class:: classref-item-separator
  708. ----
  709. .. _class_ParticleProcessMaterial_property_emission_curve:
  710. .. rst-class:: classref-property
  711. :ref:`Texture2D<class_Texture2D>` **emission_curve**
  712. .. rst-class:: classref-property-setget
  713. - void **set_emission_curve** **(** :ref:`Texture2D<class_Texture2D>` value **)**
  714. - :ref:`Texture2D<class_Texture2D>` **get_emission_curve** **(** **)**
  715. Each particle's color will be multiplied by this :ref:`CurveTexture<class_CurveTexture>` over its lifetime.
  716. \ **Note:** This property won't have a visible effect unless the render material is marked as unshaded.
  717. .. rst-class:: classref-item-separator
  718. ----
  719. .. _class_ParticleProcessMaterial_property_emission_normal_texture:
  720. .. rst-class:: classref-property
  721. :ref:`Texture2D<class_Texture2D>` **emission_normal_texture**
  722. .. rst-class:: classref-property-setget
  723. - void **set_emission_normal_texture** **(** :ref:`Texture2D<class_Texture2D>` value **)**
  724. - :ref:`Texture2D<class_Texture2D>` **get_emission_normal_texture** **(** **)**
  725. 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.
  726. .. rst-class:: classref-item-separator
  727. ----
  728. .. _class_ParticleProcessMaterial_property_emission_point_count:
  729. .. rst-class:: classref-property
  730. :ref:`int<class_int>` **emission_point_count**
  731. .. rst-class:: classref-property-setget
  732. - void **set_emission_point_count** **(** :ref:`int<class_int>` value **)**
  733. - :ref:`int<class_int>` **get_emission_point_count** **(** **)**
  734. 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>`.
  735. .. rst-class:: classref-item-separator
  736. ----
  737. .. _class_ParticleProcessMaterial_property_emission_point_texture:
  738. .. rst-class:: classref-property
  739. :ref:`Texture2D<class_Texture2D>` **emission_point_texture**
  740. .. rst-class:: classref-property-setget
  741. - void **set_emission_point_texture** **(** :ref:`Texture2D<class_Texture2D>` value **)**
  742. - :ref:`Texture2D<class_Texture2D>` **get_emission_point_texture** **(** **)**
  743. 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.
  744. .. rst-class:: classref-item-separator
  745. ----
  746. .. _class_ParticleProcessMaterial_property_emission_ring_axis:
  747. .. rst-class:: classref-property
  748. :ref:`Vector3<class_Vector3>` **emission_ring_axis**
  749. .. rst-class:: classref-property-setget
  750. - void **set_emission_ring_axis** **(** :ref:`Vector3<class_Vector3>` value **)**
  751. - :ref:`Vector3<class_Vector3>` **get_emission_ring_axis** **(** **)**
  752. The axis of the ring when using the emitter :ref:`EMISSION_SHAPE_RING<class_ParticleProcessMaterial_constant_EMISSION_SHAPE_RING>`.
  753. .. rst-class:: classref-item-separator
  754. ----
  755. .. _class_ParticleProcessMaterial_property_emission_ring_height:
  756. .. rst-class:: classref-property
  757. :ref:`float<class_float>` **emission_ring_height**
  758. .. rst-class:: classref-property-setget
  759. - void **set_emission_ring_height** **(** :ref:`float<class_float>` value **)**
  760. - :ref:`float<class_float>` **get_emission_ring_height** **(** **)**
  761. The height of the ring when using the emitter :ref:`EMISSION_SHAPE_RING<class_ParticleProcessMaterial_constant_EMISSION_SHAPE_RING>`.
  762. .. rst-class:: classref-item-separator
  763. ----
  764. .. _class_ParticleProcessMaterial_property_emission_ring_inner_radius:
  765. .. rst-class:: classref-property
  766. :ref:`float<class_float>` **emission_ring_inner_radius**
  767. .. rst-class:: classref-property-setget
  768. - void **set_emission_ring_inner_radius** **(** :ref:`float<class_float>` value **)**
  769. - :ref:`float<class_float>` **get_emission_ring_inner_radius** **(** **)**
  770. The inner radius of the ring when using the emitter :ref:`EMISSION_SHAPE_RING<class_ParticleProcessMaterial_constant_EMISSION_SHAPE_RING>`.
  771. .. rst-class:: classref-item-separator
  772. ----
  773. .. _class_ParticleProcessMaterial_property_emission_ring_radius:
  774. .. rst-class:: classref-property
  775. :ref:`float<class_float>` **emission_ring_radius**
  776. .. rst-class:: classref-property-setget
  777. - void **set_emission_ring_radius** **(** :ref:`float<class_float>` value **)**
  778. - :ref:`float<class_float>` **get_emission_ring_radius** **(** **)**
  779. The radius of the ring when using the emitter :ref:`EMISSION_SHAPE_RING<class_ParticleProcessMaterial_constant_EMISSION_SHAPE_RING>`.
  780. .. rst-class:: classref-item-separator
  781. ----
  782. .. _class_ParticleProcessMaterial_property_emission_shape:
  783. .. rst-class:: classref-property
  784. :ref:`EmissionShape<enum_ParticleProcessMaterial_EmissionShape>` **emission_shape** = ``0``
  785. .. rst-class:: classref-property-setget
  786. - void **set_emission_shape** **(** :ref:`EmissionShape<enum_ParticleProcessMaterial_EmissionShape>` value **)**
  787. - :ref:`EmissionShape<enum_ParticleProcessMaterial_EmissionShape>` **get_emission_shape** **(** **)**
  788. Particles will be emitted inside this region. Use :ref:`EmissionShape<enum_ParticleProcessMaterial_EmissionShape>` constants for values.
  789. .. rst-class:: classref-item-separator
  790. ----
  791. .. _class_ParticleProcessMaterial_property_emission_shape_offset:
  792. .. rst-class:: classref-property
  793. :ref:`Vector3<class_Vector3>` **emission_shape_offset** = ``Vector3(0, 0, 0)``
  794. .. rst-class:: classref-property-setget
  795. - void **set_emission_shape_offset** **(** :ref:`Vector3<class_Vector3>` value **)**
  796. - :ref:`Vector3<class_Vector3>` **get_emission_shape_offset** **(** **)**
  797. The offset for the :ref:`emission_shape<class_ParticleProcessMaterial_property_emission_shape>`, in local space.
  798. .. rst-class:: classref-item-separator
  799. ----
  800. .. _class_ParticleProcessMaterial_property_emission_shape_scale:
  801. .. rst-class:: classref-property
  802. :ref:`Vector3<class_Vector3>` **emission_shape_scale** = ``Vector3(1, 1, 1)``
  803. .. rst-class:: classref-property-setget
  804. - void **set_emission_shape_scale** **(** :ref:`Vector3<class_Vector3>` value **)**
  805. - :ref:`Vector3<class_Vector3>` **get_emission_shape_scale** **(** **)**
  806. The scale of the :ref:`emission_shape<class_ParticleProcessMaterial_property_emission_shape>`, in local space.
  807. .. rst-class:: classref-item-separator
  808. ----
  809. .. _class_ParticleProcessMaterial_property_emission_sphere_radius:
  810. .. rst-class:: classref-property
  811. :ref:`float<class_float>` **emission_sphere_radius**
  812. .. rst-class:: classref-property-setget
  813. - void **set_emission_sphere_radius** **(** :ref:`float<class_float>` value **)**
  814. - :ref:`float<class_float>` **get_emission_sphere_radius** **(** **)**
  815. 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>`.
  816. .. rst-class:: classref-item-separator
  817. ----
  818. .. _class_ParticleProcessMaterial_property_flatness:
  819. .. rst-class:: classref-property
  820. :ref:`float<class_float>` **flatness** = ``0.0``
  821. .. rst-class:: classref-property-setget
  822. - void **set_flatness** **(** :ref:`float<class_float>` value **)**
  823. - :ref:`float<class_float>` **get_flatness** **(** **)**
  824. Amount of :ref:`spread<class_ParticleProcessMaterial_property_spread>` along the Y axis.
  825. .. rst-class:: classref-item-separator
  826. ----
  827. .. _class_ParticleProcessMaterial_property_gravity:
  828. .. rst-class:: classref-property
  829. :ref:`Vector3<class_Vector3>` **gravity** = ``Vector3(0, -9.8, 0)``
  830. .. rst-class:: classref-property-setget
  831. - void **set_gravity** **(** :ref:`Vector3<class_Vector3>` value **)**
  832. - :ref:`Vector3<class_Vector3>` **get_gravity** **(** **)**
  833. Gravity applied to every particle.
  834. .. rst-class:: classref-item-separator
  835. ----
  836. .. _class_ParticleProcessMaterial_property_hue_variation_curve:
  837. .. rst-class:: classref-property
  838. :ref:`Texture2D<class_Texture2D>` **hue_variation_curve**
  839. .. rst-class:: classref-property-setget
  840. - void **set_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`Texture2D<class_Texture2D>` texture **)**
  841. - :ref:`Texture2D<class_Texture2D>` **get_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  842. Each particle's hue will vary along this :ref:`CurveTexture<class_CurveTexture>`.
  843. .. rst-class:: classref-item-separator
  844. ----
  845. .. _class_ParticleProcessMaterial_property_hue_variation_max:
  846. .. rst-class:: classref-property
  847. :ref:`float<class_float>` **hue_variation_max** = ``0.0``
  848. .. rst-class:: classref-property-setget
  849. - void **set_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  850. - :ref:`float<class_float>` **get_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  851. Maximum initial hue variation applied to each particle. It will shift the particle color's hue.
  852. .. rst-class:: classref-item-separator
  853. ----
  854. .. _class_ParticleProcessMaterial_property_hue_variation_min:
  855. .. rst-class:: classref-property
  856. :ref:`float<class_float>` **hue_variation_min** = ``0.0``
  857. .. rst-class:: classref-property-setget
  858. - void **set_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  859. - :ref:`float<class_float>` **get_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  860. Minimum equivalent of :ref:`hue_variation_max<class_ParticleProcessMaterial_property_hue_variation_max>`.
  861. .. rst-class:: classref-item-separator
  862. ----
  863. .. _class_ParticleProcessMaterial_property_inherit_velocity_ratio:
  864. .. rst-class:: classref-property
  865. :ref:`float<class_float>` **inherit_velocity_ratio** = ``0.0``
  866. .. rst-class:: classref-property-setget
  867. - void **set_inherit_velocity_ratio** **(** :ref:`float<class_float>` value **)**
  868. - :ref:`float<class_float>` **get_inherit_velocity_ratio** **(** **)**
  869. Percentage of the velocity of the respective :ref:`GPUParticles2D<class_GPUParticles2D>` or :ref:`GPUParticles3D<class_GPUParticles3D>` inherited by each particle when spawning.
  870. .. rst-class:: classref-item-separator
  871. ----
  872. .. _class_ParticleProcessMaterial_property_initial_velocity_max:
  873. .. rst-class:: classref-property
  874. :ref:`float<class_float>` **initial_velocity_max** = ``0.0``
  875. .. rst-class:: classref-property-setget
  876. - void **set_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  877. - :ref:`float<class_float>` **get_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  878. Maximum initial velocity magnitude for each particle. Direction comes from :ref:`direction<class_ParticleProcessMaterial_property_direction>` and :ref:`spread<class_ParticleProcessMaterial_property_spread>`.
  879. .. rst-class:: classref-item-separator
  880. ----
  881. .. _class_ParticleProcessMaterial_property_initial_velocity_min:
  882. .. rst-class:: classref-property
  883. :ref:`float<class_float>` **initial_velocity_min** = ``0.0``
  884. .. rst-class:: classref-property-setget
  885. - void **set_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  886. - :ref:`float<class_float>` **get_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  887. Minimum equivalent of :ref:`initial_velocity_max<class_ParticleProcessMaterial_property_initial_velocity_max>`.
  888. .. rst-class:: classref-item-separator
  889. ----
  890. .. _class_ParticleProcessMaterial_property_lifetime_randomness:
  891. .. rst-class:: classref-property
  892. :ref:`float<class_float>` **lifetime_randomness** = ``0.0``
  893. .. rst-class:: classref-property-setget
  894. - void **set_lifetime_randomness** **(** :ref:`float<class_float>` value **)**
  895. - :ref:`float<class_float>` **get_lifetime_randomness** **(** **)**
  896. 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.
  897. .. rst-class:: classref-item-separator
  898. ----
  899. .. _class_ParticleProcessMaterial_property_linear_accel_curve:
  900. .. rst-class:: classref-property
  901. :ref:`Texture2D<class_Texture2D>` **linear_accel_curve**
  902. .. rst-class:: classref-property-setget
  903. - void **set_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`Texture2D<class_Texture2D>` texture **)**
  904. - :ref:`Texture2D<class_Texture2D>` **get_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  905. Each particle's linear acceleration will vary along this :ref:`CurveTexture<class_CurveTexture>`.
  906. .. rst-class:: classref-item-separator
  907. ----
  908. .. _class_ParticleProcessMaterial_property_linear_accel_max:
  909. .. rst-class:: classref-property
  910. :ref:`float<class_float>` **linear_accel_max** = ``0.0``
  911. .. rst-class:: classref-property-setget
  912. - void **set_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  913. - :ref:`float<class_float>` **get_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  914. Maximum linear acceleration applied to each particle in the direction of motion.
  915. .. rst-class:: classref-item-separator
  916. ----
  917. .. _class_ParticleProcessMaterial_property_linear_accel_min:
  918. .. rst-class:: classref-property
  919. :ref:`float<class_float>` **linear_accel_min** = ``0.0``
  920. .. rst-class:: classref-property-setget
  921. - void **set_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  922. - :ref:`float<class_float>` **get_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  923. Minimum equivalent of :ref:`linear_accel_max<class_ParticleProcessMaterial_property_linear_accel_max>`.
  924. .. rst-class:: classref-item-separator
  925. ----
  926. .. _class_ParticleProcessMaterial_property_orbit_velocity_curve:
  927. .. rst-class:: classref-property
  928. :ref:`Texture2D<class_Texture2D>` **orbit_velocity_curve**
  929. .. rst-class:: classref-property-setget
  930. - void **set_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`Texture2D<class_Texture2D>` texture **)**
  931. - :ref:`Texture2D<class_Texture2D>` **get_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  932. Each particle's orbital velocity will vary along this :ref:`CurveTexture<class_CurveTexture>`.
  933. \ **Note:** For 3D orbital velocity, use a :ref:`CurveXYZTexture<class_CurveXYZTexture>`.
  934. \ **Note:** Animated velocities will not be affected by damping, use :ref:`velocity_limit_curve<class_ParticleProcessMaterial_property_velocity_limit_curve>` instead.
  935. .. rst-class:: classref-item-separator
  936. ----
  937. .. _class_ParticleProcessMaterial_property_orbit_velocity_max:
  938. .. rst-class:: classref-property
  939. :ref:`float<class_float>` **orbit_velocity_max** = ``0.0``
  940. .. rst-class:: classref-property-setget
  941. - void **set_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  942. - :ref:`float<class_float>` **get_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  943. Maximum orbital velocity applied to each particle. Makes the particles circle around origin. Specified in number of full rotations around origin per second.
  944. \ **Note:** Animated velocities will not be affected by damping, use :ref:`velocity_limit_curve<class_ParticleProcessMaterial_property_velocity_limit_curve>` instead.
  945. .. rst-class:: classref-item-separator
  946. ----
  947. .. _class_ParticleProcessMaterial_property_orbit_velocity_min:
  948. .. rst-class:: classref-property
  949. :ref:`float<class_float>` **orbit_velocity_min** = ``0.0``
  950. .. rst-class:: classref-property-setget
  951. - void **set_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  952. - :ref:`float<class_float>` **get_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  953. Minimum equivalent of :ref:`orbit_velocity_max<class_ParticleProcessMaterial_property_orbit_velocity_max>`.
  954. \ **Note:** Animated velocities will not be affected by damping, use :ref:`velocity_limit_curve<class_ParticleProcessMaterial_property_velocity_limit_curve>` instead.
  955. .. rst-class:: classref-item-separator
  956. ----
  957. .. _class_ParticleProcessMaterial_property_particle_flag_align_y:
  958. .. rst-class:: classref-property
  959. :ref:`bool<class_bool>` **particle_flag_align_y** = ``false``
  960. .. rst-class:: classref-property-setget
  961. - void **set_particle_flag** **(** :ref:`ParticleFlags<enum_ParticleProcessMaterial_ParticleFlags>` particle_flag, :ref:`bool<class_bool>` enable **)**
  962. - :ref:`bool<class_bool>` **get_particle_flag** **(** :ref:`ParticleFlags<enum_ParticleProcessMaterial_ParticleFlags>` particle_flag **)** |const|
  963. Align Y axis of particle with the direction of its velocity.
  964. .. rst-class:: classref-item-separator
  965. ----
  966. .. _class_ParticleProcessMaterial_property_particle_flag_damping_as_friction:
  967. .. rst-class:: classref-property
  968. :ref:`bool<class_bool>` **particle_flag_damping_as_friction** = ``false``
  969. .. rst-class:: classref-property-setget
  970. - void **set_particle_flag** **(** :ref:`ParticleFlags<enum_ParticleProcessMaterial_ParticleFlags>` particle_flag, :ref:`bool<class_bool>` enable **)**
  971. - :ref:`bool<class_bool>` **get_particle_flag** **(** :ref:`ParticleFlags<enum_ParticleProcessMaterial_ParticleFlags>` particle_flag **)** |const|
  972. Changes the behavior of the damping properties from a linear deceleration to a deceleration based on speed percentage.
  973. .. rst-class:: classref-item-separator
  974. ----
  975. .. _class_ParticleProcessMaterial_property_particle_flag_disable_z:
  976. .. rst-class:: classref-property
  977. :ref:`bool<class_bool>` **particle_flag_disable_z** = ``false``
  978. .. rst-class:: classref-property-setget
  979. - void **set_particle_flag** **(** :ref:`ParticleFlags<enum_ParticleProcessMaterial_ParticleFlags>` particle_flag, :ref:`bool<class_bool>` enable **)**
  980. - :ref:`bool<class_bool>` **get_particle_flag** **(** :ref:`ParticleFlags<enum_ParticleProcessMaterial_ParticleFlags>` particle_flag **)** |const|
  981. If ``true``, particles will not move on the z axis.
  982. .. rst-class:: classref-item-separator
  983. ----
  984. .. _class_ParticleProcessMaterial_property_particle_flag_rotate_y:
  985. .. rst-class:: classref-property
  986. :ref:`bool<class_bool>` **particle_flag_rotate_y** = ``false``
  987. .. rst-class:: classref-property-setget
  988. - void **set_particle_flag** **(** :ref:`ParticleFlags<enum_ParticleProcessMaterial_ParticleFlags>` particle_flag, :ref:`bool<class_bool>` enable **)**
  989. - :ref:`bool<class_bool>` **get_particle_flag** **(** :ref:`ParticleFlags<enum_ParticleProcessMaterial_ParticleFlags>` particle_flag **)** |const|
  990. If ``true``, particles rotate around Y axis by :ref:`angle_min<class_ParticleProcessMaterial_property_angle_min>`.
  991. .. rst-class:: classref-item-separator
  992. ----
  993. .. _class_ParticleProcessMaterial_property_radial_accel_curve:
  994. .. rst-class:: classref-property
  995. :ref:`Texture2D<class_Texture2D>` **radial_accel_curve**
  996. .. rst-class:: classref-property-setget
  997. - void **set_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`Texture2D<class_Texture2D>` texture **)**
  998. - :ref:`Texture2D<class_Texture2D>` **get_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  999. Each particle's radial acceleration will vary along this :ref:`CurveTexture<class_CurveTexture>`.
  1000. .. rst-class:: classref-item-separator
  1001. ----
  1002. .. _class_ParticleProcessMaterial_property_radial_accel_max:
  1003. .. rst-class:: classref-property
  1004. :ref:`float<class_float>` **radial_accel_max** = ``0.0``
  1005. .. rst-class:: classref-property-setget
  1006. - void **set_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  1007. - :ref:`float<class_float>` **get_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  1008. Maximum radial acceleration applied to each particle. Makes particle accelerate away from the origin or towards it if negative.
  1009. .. rst-class:: classref-item-separator
  1010. ----
  1011. .. _class_ParticleProcessMaterial_property_radial_accel_min:
  1012. .. rst-class:: classref-property
  1013. :ref:`float<class_float>` **radial_accel_min** = ``0.0``
  1014. .. rst-class:: classref-property-setget
  1015. - void **set_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  1016. - :ref:`float<class_float>` **get_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  1017. Minimum equivalent of :ref:`radial_accel_max<class_ParticleProcessMaterial_property_radial_accel_max>`.
  1018. .. rst-class:: classref-item-separator
  1019. ----
  1020. .. _class_ParticleProcessMaterial_property_radial_velocity_curve:
  1021. .. rst-class:: classref-property
  1022. :ref:`Texture2D<class_Texture2D>` **radial_velocity_curve**
  1023. .. rst-class:: classref-property-setget
  1024. - void **set_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`Texture2D<class_Texture2D>` texture **)**
  1025. - :ref:`Texture2D<class_Texture2D>` **get_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  1026. 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>`.
  1027. \ **Note:** Animated velocities will not be affected by damping, use :ref:`velocity_limit_curve<class_ParticleProcessMaterial_property_velocity_limit_curve>` instead.
  1028. .. rst-class:: classref-item-separator
  1029. ----
  1030. .. _class_ParticleProcessMaterial_property_radial_velocity_max:
  1031. .. rst-class:: classref-property
  1032. :ref:`float<class_float>` **radial_velocity_max** = ``0.0``
  1033. .. rst-class:: classref-property-setget
  1034. - void **set_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  1035. - :ref:`float<class_float>` **get_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  1036. 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.
  1037. \ **Note:** Animated velocities will not be affected by damping, use :ref:`velocity_limit_curve<class_ParticleProcessMaterial_property_velocity_limit_curve>` instead.
  1038. .. rst-class:: classref-item-separator
  1039. ----
  1040. .. _class_ParticleProcessMaterial_property_radial_velocity_min:
  1041. .. rst-class:: classref-property
  1042. :ref:`float<class_float>` **radial_velocity_min** = ``0.0``
  1043. .. rst-class:: classref-property-setget
  1044. - void **set_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  1045. - :ref:`float<class_float>` **get_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  1046. 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.
  1047. \ **Note:** Animated velocities will not be affected by damping, use :ref:`velocity_limit_curve<class_ParticleProcessMaterial_property_velocity_limit_curve>` instead.
  1048. .. rst-class:: classref-item-separator
  1049. ----
  1050. .. _class_ParticleProcessMaterial_property_scale_curve:
  1051. .. rst-class:: classref-property
  1052. :ref:`Texture2D<class_Texture2D>` **scale_curve**
  1053. .. rst-class:: classref-property-setget
  1054. - void **set_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`Texture2D<class_Texture2D>` texture **)**
  1055. - :ref:`Texture2D<class_Texture2D>` **get_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  1056. 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.
  1057. .. rst-class:: classref-item-separator
  1058. ----
  1059. .. _class_ParticleProcessMaterial_property_scale_max:
  1060. .. rst-class:: classref-property
  1061. :ref:`float<class_float>` **scale_max** = ``1.0``
  1062. .. rst-class:: classref-property-setget
  1063. - void **set_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  1064. - :ref:`float<class_float>` **get_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  1065. Maximum initial scale applied to each particle.
  1066. .. rst-class:: classref-item-separator
  1067. ----
  1068. .. _class_ParticleProcessMaterial_property_scale_min:
  1069. .. rst-class:: classref-property
  1070. :ref:`float<class_float>` **scale_min** = ``1.0``
  1071. .. rst-class:: classref-property-setget
  1072. - void **set_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  1073. - :ref:`float<class_float>` **get_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  1074. Minimum equivalent of :ref:`scale_max<class_ParticleProcessMaterial_property_scale_max>`.
  1075. .. rst-class:: classref-item-separator
  1076. ----
  1077. .. _class_ParticleProcessMaterial_property_scale_over_velocity_curve:
  1078. .. rst-class:: classref-property
  1079. :ref:`Texture2D<class_Texture2D>` **scale_over_velocity_curve**
  1080. .. rst-class:: classref-property-setget
  1081. - void **set_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`Texture2D<class_Texture2D>` texture **)**
  1082. - :ref:`Texture2D<class_Texture2D>` **get_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  1083. Either a :ref:`CurveTexture<class_CurveTexture>` or a :ref:`CurveXYZTexture<class_CurveXYZTexture>` that scales each particle based on its velocity.
  1084. .. rst-class:: classref-item-separator
  1085. ----
  1086. .. _class_ParticleProcessMaterial_property_scale_over_velocity_max:
  1087. .. rst-class:: classref-property
  1088. :ref:`float<class_float>` **scale_over_velocity_max** = ``0.0``
  1089. .. rst-class:: classref-property-setget
  1090. - void **set_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  1091. - :ref:`float<class_float>` **get_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  1092. Maximum velocity value reference for :ref:`scale_over_velocity_curve<class_ParticleProcessMaterial_property_scale_over_velocity_curve>`.
  1093. \ :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>`.
  1094. .. rst-class:: classref-item-separator
  1095. ----
  1096. .. _class_ParticleProcessMaterial_property_scale_over_velocity_min:
  1097. .. rst-class:: classref-property
  1098. :ref:`float<class_float>` **scale_over_velocity_min** = ``0.0``
  1099. .. rst-class:: classref-property-setget
  1100. - void **set_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  1101. - :ref:`float<class_float>` **get_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  1102. Minimum velocity value reference for :ref:`scale_over_velocity_curve<class_ParticleProcessMaterial_property_scale_over_velocity_curve>`.
  1103. \ :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>`.
  1104. .. rst-class:: classref-item-separator
  1105. ----
  1106. .. _class_ParticleProcessMaterial_property_spread:
  1107. .. rst-class:: classref-property
  1108. :ref:`float<class_float>` **spread** = ``45.0``
  1109. .. rst-class:: classref-property-setget
  1110. - void **set_spread** **(** :ref:`float<class_float>` value **)**
  1111. - :ref:`float<class_float>` **get_spread** **(** **)**
  1112. Each particle's initial direction range from ``+spread`` to ``-spread`` degrees.
  1113. .. rst-class:: classref-item-separator
  1114. ----
  1115. .. _class_ParticleProcessMaterial_property_sub_emitter_amount_at_collision:
  1116. .. rst-class:: classref-property
  1117. :ref:`int<class_int>` **sub_emitter_amount_at_collision**
  1118. .. rst-class:: classref-property-setget
  1119. - void **set_sub_emitter_amount_at_collision** **(** :ref:`int<class_int>` value **)**
  1120. - :ref:`int<class_int>` **get_sub_emitter_amount_at_collision** **(** **)**
  1121. 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.
  1122. \ **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.
  1123. .. rst-class:: classref-item-separator
  1124. ----
  1125. .. _class_ParticleProcessMaterial_property_sub_emitter_amount_at_end:
  1126. .. rst-class:: classref-property
  1127. :ref:`int<class_int>` **sub_emitter_amount_at_end**
  1128. .. rst-class:: classref-property-setget
  1129. - void **set_sub_emitter_amount_at_end** **(** :ref:`int<class_int>` value **)**
  1130. - :ref:`int<class_int>` **get_sub_emitter_amount_at_end** **(** **)**
  1131. The amount of particles to spawn from the subemitter node when the particle expires.
  1132. \ **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.
  1133. .. rst-class:: classref-item-separator
  1134. ----
  1135. .. _class_ParticleProcessMaterial_property_sub_emitter_frequency:
  1136. .. rst-class:: classref-property
  1137. :ref:`float<class_float>` **sub_emitter_frequency**
  1138. .. rst-class:: classref-property-setget
  1139. - void **set_sub_emitter_frequency** **(** :ref:`float<class_float>` value **)**
  1140. - :ref:`float<class_float>` **get_sub_emitter_frequency** **(** **)**
  1141. 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.
  1142. \ **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.
  1143. .. rst-class:: classref-item-separator
  1144. ----
  1145. .. _class_ParticleProcessMaterial_property_sub_emitter_keep_velocity:
  1146. .. rst-class:: classref-property
  1147. :ref:`bool<class_bool>` **sub_emitter_keep_velocity** = ``false``
  1148. .. rst-class:: classref-property-setget
  1149. - void **set_sub_emitter_keep_velocity** **(** :ref:`bool<class_bool>` value **)**
  1150. - :ref:`bool<class_bool>` **get_sub_emitter_keep_velocity** **(** **)**
  1151. If ``true``, the subemitter inherits the parent particle's velocity when it spawns.
  1152. .. rst-class:: classref-item-separator
  1153. ----
  1154. .. _class_ParticleProcessMaterial_property_sub_emitter_mode:
  1155. .. rst-class:: classref-property
  1156. :ref:`SubEmitterMode<enum_ParticleProcessMaterial_SubEmitterMode>` **sub_emitter_mode** = ``0``
  1157. .. rst-class:: classref-property-setget
  1158. - void **set_sub_emitter_mode** **(** :ref:`SubEmitterMode<enum_ParticleProcessMaterial_SubEmitterMode>` value **)**
  1159. - :ref:`SubEmitterMode<enum_ParticleProcessMaterial_SubEmitterMode>` **get_sub_emitter_mode** **(** **)**
  1160. The particle subemitter mode (see :ref:`GPUParticles2D.sub_emitter<class_GPUParticles2D_property_sub_emitter>` and :ref:`GPUParticles3D.sub_emitter<class_GPUParticles3D_property_sub_emitter>`).
  1161. .. rst-class:: classref-item-separator
  1162. ----
  1163. .. _class_ParticleProcessMaterial_property_tangential_accel_curve:
  1164. .. rst-class:: classref-property
  1165. :ref:`Texture2D<class_Texture2D>` **tangential_accel_curve**
  1166. .. rst-class:: classref-property-setget
  1167. - void **set_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`Texture2D<class_Texture2D>` texture **)**
  1168. - :ref:`Texture2D<class_Texture2D>` **get_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  1169. Each particle's tangential acceleration will vary along this :ref:`CurveTexture<class_CurveTexture>`.
  1170. .. rst-class:: classref-item-separator
  1171. ----
  1172. .. _class_ParticleProcessMaterial_property_tangential_accel_max:
  1173. .. rst-class:: classref-property
  1174. :ref:`float<class_float>` **tangential_accel_max** = ``0.0``
  1175. .. rst-class:: classref-property-setget
  1176. - void **set_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  1177. - :ref:`float<class_float>` **get_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  1178. Maximum tangential acceleration applied to each particle. Tangential acceleration is perpendicular to the particle's velocity giving the particles a swirling motion.
  1179. .. rst-class:: classref-item-separator
  1180. ----
  1181. .. _class_ParticleProcessMaterial_property_tangential_accel_min:
  1182. .. rst-class:: classref-property
  1183. :ref:`float<class_float>` **tangential_accel_min** = ``0.0``
  1184. .. rst-class:: classref-property-setget
  1185. - void **set_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  1186. - :ref:`float<class_float>` **get_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  1187. Minimum equivalent of :ref:`tangential_accel_max<class_ParticleProcessMaterial_property_tangential_accel_max>`.
  1188. .. rst-class:: classref-item-separator
  1189. ----
  1190. .. _class_ParticleProcessMaterial_property_turbulence_enabled:
  1191. .. rst-class:: classref-property
  1192. :ref:`bool<class_bool>` **turbulence_enabled** = ``false``
  1193. .. rst-class:: classref-property-setget
  1194. - void **set_turbulence_enabled** **(** :ref:`bool<class_bool>` value **)**
  1195. - :ref:`bool<class_bool>` **get_turbulence_enabled** **(** **)**
  1196. 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.
  1197. \ **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.
  1198. .. rst-class:: classref-item-separator
  1199. ----
  1200. .. _class_ParticleProcessMaterial_property_turbulence_influence_max:
  1201. .. rst-class:: classref-property
  1202. :ref:`float<class_float>` **turbulence_influence_max** = ``0.1``
  1203. .. rst-class:: classref-property-setget
  1204. - void **set_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  1205. - :ref:`float<class_float>` **get_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  1206. Maximum turbulence influence on each particle.
  1207. 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>`.
  1208. .. rst-class:: classref-item-separator
  1209. ----
  1210. .. _class_ParticleProcessMaterial_property_turbulence_influence_min:
  1211. .. rst-class:: classref-property
  1212. :ref:`float<class_float>` **turbulence_influence_min** = ``0.1``
  1213. .. rst-class:: classref-property-setget
  1214. - void **set_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  1215. - :ref:`float<class_float>` **get_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  1216. Minimum turbulence influence on each particle.
  1217. 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>`.
  1218. .. rst-class:: classref-item-separator
  1219. ----
  1220. .. _class_ParticleProcessMaterial_property_turbulence_influence_over_life:
  1221. .. rst-class:: classref-property
  1222. :ref:`Texture2D<class_Texture2D>` **turbulence_influence_over_life**
  1223. .. rst-class:: classref-property-setget
  1224. - void **set_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`Texture2D<class_Texture2D>` texture **)**
  1225. - :ref:`Texture2D<class_Texture2D>` **get_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  1226. Each particle's amount of turbulence will be influenced along this :ref:`CurveTexture<class_CurveTexture>` over its life time.
  1227. .. rst-class:: classref-item-separator
  1228. ----
  1229. .. _class_ParticleProcessMaterial_property_turbulence_initial_displacement_max:
  1230. .. rst-class:: classref-property
  1231. :ref:`float<class_float>` **turbulence_initial_displacement_max** = ``0.0``
  1232. .. rst-class:: classref-property-setget
  1233. - void **set_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  1234. - :ref:`float<class_float>` **get_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  1235. Maximum displacement of each particle's spawn position by the turbulence.
  1236. 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>`.
  1237. .. rst-class:: classref-item-separator
  1238. ----
  1239. .. _class_ParticleProcessMaterial_property_turbulence_initial_displacement_min:
  1240. .. rst-class:: classref-property
  1241. :ref:`float<class_float>` **turbulence_initial_displacement_min** = ``0.0``
  1242. .. rst-class:: classref-property-setget
  1243. - void **set_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  1244. - :ref:`float<class_float>` **get_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  1245. Minimum displacement of each particle's spawn position by the turbulence.
  1246. 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>`.
  1247. .. rst-class:: classref-item-separator
  1248. ----
  1249. .. _class_ParticleProcessMaterial_property_turbulence_noise_scale:
  1250. .. rst-class:: classref-property
  1251. :ref:`float<class_float>` **turbulence_noise_scale** = ``9.0``
  1252. .. rst-class:: classref-property-setget
  1253. - void **set_turbulence_noise_scale** **(** :ref:`float<class_float>` value **)**
  1254. - :ref:`float<class_float>` **get_turbulence_noise_scale** **(** **)**
  1255. This value controls the overall scale/frequency of the turbulence noise pattern.
  1256. A small scale will result in smaller features with more detail while a high scale will result in smoother noise with larger features.
  1257. .. rst-class:: classref-item-separator
  1258. ----
  1259. .. _class_ParticleProcessMaterial_property_turbulence_noise_speed:
  1260. .. rst-class:: classref-property
  1261. :ref:`Vector3<class_Vector3>` **turbulence_noise_speed** = ``Vector3(0, 0, 0)``
  1262. .. rst-class:: classref-property-setget
  1263. - void **set_turbulence_noise_speed** **(** :ref:`Vector3<class_Vector3>` value **)**
  1264. - :ref:`Vector3<class_Vector3>` **get_turbulence_noise_speed** **(** **)**
  1265. A scrolling velocity for the turbulence field. This sets a directional trend for the pattern to move in over time.
  1266. The default value of ``Vector3(0, 0, 0)`` turns off the scrolling.
  1267. .. rst-class:: classref-item-separator
  1268. ----
  1269. .. _class_ParticleProcessMaterial_property_turbulence_noise_speed_random:
  1270. .. rst-class:: classref-property
  1271. :ref:`float<class_float>` **turbulence_noise_speed_random** = ``0.2``
  1272. .. rst-class:: classref-property-setget
  1273. - void **set_turbulence_noise_speed_random** **(** :ref:`float<class_float>` value **)**
  1274. - :ref:`float<class_float>` **get_turbulence_noise_speed_random** **(** **)**
  1275. The in-place rate of change of the turbulence field. This defines how quickly the noise pattern varies over time.
  1276. A value of 0.0 will result in a fixed pattern.
  1277. .. rst-class:: classref-item-separator
  1278. ----
  1279. .. _class_ParticleProcessMaterial_property_turbulence_noise_strength:
  1280. .. rst-class:: classref-property
  1281. :ref:`float<class_float>` **turbulence_noise_strength** = ``1.0``
  1282. .. rst-class:: classref-property-setget
  1283. - void **set_turbulence_noise_strength** **(** :ref:`float<class_float>` value **)**
  1284. - :ref:`float<class_float>` **get_turbulence_noise_strength** **(** **)**
  1285. The turbulence noise strength. Increasing this will result in a stronger, more contrasting, flow pattern.
  1286. .. rst-class:: classref-item-separator
  1287. ----
  1288. .. _class_ParticleProcessMaterial_property_velocity_limit_curve:
  1289. .. rst-class:: classref-property
  1290. :ref:`Texture2D<class_Texture2D>` **velocity_limit_curve**
  1291. .. rst-class:: classref-property-setget
  1292. - void **set_velocity_limit_curve** **(** :ref:`Texture2D<class_Texture2D>` value **)**
  1293. - :ref:`Texture2D<class_Texture2D>` **get_velocity_limit_curve** **(** **)**
  1294. A :ref:`CurveTexture<class_CurveTexture>` that defines the maximum velocity of a particle during its lifetime.
  1295. .. rst-class:: classref-item-separator
  1296. ----
  1297. .. _class_ParticleProcessMaterial_property_velocity_pivot:
  1298. .. rst-class:: classref-property
  1299. :ref:`Vector3<class_Vector3>` **velocity_pivot** = ``Vector3(0, 0, 0)``
  1300. .. rst-class:: classref-property-setget
  1301. - void **set_velocity_pivot** **(** :ref:`Vector3<class_Vector3>` value **)**
  1302. - :ref:`Vector3<class_Vector3>` **get_velocity_pivot** **(** **)**
  1303. A pivot point used to calculate radial and orbital velocity of particles.
  1304. .. rst-class:: classref-section-separator
  1305. ----
  1306. .. rst-class:: classref-descriptions-group
  1307. Method Descriptions
  1308. -------------------
  1309. .. _class_ParticleProcessMaterial_method_get_param:
  1310. .. rst-class:: classref-method
  1311. :ref:`Vector2<class_Vector2>` **get_param** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  1312. Returns the minimum and maximum values of the given ``param`` as a vector.
  1313. The ``x`` component of the returned vector corresponds to minimum and the ``y`` component corresponds to maximum.
  1314. .. rst-class:: classref-item-separator
  1315. ----
  1316. .. _class_ParticleProcessMaterial_method_get_param_max:
  1317. .. rst-class:: classref-method
  1318. :ref:`float<class_float>` **get_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  1319. Returns the maximum value range for the given parameter.
  1320. .. rst-class:: classref-item-separator
  1321. ----
  1322. .. _class_ParticleProcessMaterial_method_get_param_min:
  1323. .. rst-class:: classref-method
  1324. :ref:`float<class_float>` **get_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  1325. Returns the minimum value range for the given parameter.
  1326. .. rst-class:: classref-item-separator
  1327. ----
  1328. .. _class_ParticleProcessMaterial_method_get_param_texture:
  1329. .. rst-class:: classref-method
  1330. :ref:`Texture2D<class_Texture2D>` **get_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param **)** |const|
  1331. Returns the :ref:`Texture2D<class_Texture2D>` used by the specified parameter.
  1332. .. rst-class:: classref-item-separator
  1333. ----
  1334. .. _class_ParticleProcessMaterial_method_get_particle_flag:
  1335. .. rst-class:: classref-method
  1336. :ref:`bool<class_bool>` **get_particle_flag** **(** :ref:`ParticleFlags<enum_ParticleProcessMaterial_ParticleFlags>` particle_flag **)** |const|
  1337. Returns ``true`` if the specified particle flag is enabled. See :ref:`ParticleFlags<enum_ParticleProcessMaterial_ParticleFlags>` for options.
  1338. .. rst-class:: classref-item-separator
  1339. ----
  1340. .. _class_ParticleProcessMaterial_method_set_param:
  1341. .. rst-class:: classref-method
  1342. void **set_param** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`Vector2<class_Vector2>` value **)**
  1343. Sets the minimum and maximum values of the given ``param``.
  1344. The ``x`` component of the argument vector corresponds to minimum and the ``y`` component corresponds to maximum.
  1345. .. rst-class:: classref-item-separator
  1346. ----
  1347. .. _class_ParticleProcessMaterial_method_set_param_max:
  1348. .. rst-class:: classref-method
  1349. void **set_param_max** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  1350. Sets the maximum value range for the given parameter.
  1351. .. rst-class:: classref-item-separator
  1352. ----
  1353. .. _class_ParticleProcessMaterial_method_set_param_min:
  1354. .. rst-class:: classref-method
  1355. void **set_param_min** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  1356. Sets the minimum value range for the given parameter.
  1357. .. rst-class:: classref-item-separator
  1358. ----
  1359. .. _class_ParticleProcessMaterial_method_set_param_texture:
  1360. .. rst-class:: classref-method
  1361. void **set_param_texture** **(** :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>` param, :ref:`Texture2D<class_Texture2D>` texture **)**
  1362. Sets the :ref:`Texture2D<class_Texture2D>` for the specified :ref:`Parameter<enum_ParticleProcessMaterial_Parameter>`.
  1363. .. rst-class:: classref-item-separator
  1364. ----
  1365. .. _class_ParticleProcessMaterial_method_set_particle_flag:
  1366. .. rst-class:: classref-method
  1367. void **set_particle_flag** **(** :ref:`ParticleFlags<enum_ParticleProcessMaterial_ParticleFlags>` particle_flag, :ref:`bool<class_bool>` enable **)**
  1368. If ``true``, enables the specified particle flag. See :ref:`ParticleFlags<enum_ParticleProcessMaterial_ParticleFlags>` for options.
  1369. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
  1370. .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
  1371. .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
  1372. .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
  1373. .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`
  1374. .. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`
  1375. .. |bitfield| replace:: :abbr:`BitField (This value is an integer composed as a bitmask of the following flags.)`