hello_effects.html 63 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width,initial-scale=1">
  6. <title>jMonkeyEngine 3 Tutorial (12) - Hello Effects :: jMonkeyEngine Docs</title>
  7. <link rel="canonical" href="https://wiki.jmonkeyengine.org/docs/3.8/tutorials/beginner/hello_effects.html">
  8. <link rel="prev" href="hello_audio.html">
  9. <link rel="next" href="hello_physics.html">
  10. <meta name="keywords" content="beginner, documentation, intro, transparency, effect">
  11. <meta name="generator" content="Antora 3.0.1">
  12. <link rel="stylesheet" href="../../../../_/css/site.css">
  13. <meta property="og:image" content="https://wiki.jmonkeyengine.org/_/img/iconx128.png">
  14. <meta property="og:description" content="jMonkeyEngine 3 Tutorial (12) - Hello Effects">
  15. <meta property="og:title" content="jMonkeyEngine Docs">
  16. <link rel="stylesheet" href="../../../../_/css/site-extra.css">
  17. <link rel="stylesheet" href="../../../../_/css/vendor/docsearch.min.css">
  18. <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css -->
  19. <link rel="icon" href="../../../../_/img/favicon.ico" type="image/x-icon">
  20. </head>
  21. <body class="article">
  22. <header class="header">
  23. <nav class="navbar">
  24. <div class="navbar-brand">
  25. <a class="navbar-item" href="https://wiki.jmonkeyengine.org">
  26. <img alt="" src="../../../../_/img/jme-logo.png" height="32" type="image/x-icon">
  27. </a>
  28. <div class="navbar-item hide-for-print">
  29. <input id="search-input" type="text" placeholder="Search docs">
  30. </div>
  31. <button class="navbar-burger" data-target="topbar-nav">
  32. <span></span>
  33. <span></span>
  34. <span></span>
  35. </button>
  36. </div>
  37. <div id="topbar-nav" class="navbar-menu">
  38. <div class="navbar-end">
  39. <div class="navbar-item theme-switch-wrapper">
  40. <label class="theme-switch" for="checkbox">
  41. <input type="checkbox" id="checkbox" />
  42. <div class="slider round"></div>
  43. </label>
  44. </div>
  45. <a class="navbar-item" href="https://github.com/jmonkeyengine/wiki">Github</a>
  46. </div>
  47. </div>
  48. </nav>
  49. </header>
  50. <div class="body">
  51. <div class="nav-container" data-component="docs" data-version="3.8">
  52. <aside class="nav">
  53. <div class="panels">
  54. <div class="nav-panel-menu is-active" data-panel="menu">
  55. <nav class="nav-menu">
  56. <h3 class="title"><a href="../../documentation.html">JME</a></h3>
  57. <ul class="nav-list">
  58. <li class="nav-item" data-depth="0">
  59. <ul class="nav-list">
  60. <li class="nav-item" data-depth="1">
  61. <a class="nav-link" href="../../documentation.html">Getting Started</a>
  62. </li>
  63. <li class="nav-item" data-depth="1">
  64. <a class="nav-link" href="https://javadoc.jmonkeyengine.org/v3.4.1-stable">JavaDoc</a>
  65. </li>
  66. <li class="nav-item" data-depth="1">
  67. <a class="nav-link" href="../../release.html">Release Guide</a>
  68. </li>
  69. </ul>
  70. </li>
  71. <li class="nav-item" data-depth="0">
  72. <ul class="nav-list">
  73. <li class="nav-item" data-depth="1">
  74. <button class="nav-item-toggle"></button>
  75. <a class="nav-link" href="beginner.html">Beginner Tutorials</a>
  76. <ul class="nav-list">
  77. <li class="nav-item" data-depth="2">
  78. <a class="nav-link" href="hello_simpleapplication.html">Hello SimpleApplication</a>
  79. </li>
  80. <li class="nav-item" data-depth="2">
  81. <a class="nav-link" href="hello_node.html">Hello Node</a>
  82. </li>
  83. <li class="nav-item" data-depth="2">
  84. <a class="nav-link" href="hello_asset.html">Hello Asset</a>
  85. </li>
  86. <li class="nav-item" data-depth="2">
  87. <a class="nav-link" href="hello_main_event_loop.html">Hello Update Loop</a>
  88. </li>
  89. <li class="nav-item" data-depth="2">
  90. <a class="nav-link" href="hello_input_system.html">Hello Input System</a>
  91. </li>
  92. <li class="nav-item" data-depth="2">
  93. <a class="nav-link" href="hello_material.html">Hello Material</a>
  94. </li>
  95. <li class="nav-item" data-depth="2">
  96. <a class="nav-link" href="hello_animation.html">Hello Animation</a>
  97. </li>
  98. <li class="nav-item" data-depth="2">
  99. <a class="nav-link" href="hello_picking.html">Hello Picking</a>
  100. </li>
  101. <li class="nav-item" data-depth="2">
  102. <a class="nav-link" href="hello_collision.html">Hello Collision</a>
  103. </li>
  104. <li class="nav-item" data-depth="2">
  105. <a class="nav-link" href="hello_terrain.html">Hello Terrain</a>
  106. </li>
  107. <li class="nav-item" data-depth="2">
  108. <a class="nav-link" href="hello_audio.html">Hello Audio</a>
  109. </li>
  110. <li class="nav-item is-current-page" data-depth="2">
  111. <a class="nav-link" href="hello_effects.html">Hello Effects</a>
  112. </li>
  113. <li class="nav-item" data-depth="2">
  114. <a class="nav-link" href="hello_physics.html">Hello Physics</a>
  115. </li>
  116. </ul>
  117. </li>
  118. <li class="nav-item" data-depth="1">
  119. <button class="nav-item-toggle"></button>
  120. <span class="nav-text">Key Concepts</span>
  121. <ul class="nav-list">
  122. <li class="nav-item" data-depth="2">
  123. <a class="nav-link" href="../concepts/best_practices.html">Best Practices</a>
  124. </li>
  125. <li class="nav-item" data-depth="2">
  126. <a class="nav-link" href="../concepts/optimization.html">Optimization</a>
  127. </li>
  128. <li class="nav-item" data-depth="2">
  129. <a class="nav-link" href="../concepts/faq.html">Frequently Asked Questions</a>
  130. </li>
  131. <li class="nav-item" data-depth="2">
  132. <a class="nav-link" href="../concepts/math_for_dummies.html">Math for Dummies</a>
  133. </li>
  134. <li class="nav-item" data-depth="2">
  135. <a class="nav-link" href="../concepts/math.html">Math overview</a>
  136. </li>
  137. <li class="nav-item" data-depth="2">
  138. <a class="nav-link" href="../concepts/math_cheet_sheet.html">3D math "cheat sheet"</a>
  139. </li>
  140. <li class="nav-item" data-depth="2">
  141. <a class="nav-link" href="../concepts/rotate.html">3-D Rotation</a>
  142. </li>
  143. <li class="nav-item" data-depth="2">
  144. <a class="nav-link" href="../concepts/math_video_tutorials.html">Math video tutorial series</a>
  145. </li>
  146. <li class="nav-item" data-depth="2">
  147. <a class="nav-link" href="../concepts/multi-media_asset_pipeline.html">Multi-Media Asset Pipeline</a>
  148. </li>
  149. <li class="nav-item" data-depth="2">
  150. <a class="nav-link" href="../concepts/the_scene_graph.html">The Scene Graph</a>
  151. </li>
  152. <li class="nav-item" data-depth="2">
  153. <a class="nav-link" href="../concepts/scenegraph_for_dummies.html">Scene Graph for Dummies</a>
  154. </li>
  155. <li class="nav-item" data-depth="2">
  156. <a class="nav-link" href="../concepts/terminology.html">3D Graphics Terminology</a>
  157. </li>
  158. <li class="nav-item" data-depth="2">
  159. <a class="nav-link" href="../concepts/transparency_sorting.html">Transparency Sorting</a>
  160. </li>
  161. </ul>
  162. </li>
  163. <li class="nav-item" data-depth="1">
  164. <button class="nav-item-toggle"></button>
  165. <span class="nav-text">Articles and How-to&#8217;s</span>
  166. <ul class="nav-list">
  167. <li class="nav-item" data-depth="2">
  168. <button class="nav-item-toggle"></button>
  169. <span class="nav-text">How to Model</span>
  170. <ul class="nav-list">
  171. <li class="nav-item" data-depth="3">
  172. <a class="nav-link" href="../how-to/modeling/3dsmax/3dsmax.html">3dsmax</a>
  173. </li>
  174. <li class="nav-item" data-depth="3">
  175. <button class="nav-item-toggle"></button>
  176. <a class="nav-link" href="../how-to/modeling/blender/blender.html">Blender</a>
  177. <ul class="nav-list">
  178. <li class="nav-item" data-depth="4">
  179. <a class="nav-link" href="../how-to/modeling/blender/blender_buffer_clearing.html">Buffer Clearing</a>
  180. </li>
  181. <li class="nav-item" data-depth="4">
  182. <a class="nav-link" href="../how-to/modeling/blender/blender_gltf.html">Export as GlTF</a>
  183. </li>
  184. <li class="nav-item" data-depth="4">
  185. <a class="nav-link" href="../how-to/modeling/blender/blender_ogre_export.html">Export as Ogre XML</a>
  186. </li>
  187. <li class="nav-item" data-depth="4">
  188. <a class="nav-link" href="../how-to/modeling/blender/blender_ogre_compatibility.html">Ogre Compatibility</a>
  189. </li>
  190. <li class="nav-item" data-depth="4">
  191. <a class="nav-link" href="../how-to/modeling/blender/makehuman.html">MakeHuman</a>
  192. </li>
  193. <li class="nav-item" data-depth="4">
  194. <a class="nav-link" href="../how-to/modeling/blender/makehuman_blender_ogrexml_toolchain.html">MakeHuman toolchain</a>
  195. </li>
  196. </ul>
  197. </li>
  198. </ul>
  199. </li>
  200. <li class="nav-item" data-depth="2">
  201. <button class="nav-item-toggle"></button>
  202. <span class="nav-text">How to Animate</span>
  203. <ul class="nav-list">
  204. <li class="nav-item" data-depth="3">
  205. <button class="nav-item-toggle"></button>
  206. <span class="nav-text">Mixamo</span>
  207. <ul class="nav-list">
  208. <li class="nav-item" data-depth="4">
  209. <a class="nav-link" href="../how-to/modeling/blender/mixamo.html">Blender Models</a>
  210. </li>
  211. </ul>
  212. </li>
  213. </ul>
  214. </li>
  215. <li class="nav-item" data-depth="2">
  216. <a class="nav-link" href="../how-to/debugging.html">Debugging with Wireframes</a>
  217. </li>
  218. <li class="nav-item" data-depth="2">
  219. <a class="nav-link" href="../how-to/util/free_skymaps.html">How to create free skymaps</a>
  220. </li>
  221. <li class="nav-item" data-depth="2">
  222. <button class="nav-item-toggle"></button>
  223. <span class="nav-text">Java Tips</span>
  224. <ul class="nav-list">
  225. <li class="nav-item" data-depth="3">
  226. <a class="nav-link" href="../how-to/java/localization.html">Localization</a>
  227. </li>
  228. <li class="nav-item" data-depth="3">
  229. <a class="nav-link" href="../how-to/java/swing_canvas.html">Swing Canvas</a>
  230. </li>
  231. <li class="nav-item" data-depth="3">
  232. <a class="nav-link" href="../how-to/java/logging.html">Logging</a>
  233. </li>
  234. <li class="nav-item" data-depth="3">
  235. <a class="nav-link" href="../how-to/java/read_graphic_card_capabilites.html">Read Graphics Capabilities</a>
  236. </li>
  237. </ul>
  238. </li>
  239. <li class="nav-item" data-depth="2">
  240. <button class="nav-item-toggle"></button>
  241. <span class="nav-text">Articles</span>
  242. <ul class="nav-list">
  243. <li class="nav-item" data-depth="3">
  244. <button class="nav-item-toggle"></button>
  245. <span class="nav-text">Physically Based Rendering</span>
  246. <ul class="nav-list">
  247. <li class="nav-item" data-depth="4">
  248. <a class="nav-link" href="../how-to/articles/pbr/pbr_part1.html">PBR – Part one</a>
  249. </li>
  250. <li class="nav-item" data-depth="4">
  251. <a class="nav-link" href="../how-to/articles/pbr/pbr_part2.html">PBR – Part two</a>
  252. </li>
  253. <li class="nav-item" data-depth="4">
  254. <a class="nav-link" href="../how-to/articles/pbr/pbr_part3.html">PBR – Part three</a>
  255. </li>
  256. </ul>
  257. </li>
  258. </ul>
  259. </li>
  260. </ul>
  261. </li>
  262. </ul>
  263. </li>
  264. <li class="nav-item" data-depth="0">
  265. <ul class="nav-list">
  266. <li class="nav-item" data-depth="1">
  267. <button class="nav-item-toggle"></button>
  268. <span class="nav-text">Core Engine</span>
  269. <ul class="nav-list">
  270. <li class="nav-item" data-depth="2">
  271. <a class="nav-link" href="../../core/app/simpleapplication.html">SimpleApplication</a>
  272. </li>
  273. <li class="nav-item" data-depth="2">
  274. <a class="nav-link" href="../../core/system/appsettings.html">AppSettings</a>
  275. </li>
  276. </ul>
  277. </li>
  278. <li class="nav-item" data-depth="1">
  279. <button class="nav-item-toggle"></button>
  280. <span class="nav-text">Controlling Game Logic</span>
  281. <ul class="nav-list">
  282. <li class="nav-item" data-depth="2">
  283. <a class="nav-link" href="../../core/app/update_loop.html">Update Loop</a>
  284. </li>
  285. <li class="nav-item" data-depth="2">
  286. <a class="nav-link" href="../../core/app/state/application_states.html">Application States</a>
  287. </li>
  288. <li class="nav-item" data-depth="2">
  289. <button class="nav-item-toggle"></button>
  290. <a class="nav-link" href="../../core/scene/control/custom_controls.html">Custom Controls</a>
  291. <ul class="nav-list">
  292. <li class="nav-item" data-depth="3">
  293. <button class="nav-item-toggle"></button>
  294. <span class="nav-text">Video</span>
  295. <ul class="nav-list">
  296. <li class="nav-item" data-depth="4">
  297. <a class="nav-link" href="https://www.youtube.com/watch?v=MNDiZ9YHIpM">Control any scene node</a>
  298. </li>
  299. <li class="nav-item" data-depth="4">
  300. <a class="nav-link" href="https://www.youtube.com/watch?v=-OzRZscLlHY">Control a character</a>
  301. </li>
  302. <li class="nav-item" data-depth="4">
  303. <a class="nav-link" href="https://wiki.jmonkeyengine.org/Scenes/SDK-UsecaseDemo_1.zip">Video Source Code</a>
  304. </li>
  305. </ul>
  306. </li>
  307. </ul>
  308. </li>
  309. <li class="nav-item" data-depth="2">
  310. <a class="nav-link" href="../../core/app/multithreading.html">Multithreading</a>
  311. </li>
  312. </ul>
  313. </li>
  314. <li class="nav-item" data-depth="1">
  315. <button class="nav-item-toggle"></button>
  316. <span class="nav-text">Scene Graph</span>
  317. <ul class="nav-list">
  318. <li class="nav-item" data-depth="2">
  319. <a class="nav-link" href="../../core/scene/traverse_scenegraph.html">Traverse SceneGraph</a>
  320. </li>
  321. <li class="nav-item" data-depth="2">
  322. <a class="nav-link" href="../../core/scene/spatial.html">Spatial: Node vs Geometry</a>
  323. </li>
  324. <li class="nav-item" data-depth="2">
  325. <button class="nav-item-toggle"></button>
  326. <a class="nav-link" href="../../core/scene/mesh.html">Mesh</a>
  327. <ul class="nav-list">
  328. <li class="nav-item" data-depth="3">
  329. <a class="nav-link" href="../../core/scene/custom_meshes.html">Custom Meshes</a>
  330. </li>
  331. <li class="nav-item" data-depth="3">
  332. <a class="nav-link" href="../../core/scene/shape/shape.html">Shape</a>
  333. </li>
  334. <li class="nav-item" data-depth="3">
  335. <a class="nav-link" href="../../core/scene/3d_models.html">3D Models</a>
  336. </li>
  337. </ul>
  338. </li>
  339. <li class="nav-item" data-depth="2">
  340. <a class="nav-link" href="../../core/asset/asset_manager.html">Asset Manager</a>
  341. </li>
  342. <li class="nav-item" data-depth="2">
  343. <a class="nav-link" href="../../core/export/save_and_load.html">Saving and Loading Nodes</a>
  344. </li>
  345. <li class="nav-item" data-depth="2">
  346. <a class="nav-link" href="../../core/collision/collision_and_intersection.html">Collision and Intersection</a>
  347. </li>
  348. <li class="nav-item" data-depth="2">
  349. <a class="nav-link" href="../../core/scene/control/level_of_detail.html">Level of Detail</a>
  350. </li>
  351. </ul>
  352. </li>
  353. <li class="nav-item" data-depth="1">
  354. <button class="nav-item-toggle"></button>
  355. <span class="nav-text">Animation, Scene</span>
  356. <ul class="nav-list">
  357. <li class="nav-item" data-depth="2">
  358. <a class="nav-link" href="../../core/animation/animation_new.html">Animation with AnimComposer</a>
  359. </li>
  360. <li class="nav-item" data-depth="2">
  361. <a class="nav-link" href="../../core/animation/animation.html">Animation-Old (AnimControl)</a>
  362. </li>
  363. <li class="nav-item" data-depth="2">
  364. <a class="nav-link" href="../../core/cinematic/cinematics.html">Cinematics (cutscenes, fake destruction physics)</a>
  365. </li>
  366. <li class="nav-item" data-depth="2">
  367. <a class="nav-link" href="../../core/cinematic/motionpath.html">MotionPaths and Waypoints</a>
  368. </li>
  369. </ul>
  370. </li>
  371. <li class="nav-item" data-depth="1">
  372. <button class="nav-item-toggle"></button>
  373. <span class="nav-text">Material, Light, Shadow</span>
  374. <ul class="nav-list">
  375. <li class="nav-item" data-depth="2">
  376. <a class="nav-link" href="../../core/material/how_to_use_materials.html">How to use Materials</a>
  377. </li>
  378. <li class="nav-item" data-depth="2">
  379. <a class="nav-link" href="../../core/material/j3m_material_files.html">.j3m Material Files</a>
  380. </li>
  381. <li class="nav-item" data-depth="2">
  382. <a class="nav-link" href="../../core/material/material_definitions.html">.j3md Material Definitions</a>
  383. </li>
  384. <li class="nav-item" data-depth="2">
  385. <a class="nav-link" href="../../core/material/materials_overview.html">.j3md Properties</a>
  386. </li>
  387. <li class="nav-item" data-depth="2">
  388. <a class="nav-link" href="../../core/shader/jme3_shaders.html">Shaders and JME3</a>
  389. </li>
  390. <li class="nav-item" data-depth="2">
  391. <a class="nav-link" href="../../core/shader/jme3_shadernodes.html">Shader Node System</a>
  392. </li>
  393. <li class="nav-item" data-depth="2">
  394. <a class="nav-link" href="../../core/shader/shader_video_tutorials.html">Shader Video Tutorials</a>
  395. </li>
  396. <li class="nav-item" data-depth="2">
  397. <a class="nav-link" href="../../core/light/light_and_shadow.html">Light and Shadow</a>
  398. </li>
  399. <li class="nav-item" data-depth="2">
  400. <a class="nav-link" href="../../core/texture/anisotropic_filtering.html">Anisotropic Filtering</a>
  401. </li>
  402. <li class="nav-item" data-depth="2">
  403. <a class="nav-link" href="../../core/system/jme3_srgbpipeline.html">Gamma Correction</a>
  404. </li>
  405. <li class="nav-item" data-depth="2">
  406. <a class="nav-link" href="../../core/material/normal_types.html">Normal Map Conventions</a>
  407. </li>
  408. </ul>
  409. </li>
  410. <li class="nav-item" data-depth="1">
  411. <button class="nav-item-toggle"></button>
  412. <span class="nav-text">Audio, Video</span>
  413. <ul class="nav-list">
  414. <li class="nav-item" data-depth="2">
  415. <a class="nav-link" href="../../core/audio/audio.html">Playing Sounds</a>
  416. </li>
  417. <li class="nav-item" data-depth="2">
  418. <a class="nav-link" href="../../core/audio/audio_environment_presets.html">Audio Environment Presets</a>
  419. </li>
  420. <li class="nav-item" data-depth="2">
  421. <a class="nav-link" href="../../core/app/state/screenshots.html">Capture Screenshots</a>
  422. </li>
  423. <li class="nav-item" data-depth="2">
  424. <a class="nav-link" href="../../core/app/state/capture_audio_video_to_a_file.html">Capture Audio/Video</a>
  425. </li>
  426. </ul>
  427. </li>
  428. <li class="nav-item" data-depth="1">
  429. <button class="nav-item-toggle"></button>
  430. <span class="nav-text">Filter, Effect</span>
  431. <ul class="nav-list">
  432. <li class="nav-item" data-depth="2">
  433. <a class="nav-link" href="../../core/effect/effects_overview.html">Overview</a>
  434. </li>
  435. <li class="nav-item" data-depth="2">
  436. <a class="nav-link" href="../../core/effect/bloom_and_glow.html">Bloom and Glow</a>
  437. </li>
  438. <li class="nav-item" data-depth="2">
  439. <a class="nav-link" href="../../core/effect/particle_emitters.html">Particle Emitters</a>
  440. </li>
  441. </ul>
  442. </li>
  443. <li class="nav-item" data-depth="1">
  444. <button class="nav-item-toggle"></button>
  445. <span class="nav-text">Landscapes</span>
  446. <ul class="nav-list">
  447. <li class="nav-item" data-depth="2">
  448. <a class="nav-link" href="../../core/util/sky.html">Sky</a>
  449. </li>
  450. <li class="nav-item" data-depth="2">
  451. <a class="nav-link" href="../../core/terrain/terrain.html">Terrain (TerraMonkey)</a>
  452. </li>
  453. <li class="nav-item" data-depth="2">
  454. <a class="nav-link" href="../../core/collision/terrain_collision.html">Terrain Collision</a>
  455. </li>
  456. <li class="nav-item" data-depth="2">
  457. <a class="nav-link" href="../../core/effect/water.html">Simple Water</a>
  458. </li>
  459. <li class="nav-item" data-depth="2">
  460. <a class="nav-link" href="../../core/effect/post-processor_water.html">Post-Processor Water</a>
  461. </li>
  462. </ul>
  463. </li>
  464. <li class="nav-item" data-depth="1">
  465. <button class="nav-item-toggle"></button>
  466. <span class="nav-text">Camera</span>
  467. <ul class="nav-list">
  468. <li class="nav-item" data-depth="2">
  469. <a class="nav-link" href="../../core/renderer/camera.html">Camera</a>
  470. </li>
  471. <li class="nav-item" data-depth="2">
  472. <a class="nav-link" href="../../core/renderer/making_the_camera_follow_a_character.html">Follow a Character</a>
  473. </li>
  474. <li class="nav-item" data-depth="2">
  475. <a class="nav-link" href="../../core/renderer/remote-controlling_the_camera.html">Remote-Controlling</a>
  476. </li>
  477. <li class="nav-item" data-depth="2">
  478. <a class="nav-link" href="../../core/renderer/multiple_camera_views.html">Multiple Camera Views</a>
  479. </li>
  480. <li class="nav-item" data-depth="2">
  481. <a class="nav-link" href="../../core/renderer/jme3_renderbuckets.html">Render Buckets</a>
  482. </li>
  483. </ul>
  484. </li>
  485. <li class="nav-item" data-depth="1">
  486. <button class="nav-item-toggle"></button>
  487. <span class="nav-text">Rendering</span>
  488. <ul class="nav-list">
  489. <li class="nav-item" data-depth="2">
  490. <a class="nav-link" href="../../core/renderer/render_pipeline.html">Render Pipelines</a>
  491. </li>
  492. </ul>
  493. </li>
  494. <li class="nav-item" data-depth="1">
  495. <button class="nav-item-toggle"></button>
  496. <span class="nav-text">User Interaction</span>
  497. <ul class="nav-list">
  498. <li class="nav-item" data-depth="2">
  499. <a class="nav-link" href="../../core/input/input_handling.html">Input Handling</a>
  500. </li>
  501. <li class="nav-item" data-depth="2">
  502. <a class="nav-link" href="../../core/input/combo_moves.html">Combo Moves</a>
  503. </li>
  504. <li class="nav-item" data-depth="2">
  505. <a class="nav-link" href="../../core/input/mouse_picking.html">Mouse Picking</a>
  506. </li>
  507. </ul>
  508. </li>
  509. <li class="nav-item" data-depth="1">
  510. <button class="nav-item-toggle"></button>
  511. <a class="nav-link" href="../../core/gui/topic_gui.html">Graphical User Interface</a>
  512. <ul class="nav-list">
  513. <li class="nav-item" data-depth="2">
  514. <button class="nav-item-toggle"></button>
  515. <span class="nav-text">Nifty GUI</span>
  516. <ul class="nav-list">
  517. <li class="nav-item" data-depth="3">
  518. <a class="nav-link" href="../../core/gui/nifty_gui.html">Integration Tutorial</a>
  519. </li>
  520. <li class="nav-item" data-depth="3">
  521. <a class="nav-link" href="../../core/gui/nifty_gui_best_practices.html">Best Practices</a>
  522. </li>
  523. <li class="nav-item" data-depth="3">
  524. <a class="nav-link" href="../../core/gui/nifty_gui_scenarios.html">Scenarios</a>
  525. </li>
  526. </ul>
  527. </li>
  528. <li class="nav-item" data-depth="2">
  529. <a class="nav-link" href="../../core/ui/hud.html">Head-Up Display (HUD)</a>
  530. </li>
  531. </ul>
  532. </li>
  533. <li class="nav-item" data-depth="1">
  534. <button class="nav-item-toggle"></button>
  535. <span class="nav-text">Virtual Reality</span>
  536. <ul class="nav-list">
  537. <li class="nav-item" data-depth="2">
  538. <a class="nav-link" href="../../core/vr/virtualreality.html">Virtual Reality</a>
  539. </li>
  540. <li class="nav-item" data-depth="2">
  541. <a class="nav-link" href="../../core/vr/legacyOpenVr.html">Virtual Reality Legacy Support</a>
  542. </li>
  543. <li class="nav-item" data-depth="2">
  544. <a class="nav-link" href="../../core/vr/virtualrealitycontrollers.html">Virtual Reality Legacy Controller Support</a>
  545. </li>
  546. </ul>
  547. </li>
  548. </ul>
  549. </li>
  550. <li class="nav-item" data-depth="0">
  551. <ul class="nav-list">
  552. <li class="nav-item" data-depth="1">
  553. <button class="nav-item-toggle"></button>
  554. <a class="nav-link" href="../../physics/physics.html">Physics</a>
  555. <ul class="nav-list">
  556. <li class="nav-item" data-depth="2">
  557. <a class="nav-link" href="../../physics/bullet_multithreading.html">Multi-Threaded Physics</a>
  558. </li>
  559. <li class="nav-item" data-depth="2">
  560. <a class="nav-link" href="../../physics/collision/physics_listeners.html">Collision Detection</a>
  561. </li>
  562. <li class="nav-item" data-depth="2">
  563. <a class="nav-link" href="../../physics/joint/hinges_and_joints.html">Hinges and Joints</a>
  564. </li>
  565. <li class="nav-item" data-depth="2">
  566. <a class="nav-link" href="../../physics/control/walking_character.html">Walking Character</a>
  567. </li>
  568. <li class="nav-item" data-depth="2">
  569. <a class="nav-link" href="../../physics/control/ragdoll.html">Ragdoll</a>
  570. </li>
  571. <li class="nav-item" data-depth="2">
  572. <a class="nav-link" href="../../physics/control/vehicles.html">Vehicles</a>
  573. </li>
  574. <li class="nav-item" data-depth="2">
  575. <a class="nav-link" href="../../physics/control/softbody.html">Softbody</a>
  576. </li>
  577. <li class="nav-item" data-depth="2">
  578. <a class="nav-link" href="../../physics/bullet_pitfalls.html">Bullet Physics Pitfalls</a>
  579. </li>
  580. </ul>
  581. </li>
  582. </ul>
  583. </li>
  584. <li class="nav-item" data-depth="0">
  585. <ul class="nav-list">
  586. <li class="nav-item" data-depth="1">
  587. <button class="nav-item-toggle"></button>
  588. <span class="nav-text">Networking</span>
  589. <ul class="nav-list">
  590. <li class="nav-item" data-depth="2">
  591. <a class="nav-link" href="../../networking/networking.html">Networking (SpiderMonkey)</a>
  592. </li>
  593. <li class="nav-item" data-depth="2">
  594. <a class="nav-link" href="../../networking/headless_server.html">Headless Server</a>
  595. </li>
  596. <li class="nav-item" data-depth="2">
  597. <a class="nav-link" href="../../networking/monkey_zone.html">Multi-Player Demo Code</a>
  598. </li>
  599. <li class="nav-item" data-depth="2">
  600. <a class="nav-link" href="../../networking/networking_video_tutorials.html">Networking Video Tutorials</a>
  601. </li>
  602. </ul>
  603. </li>
  604. </ul>
  605. </li>
  606. <li class="nav-item" data-depth="0">
  607. <ul class="nav-list">
  608. <li class="nav-item" data-depth="1">
  609. <button class="nav-item-toggle"></button>
  610. <span class="nav-text">User Contributions</span>
  611. <ul class="nav-list">
  612. <li class="nav-item" data-depth="2">
  613. <a class="nav-link" href="../../contributions/contributions.html">User Made Utilities</a>
  614. </li>
  615. <li class="nav-item" data-depth="2">
  616. <button class="nav-item-toggle"></button>
  617. <span class="nav-text">Shader</span>
  618. <ul class="nav-list">
  619. <li class="nav-item" data-depth="3">
  620. <a class="nav-link" href="../../contributions/shader/shaderblow_project.html">ShaderBlow Project</a>
  621. </li>
  622. </ul>
  623. </li>
  624. <li class="nav-item" data-depth="2">
  625. <button class="nav-item-toggle"></button>
  626. <span class="nav-text">Landscapes</span>
  627. <ul class="nav-list">
  628. <li class="nav-item" data-depth="3">
  629. <a class="nav-link" href="../../contributions/lanscapes/vegetationsystem/vegetationsystem.html">Vegetation System</a>
  630. </li>
  631. </ul>
  632. </li>
  633. <li class="nav-item" data-depth="2">
  634. <button class="nav-item-toggle"></button>
  635. <span class="nav-text">Networking</span>
  636. <ul class="nav-list">
  637. <li class="nav-item" data-depth="3">
  638. <a class="nav-link" href="../../contributions/networking/open_game_finder.html">Open Game Finder</a>
  639. </li>
  640. </ul>
  641. </li>
  642. <li class="nav-item" data-depth="2">
  643. <button class="nav-item-toggle"></button>
  644. <span class="nav-text">Entity System</span>
  645. <ul class="nav-list">
  646. <li class="nav-item" data-depth="3">
  647. <a class="nav-link" href="#es/entitysystem.adoc">The Zay-ES Entity System</a>
  648. </li>
  649. </ul>
  650. </li>
  651. <li class="nav-item" data-depth="2">
  652. <button class="nav-item-toggle"></button>
  653. <span class="nav-text">Artificial Intelligence</span>
  654. <ul class="nav-list">
  655. <li class="nav-item" data-depth="3">
  656. <a class="nav-link" href="../../contributions/ai/recast.html">Recast Navigation</a>
  657. </li>
  658. <li class="nav-item" data-depth="3">
  659. <a class="nav-link" href="../../contributions/ai/building_recast.html">Updating and building Recast Native Bindings</a>
  660. </li>
  661. <li class="nav-item" data-depth="3">
  662. <a class="nav-link" href="../../contributions/ai/monkey_brains.html">Monkey Brains</a>
  663. </li>
  664. <li class="nav-item" data-depth="3">
  665. <a class="nav-link" href="../../contributions/ai/steer_behaviours.html">Steer Behaviours</a>
  666. </li>
  667. <li class="nav-item" data-depth="3">
  668. <a class="nav-link" href="../../contributions/ai/jme3_ai.html">jME3 Artificial Intelligence</a>
  669. </li>
  670. </ul>
  671. </li>
  672. <li class="nav-item" data-depth="2">
  673. <button class="nav-item-toggle"></button>
  674. <a class="nav-link" href="../../contributions/gui/topic_contributions_gui.html">GUI</a>
  675. <ul class="nav-list">
  676. <li class="nav-item" data-depth="3">
  677. <a class="nav-link" href="../../contributions/contributions.html#lemur-gui-library">Lemur - a native jME3 GUI library with scene graph tools</a>
  678. </li>
  679. <li class="nav-item" data-depth="3">
  680. <a class="nav-link" href="../../contributions/contributions.html#tonegodgui">tonegodGUI - a native jME3 GUI library</a>
  681. </li>
  682. <li class="nav-item" data-depth="3">
  683. <a class="nav-link" href="../../contributions/contributions.html#immediate-graphical-user-interface">Immediate graphical user interface</a>
  684. </li>
  685. </ul>
  686. </li>
  687. <li class="nav-item" data-depth="2">
  688. <button class="nav-item-toggle"></button>
  689. <span class="nav-text">Tools</span>
  690. <ul class="nav-list">
  691. <li class="nav-item" data-depth="3">
  692. <a class="nav-link" href="../../contributions/tools/navigation.html">Mercator Projection Tool (Marine Navigation)</a>
  693. </li>
  694. <li class="nav-item" data-depth="3">
  695. <a class="nav-link" href="../../contributions/tools/charts.html">Visualizing Maps in JME3 (Marine Charts)</a>
  696. </li>
  697. </ul>
  698. </li>
  699. <li class="nav-item" data-depth="2">
  700. <button class="nav-item-toggle"></button>
  701. <a class="nav-link" href="../../contributions/vr/topic_contributions_vr.html">Virtual Reality (And augmented reality)</a>
  702. <ul class="nav-list">
  703. <li class="nav-item" data-depth="3">
  704. <a class="nav-link" href="../../contributions/contributions.html#tamarin-openxr">Tamarin OpenXR</a>
  705. </li>
  706. </ul>
  707. </li>
  708. <li class="nav-item" data-depth="2">
  709. <button class="nav-item-toggle"></button>
  710. <span class="nav-text">Projects</span>
  711. <ul class="nav-list">
  712. <li class="nav-item" data-depth="3">
  713. <a class="nav-link" href="../../contributions/projects/rise_of_mutants_project.html">Rise of Mutants Project</a>
  714. </li>
  715. </ul>
  716. </li>
  717. </ul>
  718. </li>
  719. </ul>
  720. </li>
  721. <li class="nav-item" data-depth="0">
  722. <ul class="nav-list">
  723. <li class="nav-item" data-depth="1">
  724. <button class="nav-item-toggle"></button>
  725. <a class="nav-link" href="../../sdk/sdk.html">SDK</a>
  726. <ul class="nav-list">
  727. <li class="nav-item" data-depth="2">
  728. <button class="nav-item-toggle"></button>
  729. <span class="nav-text">Video Tutorials</span>
  730. <ul class="nav-list">
  731. <li class="nav-item" data-depth="3">
  732. <button class="nav-item-toggle"></button>
  733. <span class="nav-text">SDK Use Case Tutorials</span>
  734. <ul class="nav-list">
  735. <li class="nav-item" data-depth="4">
  736. <a class="nav-link" href="http://www.youtube.com/watch?v=-OzRZscLlHY">Demo 1 (Quixote demo)</a>
  737. </li>
  738. <li class="nav-item" data-depth="4">
  739. <a class="nav-link" href="http://www.youtube.com/watch?v=6-YWxD3JByE">Demo 2 (Models and Materials)</a>
  740. </li>
  741. </ul>
  742. </li>
  743. <li class="nav-item" data-depth="3">
  744. <button class="nav-item-toggle"></button>
  745. <span class="nav-text">SDK Tutorials</span>
  746. <ul class="nav-list">
  747. <li class="nav-item" data-depth="4">
  748. <a class="nav-link" href="http://www.youtube.com/watch?v=M1_0pbeyJzI">Basics</a>
  749. </li>
  750. <li class="nav-item" data-depth="4">
  751. <a class="nav-link" href="http://www.youtube.com/watch?v=nL7woH40i5c">Importing Models</a>
  752. </li>
  753. <li class="nav-item" data-depth="4">
  754. <a class="nav-link" href="http://www.youtube.com/watch?v=DUmgAjiNzhY">Dragging&amp;Dropping Nodes</a>
  755. </li>
  756. <li class="nav-item" data-depth="4">
  757. <a class="nav-link" href="http://www.youtube.com/watch?v=ntPAmtsQ6eM">Scene Composing</a>
  758. </li>
  759. <li class="nav-item" data-depth="4">
  760. <a class="nav-link" href="http://www.youtube.com/watch?v=zgPV3W6dD4s">Terrain with Collision Shape</a>
  761. </li>
  762. <li class="nav-item" data-depth="4">
  763. <a class="nav-link" href="http://www.youtube.com/watch?v=Feu3-mrpolc">Working with Materials</a>
  764. </li>
  765. <li class="nav-item" data-depth="4">
  766. <a class="nav-link" href="http://www.youtube.com/watch?v=MNDiZ9YHIpM">Custom Controls</a>
  767. </li>
  768. <li class="nav-item" data-depth="4">
  769. <a class="nav-link" href="http://www.youtube.com/watch?v=oZnssg8TBWQ">WebStart Deployment</a>
  770. </li>
  771. <li class="nav-item" data-depth="4">
  772. <a class="nav-link" href="http://www.youtube.com/watch?v=D7JM4VMKqPc">Animation and Effect TrackEditing</a>
  773. </li>
  774. </ul>
  775. </li>
  776. </ul>
  777. </li>
  778. <li class="nav-item" data-depth="2">
  779. <button class="nav-item-toggle"></button>
  780. <span class="nav-text">Getting Started</span>
  781. <ul class="nav-list">
  782. <li class="nav-item" data-depth="3">
  783. <a class="nav-link" href="../../sdk/update_center.html">Updating jMonkeyEngine SDK</a>
  784. </li>
  785. <li class="nav-item" data-depth="3">
  786. <a class="nav-link" href="../../sdk/troubleshooting.html">Troubleshooting</a>
  787. </li>
  788. </ul>
  789. </li>
  790. <li class="nav-item" data-depth="2">
  791. <button class="nav-item-toggle"></button>
  792. <span class="nav-text">Java Development Features</span>
  793. <ul class="nav-list">
  794. <li class="nav-item" data-depth="3">
  795. <a class="nav-link" href="../../sdk/project_creation.html">Project Creation</a>
  796. </li>
  797. <li class="nav-item" data-depth="3">
  798. <a class="nav-link" href="../../sdk/code_editor.html">Code Editor and Palette</a>
  799. </li>
  800. <li class="nav-item" data-depth="3">
  801. <a class="nav-link" href="../../sdk/version_control.html">File Version Control</a>
  802. </li>
  803. <li class="nav-item" data-depth="3">
  804. <a class="nav-link" href="../../sdk/debugging_profiling_testing.html">Debug, Profile, Test</a>
  805. </li>
  806. <li class="nav-item" data-depth="3">
  807. <button class="nav-item-toggle"></button>
  808. <a class="nav-link" href="../../sdk/application_deployment.html">Application Deployment</a>
  809. <ul class="nav-list">
  810. <li class="nav-item" data-depth="4">
  811. <a class="nav-link" href="../../sdk/default_build_script.html">Default Build Script</a>
  812. </li>
  813. <li class="nav-item" data-depth="4">
  814. <a class="nav-link" href="../../sdk/android.html">Android</a>
  815. </li>
  816. <li class="nav-item" data-depth="4">
  817. <a class="nav-link" href="../../sdk/android_cheat_sheet.html">Android Cheat Sheet</a>
  818. </li>
  819. <li class="nav-item" data-depth="4">
  820. <a class="nav-link" href="../../sdk/ios.html">iOS</a>
  821. </li>
  822. </ul>
  823. </li>
  824. </ul>
  825. </li>
  826. <li class="nav-item" data-depth="2">
  827. <button class="nav-item-toggle"></button>
  828. <span class="nav-text">Unique Features</span>
  829. <ul class="nav-list">
  830. <li class="nav-item" data-depth="3">
  831. <button class="nav-item-toggle"></button>
  832. <a class="nav-link" href="../../sdk/model_loader_and_viewer.html">Import, View, Convert Models</a>
  833. <ul class="nav-list">
  834. <li class="nav-item" data-depth="4">
  835. <a class="nav-link" href="../../sdk/asset_packs.html">Asset Packs</a>
  836. </li>
  837. </ul>
  838. </li>
  839. <li class="nav-item" data-depth="3">
  840. <a class="nav-link" href="../../sdk/scene_explorer.html">The SceneExplorer</a>
  841. </li>
  842. <li class="nav-item" data-depth="3">
  843. <a class="nav-link" href="../../sdk/scene_composer.html">Composing a Scene</a>
  844. </li>
  845. <li class="nav-item" data-depth="3">
  846. <a class="nav-link" href="../../sdk/terrain_editor.html">Terrain Editor</a>
  847. </li>
  848. <li class="nav-item" data-depth="3">
  849. <a class="nav-link" href="../../sdk/sample_code.html">Sample Code</a>
  850. </li>
  851. <li class="nav-item" data-depth="3">
  852. <a class="nav-link" href="../../sdk/material_editing.html">Material Editing</a>
  853. </li>
  854. <li class="nav-item" data-depth="3">
  855. <a class="nav-link" href="../../sdk/font_creation.html">Creating Bitmap Fonts</a>
  856. </li>
  857. <li class="nav-item" data-depth="3">
  858. <button class="nav-item-toggle"></button>
  859. <a class="nav-link" href="https://hub.jmonkeyengine.org/t/effecttrack-and-audiotrack-editing-in-the-sdk/23378">Audio and Effect Track Editing</a>
  860. <ul class="nav-list">
  861. <li class="nav-item" data-depth="4">
  862. <a class="nav-link" href="https://www.youtube.com/watch?v=D7JM4VMKqPc">Video: Effect and AudioTrack editing in jMonkeyEngine 3 sdk</a>
  863. </li>
  864. </ul>
  865. </li>
  866. <li class="nav-item" data-depth="3">
  867. <a class="nav-link" href="../../sdk/filters.html">Post-Processor Filter Editor and Viewer</a>
  868. </li>
  869. <li class="nav-item" data-depth="3">
  870. <a class="nav-link" href="../../core/app/state/application_states.html">Application States</a>
  871. </li>
  872. <li class="nav-item" data-depth="3">
  873. <a class="nav-link" href="../../core/scene/control/custom_controls.html">Custom Controls</a>
  874. </li>
  875. <li class="nav-item" data-depth="3">
  876. <a class="nav-link" href="../../sdk/vehicle_creator.html">Vehicle Creator</a>
  877. </li>
  878. <li class="nav-item" data-depth="3">
  879. <a class="nav-link" href="../../sdk/assetbrowser.html">Asset Browser</a>
  880. </li>
  881. <li class="nav-item" data-depth="3">
  882. <a class="nav-link" href="../../sdk/animations.html">Animations</a>
  883. </li>
  884. </ul>
  885. </li>
  886. <li class="nav-item" data-depth="2">
  887. <button class="nav-item-toggle"></button>
  888. <span class="nav-text">Advanced Usage</span>
  889. <ul class="nav-list">
  890. <li class="nav-item" data-depth="3">
  891. <a class="nav-link" href="../../sdk/build_platform.html">Building jMonkeyEngine SDK</a>
  892. </li>
  893. <li class="nav-item" data-depth="3">
  894. <a class="nav-link" href="../../sdk/use_own_jme.html#.adoc">Using your own (modified) version of jME3 in jMonkeyEngine SDK</a>
  895. </li>
  896. <li class="nav-item" data-depth="3">
  897. <a class="nav-link" href="../../sdk/increasing_heap_memory.html">Increasing Heap Memory</a>
  898. </li>
  899. <li class="nav-item" data-depth="3">
  900. <a class="nav-link" href="../../sdk/log_files.html">Log Files</a>
  901. </li>
  902. </ul>
  903. </li>
  904. <li class="nav-item" data-depth="2">
  905. <button class="nav-item-toggle"></button>
  906. <span class="nav-text">Available external plugins</span>
  907. <ul class="nav-list">
  908. <li class="nav-item" data-depth="3">
  909. <a class="nav-link" href="../../contributions/contributions.html">Contributions</a>
  910. </li>
  911. <li class="nav-item" data-depth="3">
  912. <a class="nav-link" href="../../sdk/neotexture.html">Neo Texture Editor for procedural textures</a>
  913. </li>
  914. <li class="nav-item" data-depth="3">
  915. <a class="nav-link" href="http://www.youtube.com/watch?v=yS9a9o4WzL8">Video: Mesh Tool &amp; Physics Editor</a>
  916. </li>
  917. </ul>
  918. </li>
  919. <li class="nav-item" data-depth="2">
  920. <button class="nav-item-toggle"></button>
  921. <a class="nav-link" href="../../sdk/development.html">Developing plugins for jMonkeyEngine SDK</a>
  922. <ul class="nav-list">
  923. <li class="nav-item" data-depth="3">
  924. <a class="nav-link" href="../../sdk/development/setup.html">Creating a plugin</a>
  925. </li>
  926. <li class="nav-item" data-depth="3">
  927. <a class="nav-link" href="../../sdk/development/general.html">Creating components</a>
  928. </li>
  929. <li class="nav-item" data-depth="3">
  930. <a class="nav-link" href="../../sdk/development/scene.html">The Main Scene</a>
  931. </li>
  932. <li class="nav-item" data-depth="3">
  933. <a class="nav-link" href="../../sdk/development/sceneexplorer.html">The Scene Explorer</a>
  934. </li>
  935. <li class="nav-item" data-depth="3">
  936. <a class="nav-link" href="../../sdk/development/projects_assets.html">Projects and Assets</a>
  937. </li>
  938. <li class="nav-item" data-depth="3">
  939. <a class="nav-link" href="../../sdk/development/extension_library.html">Create a library plugin from a jar file</a>
  940. </li>
  941. <li class="nav-item" data-depth="3">
  942. <a class="nav-link" href="../../sdk/development/model_loader.html">Create a new or custom model filetype and loader</a>
  943. </li>
  944. </ul>
  945. </li>
  946. </ul>
  947. </li>
  948. </ul>
  949. </li>
  950. </ul>
  951. </nav>
  952. </div>
  953. <div class="nav-panel-explore" data-panel="explore">
  954. <div class="context">
  955. <span class="title">JME</span>
  956. <span class="version">3.8</span>
  957. </div>
  958. <ul class="components">
  959. <li class="component is-current">
  960. <span class="title">JME</span>
  961. <ul class="versions">
  962. <li class="version is-current">
  963. <a href="../../documentation.html">3.8</a>
  964. </li>
  965. <li class="version">
  966. <a href="../../../3.4/documentation.html">3.4</a>
  967. </li>
  968. <li class="version">
  969. <a href="../../../3.3/documentation.html">3.3</a>
  970. </li>
  971. <li class="version">
  972. <a href="../../../3.2/documentation.html">3.2</a>
  973. </li>
  974. </ul>
  975. </li>
  976. <li class="component">
  977. <span class="title">Wiki Contribution</span>
  978. <ul class="versions">
  979. <li class="version">
  980. <a href="../../../../docs-wiki/3.8/wiki_contributor.html">3.8</a>
  981. </li>
  982. </ul>
  983. </li>
  984. <li class="component">
  985. <span class="title">Wiki UI</span>
  986. <ul class="versions">
  987. <li class="version">
  988. <a href="../../../../wiki-ui/index.html">master</a>
  989. </li>
  990. </ul>
  991. </li>
  992. </ul>
  993. </div>
  994. </div>
  995. </aside>
  996. </div>
  997. <main class="article">
  998. <div class="toolbar" role="navigation">
  999. <button class="nav-toggle"></button>
  1000. <nav class="breadcrumbs" aria-label="breadcrumbs">
  1001. <ul>
  1002. <li><a href="../../documentation.html">JME</a></li>
  1003. <li><a href="beginner.html">Beginner Tutorials</a></li>
  1004. <li><a href="hello_effects.html">Hello Effects</a></li>
  1005. </ul>
  1006. </nav>
  1007. <div class="page-versions">
  1008. <button class="version-menu-toggle" title="Show other versions of page">3.8</button>
  1009. <div class="version-menu">
  1010. <a class="version is-current" href="hello_effects.html">3.8</a>
  1011. <a class="version" href="../../../3.4/tutorials/beginner/hello_effects.html">3.4</a>
  1012. <a class="version" href="../../../3.3/tutorials/beginner/hello_effects.html">3.3</a>
  1013. <a class="version" href="../../../3.2/tutorials/beginner/hello_effects.html">3.2</a>
  1014. </div>
  1015. </div>
  1016. <div class="edit-this-page"><a href="https://github.com/jMonkeyEngine/wiki/edit/master/docs/modules/tutorials/pages/beginner/hello_effects.adoc">Edit this Page</a></div>
  1017. </div>
  1018. <div class="content">
  1019. <article class="doc">
  1020. <h1 class="page">jMonkeyEngine 3 Tutorial (12) - Hello Effects</h1>
  1021. <div id="preamble">
  1022. <div class="sectionbody">
  1023. <div class="imageblock right">
  1024. <div class="content">
  1025. <img src="../_images/beginner/beginner-effect-fire.png" alt="beginner-effect-fire.png" width="150" height="165">
  1026. </div>
  1027. </div>
  1028. <div class="paragraph">
  1029. <p>When you see one of the following in a game, then a particle system is likely behind it:</p>
  1030. </div>
  1031. <div class="ulist">
  1032. <ul>
  1033. <li>
  1034. <p>Fire, flames, sparks;</p>
  1035. </li>
  1036. <li>
  1037. <p>Rain, snow, waterfalls, leaves;</p>
  1038. </li>
  1039. <li>
  1040. <p>Explosions, debris, shockwaves;</p>
  1041. </li>
  1042. <li>
  1043. <p>Dust, fog, clouds, smoke;</p>
  1044. </li>
  1045. <li>
  1046. <p>Insects swarms, meteor showers;</p>
  1047. </li>
  1048. <li>
  1049. <p>Magic spells.</p>
  1050. </li>
  1051. </ul>
  1052. </div>
  1053. <div class="paragraph">
  1054. <p>These scene elements cannot be modeled by meshes. In very simple terms:</p>
  1055. </div>
  1056. <div class="ulist">
  1057. <ul>
  1058. <li>
  1059. <p>The difference between an explosion and a dust cloud is the speed of the particle effect.</p>
  1060. </li>
  1061. <li>
  1062. <p>The difference between flames and a waterfall is the direction and the color of the particle effect.</p>
  1063. </li>
  1064. </ul>
  1065. </div>
  1066. <div class="paragraph">
  1067. <p>Particle effects can be animated (e.g. sparks, drops) and static (strands of grass, hair). Non-particle effects include bloom/glow, and motion blur/afterimage. In this tutorial you learn how to make animated particles (com.jme3.effect).</p>
  1068. </div>
  1069. <div class="admonitionblock tip">
  1070. <table>
  1071. <tr>
  1072. <td class="icon">
  1073. <i class="fa icon-tip" title="Tip"></i>
  1074. </td>
  1075. <td class="content">
  1076. <div class="paragraph">
  1077. <p>To use the example assets in a new jMonkeyEngine SDK project, right-click your project, select <span class="menuseq"><b class="menu">Properties</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="submenu">Libraries</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Add Library</b></span>, and add the &#8220;jme3-test-data&#8221; library.</p>
  1078. </div>
  1079. </td>
  1080. </tr>
  1081. </table>
  1082. </div>
  1083. </div>
  1084. </div>
  1085. <div class="sect1">
  1086. <h2 id="sample-code"><a class="anchor" href="#sample-code"></a>Sample Code</h2>
  1087. <div class="sectionbody">
  1088. <div class="listingblock">
  1089. <div class="content">
  1090. <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">package jme3test.helloworld;
  1091. import com.jme3.app.SimpleApplication;
  1092. import com.jme3.effect.ParticleEmitter;
  1093. import com.jme3.effect.ParticleMesh;
  1094. import com.jme3.material.Material;
  1095. import com.jme3.math.ColorRGBA;
  1096. import com.jme3.math.Vector3f;
  1097. /** Sample 11 - how to create fire, water, and explosion effects. */
  1098. public class HelloEffects extends SimpleApplication {
  1099. public static void main(String[] args) {
  1100. HelloEffects app = new HelloEffects();
  1101. app.start();
  1102. }
  1103. @Override
  1104. public void simpleInitApp() {
  1105. ParticleEmitter fire =
  1106. new ParticleEmitter("Emitter", ParticleMesh.Type.Triangle, 30);
  1107. Material mat_red = new Material(assetManager,
  1108. "Common/MatDefs/Misc/Particle.j3md");
  1109. mat_red.setTexture("Texture", assetManager.loadTexture(
  1110. "Effects/Explosion/flame.png"));
  1111. fire.setMaterial(mat_red);
  1112. fire.setImagesX(2);
  1113. fire.setImagesY(2); // 2x2 texture animation
  1114. fire.setEndColor( new ColorRGBA(1f, 0f, 0f, 1f)); // red
  1115. fire.setStartColor(new ColorRGBA(1f, 1f, 0f, 0.5f)); // yellow
  1116. fire.getParticleInfluencer().setInitialVelocity(new Vector3f(0, 2, 0));
  1117. fire.setStartSize(1.5f);
  1118. fire.setEndSize(0.1f);
  1119. fire.setGravity(0, 0, 0);
  1120. fire.setLowLife(1f);
  1121. fire.setHighLife(3f);
  1122. fire.getParticleInfluencer().setVelocityVariation(0.3f);
  1123. rootNode.attachChild(fire);
  1124. ParticleEmitter debris =
  1125. new ParticleEmitter("Debris", ParticleMesh.Type.Triangle, 10);
  1126. Material debris_mat = new Material(assetManager,
  1127. "Common/MatDefs/Misc/Particle.j3md");
  1128. debris_mat.setTexture("Texture", assetManager.loadTexture(
  1129. "Effects/Explosion/Debris.png"));
  1130. debris.setMaterial(debris_mat);
  1131. debris.setImagesX(3);
  1132. debris.setImagesY(3); // 3x3 texture animation
  1133. debris.setRotateSpeed(4);
  1134. debris.setSelectRandomImage(true);
  1135. debris.getParticleInfluencer().setInitialVelocity(new Vector3f(0, 4, 0));
  1136. debris.setStartColor(ColorRGBA.White);
  1137. debris.setGravity(0, 6, 0);
  1138. debris.getParticleInfluencer().setVelocityVariation(.60f);
  1139. rootNode.attachChild(debris);
  1140. debris.emitAllParticles();
  1141. // ParticleEmitter water =
  1142. // new ParticleEmitter("Emitter", ParticleMesh.Type.Triangle, 20);
  1143. // Material mat_blue = new Material(assetManager,
  1144. // "Common/MatDefs/Misc/Particle.j3md");
  1145. // mat_blue.setTexture("Texture", assetManager.loadTexture(
  1146. // "Effects/Explosion/flame.png"));
  1147. // water.setMaterial(mat_blue);
  1148. // water.setImagesX(2);
  1149. // water.setImagesY(2); // 2x2 texture animation
  1150. // water.setStartColor( ColorRGBA.Blue);
  1151. // water.setEndColor( ColorRGBA.Cyan);
  1152. // water.getParticleInfluencer().setInitialVelocity(new Vector3f(0, -4, 0));
  1153. // water.setStartSize(1f);
  1154. // water.setEndSize(1.5f);
  1155. // water.setGravity(0,1,0);
  1156. // water.setLowLife(1f);
  1157. // water.setHighLife(1f);
  1158. // water.getParticleInfluencer().setVelocityVariation(0.1f);
  1159. // water.setLocalTranslation(0, 6, 0);
  1160. // rootNode.attachChild(water);
  1161. }
  1162. }</code></pre>
  1163. </div>
  1164. </div>
  1165. <div class="paragraph">
  1166. <p>You should see an explosion that sends debris flying, and a fire.
  1167. <a href="https://github.com/jMonkeyEngine/jmonkeyengine/tree/master/jme3-examples/src/main/java/jme3test/effect">More example code is here.</a></p>
  1168. </div>
  1169. <div class="sect2">
  1170. <h3 id="texture-animation-and-variation"><a class="anchor" href="#texture-animation-and-variation"></a>Texture Animation and Variation</h3>
  1171. <div class="imageblock right">
  1172. <div class="content">
  1173. <img src="../_images/beginner/Debris.png" alt="Debris.png" width="96" height="96">
  1174. </div>
  1175. </div>
  1176. <div class="paragraph">
  1177. <p>Start by choosing a material texture for your effect. If you provide the emitter with a set of textures (see image), it can use them either for variation (random order), or as animation steps (fixed order).</p>
  1178. </div>
  1179. <div class="paragraph">
  1180. <p>Setting emitter textures works just as you have already learned in previous chapters. This time you base the material on the <code>Particle.j3md</code> material definition. Let&#8217;s have a closer look at the material for the Debris effect.</p>
  1181. </div>
  1182. <div class="listingblock">
  1183. <div class="content">
  1184. <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java"> ParticleEmitter debris =
  1185. new ParticleEmitter("Debris", ParticleMesh.Type.Triangle, 10);
  1186. Material debris_mat = new Material(assetManager,
  1187. "Common/MatDefs/Misc/Particle.j3md");
  1188. debris_mat.setTexture("Texture", assetManager.loadTexture(
  1189. "Effects/Explosion/Debris.png"));
  1190. debris.setMaterial(debris_mat);
  1191. debris.setImagesX(3);
  1192. debris.setImagesY(3); // 3x3 texture animation
  1193. debris.setSelectRandomImage(true);
  1194. ...</code></pre>
  1195. </div>
  1196. </div>
  1197. <div class="olist arabic">
  1198. <ol class="arabic">
  1199. <li>
  1200. <p>Create a material and load the texture.</p>
  1201. </li>
  1202. <li>
  1203. <p>Tell the Emitter into how many animation steps (x*y) the texture is divided.<br>
  1204. The debris texture has 3x3 frames.</p>
  1205. </li>
  1206. <li>
  1207. <p>Optionally, tell the Emitter whether the animation steps are to be at random, or in order.<br>
  1208. For the debris, the frames play at random.</p>
  1209. </li>
  1210. </ol>
  1211. </div>
  1212. <div class="paragraph">
  1213. <p>As you see in the debris example, texture animations improve effects because each &#8220;flame&#8221; or &#8220;piece&#8221; of debris now looks different. Also think of electric or magic effects, where you can create very interesting animations by using an ordered morphing series of lightning bolts; or flying leaves or snow flakes, for instance.</p>
  1214. </div>
  1215. <div class="paragraph">
  1216. <p>The fire material is created the same way, just using &#8220;Effects/Explosion/flame.png&#8221; texture, which has with 2x2 ordered animation steps.</p>
  1217. </div>
  1218. </div>
  1219. <div class="sect2">
  1220. <h3 id="default-particle-textures"><a class="anchor" href="#default-particle-textures"></a>Default Particle Textures</h3>
  1221. <div class="paragraph">
  1222. <p>The following particle textures are included in <code>test-data.jar</code>. You can copy and use them in your own effects.</p>
  1223. </div>
  1224. <table class="tableblock frame-all grid-all stretch">
  1225. <colgroup>
  1226. <col style="width: 33.3333%;">
  1227. <col style="width: 33.3333%;">
  1228. <col style="width: 33.3334%;">
  1229. </colgroup>
  1230. <thead>
  1231. <tr>
  1232. <th class="tableblock halign-left valign-top">Texture Path</th>
  1233. <th class="tableblock halign-left valign-top">Dimension</th>
  1234. <th class="tableblock halign-left valign-top">Preview</th>
  1235. </tr>
  1236. </thead>
  1237. <tbody>
  1238. <tr>
  1239. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1240. <p>Effects/Explosion/Debris.png</p>
  1241. </div></div></td>
  1242. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1243. <p>3*3</p>
  1244. </div></div></td>
  1245. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1246. <p><span class="image"><img src="../_images/beginner/Debris.png" alt="Debris.png" width="32" height="32"></span></p>
  1247. </div></div></td>
  1248. </tr>
  1249. <tr>
  1250. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1251. <p>Effects/Explosion/flame.png</p>
  1252. </div></div></td>
  1253. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1254. <p>2*2</p>
  1255. </div></div></td>
  1256. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1257. <p><span class="image"><img src="../_images/beginner/flame.png" alt="flame.png" width="32" height="32"></span></p>
  1258. </div></div></td>
  1259. </tr>
  1260. <tr>
  1261. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1262. <p>Effects/Explosion/flash.png</p>
  1263. </div></div></td>
  1264. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1265. <p>2*2</p>
  1266. </div></div></td>
  1267. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1268. <p><span class="image"><img src="../_images/beginner/flash.png" alt="flash.png" width="32" height="32"></span></p>
  1269. </div></div></td>
  1270. </tr>
  1271. <tr>
  1272. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1273. <p>Effects/Explosion/roundspark.png</p>
  1274. </div></div></td>
  1275. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1276. <p>1*1</p>
  1277. </div></div></td>
  1278. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1279. <p><span class="image"><img src="../_images/beginner/roundspark.png" alt="roundspark.png" width="32" height="32"></span></p>
  1280. </div></div></td>
  1281. </tr>
  1282. <tr>
  1283. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1284. <p>Effects/Explosion/shockwave.png</p>
  1285. </div></div></td>
  1286. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1287. <p>1*1</p>
  1288. </div></div></td>
  1289. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1290. <p><span class="image"><img src="../_images/beginner/shockwave.png" alt="shockwave.png" width="32" height="32"></span></p>
  1291. </div></div></td>
  1292. </tr>
  1293. <tr>
  1294. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1295. <p>Effects/Explosion/smoketrail.png</p>
  1296. </div></div></td>
  1297. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1298. <p>1*3</p>
  1299. </div></div></td>
  1300. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1301. <p><span class="image"><img src="../_images/beginner/smoketrail.png" alt="smoketrail.png" width="32" height="32"></span></p>
  1302. </div></div></td>
  1303. </tr>
  1304. <tr>
  1305. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1306. <p>Effects/Explosion/spark.png</p>
  1307. </div></div></td>
  1308. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1309. <p>1*1</p>
  1310. </div></div></td>
  1311. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1312. <p><span class="image"><img src="../_images/beginner/spark.png" alt="spark.png" width="32" height="32"></span></p>
  1313. </div></div></td>
  1314. </tr>
  1315. <tr>
  1316. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1317. <p>Effects/Smoke/Smoke.png</p>
  1318. </div></div></td>
  1319. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1320. <p>1*15</p>
  1321. </div></div></td>
  1322. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1323. <p><span class="image"><img src="../_images/beginner/Smoke.png" alt="Smoke.png" width="96" height="32"></span></p>
  1324. </div></div></td>
  1325. </tr>
  1326. </tbody>
  1327. </table>
  1328. <div class="paragraph">
  1329. <p>Copy them into your <code>assets/Effects</code> directory to use them.</p>
  1330. </div>
  1331. </div>
  1332. </div>
  1333. </div>
  1334. <div class="sect1">
  1335. <h2 id="creating-custom-textures"><a class="anchor" href="#creating-custom-textures"></a>Creating Custom Textures</h2>
  1336. <div class="sectionbody">
  1337. <div class="paragraph">
  1338. <p>For your game, you will likely create custom particle textures. Look at the fire example again.</p>
  1339. </div>
  1340. <div class="listingblock">
  1341. <div class="content">
  1342. <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java"> ParticleEmitter fire =
  1343. new ParticleEmitter("Emitter", ParticleMesh.Type.Triangle, 30);
  1344. Material mat_red = new Material(assetManager,
  1345. "Common/MatDefs/Misc/Particle.j3md");
  1346. mat_red.setTexture("Texture", assetManager.loadTexture(
  1347. "Effects/Explosion/flame.png"));
  1348. fire.setMaterial(mat_red);
  1349. fire.setImagesX(2);
  1350. fire.setImagesY(2); // 2x2 texture animation
  1351. fire.setEndColor( new ColorRGBA(1f, 0f, 0f, 1f)); // red
  1352. fire.setStartColor(new ColorRGBA(1f, 1f, 0f, 0.5f)); // yellow</code></pre>
  1353. </div>
  1354. </div>
  1355. <div class="imageblock right">
  1356. <div class="content">
  1357. <img src="../_images/beginner/flame.png" alt="flame.png" width="96" height="96">
  1358. </div>
  1359. </div>
  1360. <div class="paragraph">
  1361. <p>Compare the texture with the resulting effect.</p>
  1362. </div>
  1363. <div class="ulist">
  1364. <ul>
  1365. <li>
  1366. <p>Black parts of the image become fully transparent.</p>
  1367. </li>
  1368. <li>
  1369. <p>White/gray parts of the image are translucent and get colorized.</p>
  1370. </li>
  1371. <li>
  1372. <p>You set the color using <code>setStartColor()</code> and <code>setEndColor()</code>.<br>
  1373. For fire, it&#8217;s a gradient from yellow to red.</p>
  1374. </li>
  1375. <li>
  1376. <p>By default, the animation is played in order and loops.</p>
  1377. </li>
  1378. </ul>
  1379. </div>
  1380. <div class="paragraph">
  1381. <p>Create a grayscale texture in a graphic editor, and save it to your <code>assets/Effects</code> directory. If you split up one image file into x*y animation steps, make sure each square is of equal size–just as you see in the examples here.</p>
  1382. </div>
  1383. <div class="sect2">
  1384. <h3 id="emitter-parameters"><a class="anchor" href="#emitter-parameters"></a>Emitter Parameters</h3>
  1385. <div class="paragraph">
  1386. <p>A particle system is always centered around an emitter.</p>
  1387. </div>
  1388. <div class="paragraph">
  1389. <p>Use the <code>setShape()</code> method to change the EmitterShape:</p>
  1390. </div>
  1391. <div class="ulist">
  1392. <ul>
  1393. <li>
  1394. <p>EmitterPointShape(Vector3f.ZERO) – particles emit from a point (default)</p>
  1395. </li>
  1396. <li>
  1397. <p>EmitterSphereShape(Vector3f.ZERO,2f) – particles emit from a sphere-sized area</p>
  1398. </li>
  1399. <li>
  1400. <p>EmitterBoxShape(new Vector3f(-1f,-1f,-1f),new Vector3f(1f,1f,1f)) – particles emit from a box-sized area</p>
  1401. </li>
  1402. </ul>
  1403. </div>
  1404. <div class="paragraph">
  1405. <p>Example:</p>
  1406. </div>
  1407. <div class="listingblock">
  1408. <div class="content">
  1409. <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">emitter.setShape(new EmitterPointShape(Vector3f.ZERO));</code></pre>
  1410. </div>
  1411. </div>
  1412. <div class="paragraph">
  1413. <p>You create different effects by changing the emitter parameters:</p>
  1414. </div>
  1415. <table class="tableblock frame-all grid-all stretch">
  1416. <colgroup>
  1417. <col style="width: 10%;">
  1418. <col style="width: 50%;">
  1419. <col style="width: 15%;">
  1420. <col style="width: 25%;">
  1421. </colgroup>
  1422. <thead>
  1423. <tr>
  1424. <th class="tableblock halign-left valign-top">Parameter</th>
  1425. <th class="tableblock halign-left valign-top">Method</th>
  1426. <th class="tableblock halign-left valign-top">Default</th>
  1427. <th class="tableblock halign-left valign-top">Description</th>
  1428. </tr>
  1429. </thead>
  1430. <tbody>
  1431. <tr>
  1432. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1433. <p>number</p>
  1434. </div></div></td>
  1435. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1436. <p><code>setNumParticles()</code></p>
  1437. </div></div></td>
  1438. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1439. <p>N/A</p>
  1440. </div></div></td>
  1441. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1442. <p>The maximum number of particles visible at the same time. Value is specified by user in constructor. This influences the density and length of the &#8220;trail&#8221;.</p>
  1443. </div></div></td>
  1444. </tr>
  1445. <tr>
  1446. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1447. <p>velocity</p>
  1448. </div></div></td>
  1449. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1450. <p><code>getParticleInfluencer().setInitialVelocity()</code></p>
  1451. </div></div></td>
  1452. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1453. <p>Vector3f.ZERO</p>
  1454. </div></div></td>
  1455. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1456. <p>Specify a vector how fast particles move and in which start direction.</p>
  1457. </div></div></td>
  1458. </tr>
  1459. <tr>
  1460. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1461. <p>direction</p>
  1462. </div></div></td>
  1463. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1464. <p><code>getParticleInfluencer().setVelocityVariation()</code><br>
  1465. <code>setFacingVelocity()</code><br>
  1466. <code>setRandomAngle()</code><br>
  1467. <code>setFaceNormal()</code><br>
  1468. <code>setRotateSpeed()</code></p>
  1469. </div></div></td>
  1470. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1471. <p>0.2f<br>
  1472. false<br>
  1473. false<br>
  1474. Vector3f.NAN<br>
  1475. 0.0f</p>
  1476. </div></div></td>
  1477. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1478. <p>Optional accessors that control in which direction particles face while flying.</p>
  1479. </div></div></td>
  1480. </tr>
  1481. <tr>
  1482. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1483. <p>lifetime</p>
  1484. </div></div></td>
  1485. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1486. <p><code>setLowLife()</code><br>
  1487. <code>setHighLife()</code></p>
  1488. </div></div></td>
  1489. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1490. <p>3f<br>
  1491. 7f</p>
  1492. </div></div></td>
  1493. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1494. <p>Minimum and maximum time period before particles fade.</p>
  1495. </div></div></td>
  1496. </tr>
  1497. <tr>
  1498. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1499. <p>emission rate</p>
  1500. </div></div></td>
  1501. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1502. <p><code>setParticlesPerSec()</code></p>
  1503. </div></div></td>
  1504. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1505. <p>20</p>
  1506. </div></div></td>
  1507. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1508. <p>How many new particles are emitted per second.</p>
  1509. </div></div></td>
  1510. </tr>
  1511. <tr>
  1512. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1513. <p>color</p>
  1514. </div></div></td>
  1515. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1516. <p><code>setStartColor()</code><br>
  1517. <code>setEndColor()</code></p>
  1518. </div></div></td>
  1519. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1520. <p>gray</p>
  1521. </div></div></td>
  1522. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1523. <p>Set to the same colors, or to two different colors for a gradient effect.</p>
  1524. </div></div></td>
  1525. </tr>
  1526. <tr>
  1527. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1528. <p>size</p>
  1529. </div></div></td>
  1530. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1531. <p><code>setStartSize()</code><br>
  1532. <code>setEndSize()</code></p>
  1533. </div></div></td>
  1534. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1535. <p>0.2f<br>
  1536. 2f</p>
  1537. </div></div></td>
  1538. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1539. <p>Set to two different values for shrink/grow effect, or to same size for constant effect.</p>
  1540. </div></div></td>
  1541. </tr>
  1542. <tr>
  1543. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1544. <p>gravity</p>
  1545. </div></div></td>
  1546. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1547. <p><code>setGravity()</code></p>
  1548. </div></div></td>
  1549. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1550. <p>0,1,0</p>
  1551. </div></div></td>
  1552. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1553. <p>Whether particles fall down (positive) or fly up (negative). Set to 0f for a zero-g effect where particles keep flying.</p>
  1554. </div></div></td>
  1555. </tr>
  1556. </tbody>
  1557. </table>
  1558. <div class="paragraph">
  1559. <p>You can find details about <a href="../../core/effect/particle_emitters.html#configure_parameters" class="xref page">effect parameters</a> here.
  1560. Add and modify one parameter at a time, and try different values until you get the effect you want.</p>
  1561. </div>
  1562. <div class="admonitionblock tip">
  1563. <table>
  1564. <tr>
  1565. <td class="icon">
  1566. <i class="fa icon-tip" title="Tip"></i>
  1567. </td>
  1568. <td class="content">
  1569. <div class="paragraph">
  1570. <p>Use the SceneComposer in the jMonkeyEngine SDK to create effects more easily. Create an empty scene and add an emitter object to it. Change the emitter properties and watch the outcome live. You can save created effects as .j3o file and load them like scenes or models.</p>
  1571. </div>
  1572. </td>
  1573. </tr>
  1574. </table>
  1575. </div>
  1576. </div>
  1577. </div>
  1578. </div>
  1579. <div class="sect1">
  1580. <h2 id="exercise"><a class="anchor" href="#exercise"></a>Exercise</h2>
  1581. <div class="sectionbody">
  1582. <div class="paragraph">
  1583. <p>Can you &#8220;invert&#8221; the fire effect into a small waterfall? Here some tips:</p>
  1584. </div>
  1585. <div class="ulist">
  1586. <ul>
  1587. <li>
  1588. <p>Change the Red and Yellow color to Cyan and Blue</p>
  1589. </li>
  1590. <li>
  1591. <p>Invert the velocity vector (direction) by using a negative number</p>
  1592. </li>
  1593. <li>
  1594. <p>Swap start and end size</p>
  1595. </li>
  1596. <li>
  1597. <p>Activate gravity by setting it to 0,1,0</p>
  1598. </li>
  1599. </ul>
  1600. </div>
  1601. </div>
  1602. </div>
  1603. <div class="sect1">
  1604. <h2 id="conclusion"><a class="anchor" href="#conclusion"></a>Conclusion</h2>
  1605. <div class="sectionbody">
  1606. <div class="paragraph">
  1607. <p>You have learned that many different effects can be created by changing the parameters and textures of one general emitter object.</p>
  1608. </div>
  1609. </div>
  1610. </div>
  1611. <nav class="pagination">
  1612. <span class="prev"><a href="hello_audio.html">Hello Audio</a></span>
  1613. <span class="next"><a href="hello_physics.html">Hello Physics</a></span>
  1614. </nav>
  1615. </article>
  1616. <aside class="toc sidebar" data-title="Contents" data-levels="2">
  1617. <div class="toc-menu"></div>
  1618. </aside>
  1619. </div>
  1620. </main>
  1621. </div>
  1622. <footer class="footer">
  1623. <p>Copyright 2020 jMonkeyEngine Wiki Contributors. Licensed BSD-3.</p>
  1624. </footer>
  1625. <script src="../../../../_/js/vendor/docsearch.min.js"></script>
  1626. <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js -->
  1627. <script>
  1628. var search = docsearch({
  1629. apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
  1630. indexName: 'jmonkeyengine',
  1631. inputSelector: '#search-input',
  1632. autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
  1633. algoliaOptions: { hitsPerPage: 10 }
  1634. }).autocomplete
  1635. search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
  1636. function focusSearchInput () { document.querySelector('#search-input').focus() }
  1637. if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput)
  1638. </script>
  1639. <script src="../../../../_/js/site.js"></script>
  1640. <script async src="../../../../_/js/vendor/highlight.js"></script>
  1641. </body>
  1642. </html>