shaderblow.html 90 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422
  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>ShaderBlow :: jMonkeyEngine Docs</title>
  7. <link rel="canonical" href="https://wiki.jmonkeyengine.org/docs/3.8/sdk/plugin/shaderblow.html">
  8. <meta name="generator" content="Antora 3.0.1">
  9. <link rel="stylesheet" href="../../../../_/css/site.css">
  10. <meta property="og:image" content="https://wiki.jmonkeyengine.org/_/img/iconx128.png">
  11. <meta property="og:description" content="ShaderBlow">
  12. <meta property="og:title" content="jMonkeyEngine Docs">
  13. <link rel="stylesheet" href="../../../../_/css/site-extra.css">
  14. <link rel="stylesheet" href="../../../../_/css/vendor/docsearch.min.css">
  15. <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css -->
  16. <link rel="icon" href="../../../../_/img/favicon.ico" type="image/x-icon">
  17. </head>
  18. <body class="article">
  19. <header class="header">
  20. <nav class="navbar">
  21. <div class="navbar-brand">
  22. <a class="navbar-item" href="https://wiki.jmonkeyengine.org">
  23. <img alt="" src="../../../../_/img/jme-logo.png" height="32" type="image/x-icon">
  24. </a>
  25. <div class="navbar-item hide-for-print">
  26. <input id="search-input" type="text" placeholder="Search docs">
  27. </div>
  28. <button class="navbar-burger" data-target="topbar-nav">
  29. <span></span>
  30. <span></span>
  31. <span></span>
  32. </button>
  33. </div>
  34. <div id="topbar-nav" class="navbar-menu">
  35. <div class="navbar-end">
  36. <div class="navbar-item theme-switch-wrapper">
  37. <label class="theme-switch" for="checkbox">
  38. <input type="checkbox" id="checkbox" />
  39. <div class="slider round"></div>
  40. </label>
  41. </div>
  42. <a class="navbar-item" href="https://github.com/jmonkeyengine/wiki">Github</a>
  43. </div>
  44. </div>
  45. </nav>
  46. </header>
  47. <div class="body">
  48. <div class="nav-container" data-component="docs" data-version="3.8">
  49. <aside class="nav">
  50. <div class="panels">
  51. <div class="nav-panel-menu is-active" data-panel="menu">
  52. <nav class="nav-menu">
  53. <h3 class="title"><a href="../../documentation.html">JME</a></h3>
  54. <ul class="nav-list">
  55. <li class="nav-item" data-depth="0">
  56. <ul class="nav-list">
  57. <li class="nav-item" data-depth="1">
  58. <a class="nav-link" href="../../documentation.html">Getting Started</a>
  59. </li>
  60. <li class="nav-item" data-depth="1">
  61. <a class="nav-link" href="https://javadoc.jmonkeyengine.org/v3.4.1-stable">JavaDoc</a>
  62. </li>
  63. <li class="nav-item" data-depth="1">
  64. <a class="nav-link" href="../../release.html">Release Guide</a>
  65. </li>
  66. </ul>
  67. </li>
  68. <li class="nav-item" data-depth="0">
  69. <ul class="nav-list">
  70. <li class="nav-item" data-depth="1">
  71. <button class="nav-item-toggle"></button>
  72. <a class="nav-link" href="../../tutorials/beginner/beginner.html">Beginner Tutorials</a>
  73. <ul class="nav-list">
  74. <li class="nav-item" data-depth="2">
  75. <a class="nav-link" href="../../tutorials/beginner/hello_simpleapplication.html">Hello SimpleApplication</a>
  76. </li>
  77. <li class="nav-item" data-depth="2">
  78. <a class="nav-link" href="../../tutorials/beginner/hello_node.html">Hello Node</a>
  79. </li>
  80. <li class="nav-item" data-depth="2">
  81. <a class="nav-link" href="../../tutorials/beginner/hello_asset.html">Hello Asset</a>
  82. </li>
  83. <li class="nav-item" data-depth="2">
  84. <a class="nav-link" href="../../tutorials/beginner/hello_main_event_loop.html">Hello Update Loop</a>
  85. </li>
  86. <li class="nav-item" data-depth="2">
  87. <a class="nav-link" href="../../tutorials/beginner/hello_input_system.html">Hello Input System</a>
  88. </li>
  89. <li class="nav-item" data-depth="2">
  90. <a class="nav-link" href="../../tutorials/beginner/hello_material.html">Hello Material</a>
  91. </li>
  92. <li class="nav-item" data-depth="2">
  93. <a class="nav-link" href="../../tutorials/beginner/hello_animation.html">Hello Animation</a>
  94. </li>
  95. <li class="nav-item" data-depth="2">
  96. <a class="nav-link" href="../../tutorials/beginner/hello_picking.html">Hello Picking</a>
  97. </li>
  98. <li class="nav-item" data-depth="2">
  99. <a class="nav-link" href="../../tutorials/beginner/hello_collision.html">Hello Collision</a>
  100. </li>
  101. <li class="nav-item" data-depth="2">
  102. <a class="nav-link" href="../../tutorials/beginner/hello_terrain.html">Hello Terrain</a>
  103. </li>
  104. <li class="nav-item" data-depth="2">
  105. <a class="nav-link" href="../../tutorials/beginner/hello_audio.html">Hello Audio</a>
  106. </li>
  107. <li class="nav-item" data-depth="2">
  108. <a class="nav-link" href="../../tutorials/beginner/hello_effects.html">Hello Effects</a>
  109. </li>
  110. <li class="nav-item" data-depth="2">
  111. <a class="nav-link" href="../../tutorials/beginner/hello_physics.html">Hello Physics</a>
  112. </li>
  113. </ul>
  114. </li>
  115. <li class="nav-item" data-depth="1">
  116. <button class="nav-item-toggle"></button>
  117. <span class="nav-text">Key Concepts</span>
  118. <ul class="nav-list">
  119. <li class="nav-item" data-depth="2">
  120. <a class="nav-link" href="../../tutorials/concepts/best_practices.html">Best Practices</a>
  121. </li>
  122. <li class="nav-item" data-depth="2">
  123. <a class="nav-link" href="../../tutorials/concepts/optimization.html">Optimization</a>
  124. </li>
  125. <li class="nav-item" data-depth="2">
  126. <a class="nav-link" href="../../tutorials/concepts/faq.html">Frequently Asked Questions</a>
  127. </li>
  128. <li class="nav-item" data-depth="2">
  129. <a class="nav-link" href="../../tutorials/concepts/math_for_dummies.html">Math for Dummies</a>
  130. </li>
  131. <li class="nav-item" data-depth="2">
  132. <a class="nav-link" href="../../tutorials/concepts/math.html">Math overview</a>
  133. </li>
  134. <li class="nav-item" data-depth="2">
  135. <a class="nav-link" href="../../tutorials/concepts/math_cheet_sheet.html">3D math "cheat sheet"</a>
  136. </li>
  137. <li class="nav-item" data-depth="2">
  138. <a class="nav-link" href="../../tutorials/concepts/rotate.html">3-D Rotation</a>
  139. </li>
  140. <li class="nav-item" data-depth="2">
  141. <a class="nav-link" href="../../tutorials/concepts/math_video_tutorials.html">Math video tutorial series</a>
  142. </li>
  143. <li class="nav-item" data-depth="2">
  144. <a class="nav-link" href="../../tutorials/concepts/multi-media_asset_pipeline.html">Multi-Media Asset Pipeline</a>
  145. </li>
  146. <li class="nav-item" data-depth="2">
  147. <a class="nav-link" href="../../tutorials/concepts/the_scene_graph.html">The Scene Graph</a>
  148. </li>
  149. <li class="nav-item" data-depth="2">
  150. <a class="nav-link" href="../../tutorials/concepts/scenegraph_for_dummies.html">Scene Graph for Dummies</a>
  151. </li>
  152. <li class="nav-item" data-depth="2">
  153. <a class="nav-link" href="../../tutorials/concepts/terminology.html">3D Graphics Terminology</a>
  154. </li>
  155. <li class="nav-item" data-depth="2">
  156. <a class="nav-link" href="../../tutorials/concepts/transparency_sorting.html">Transparency Sorting</a>
  157. </li>
  158. </ul>
  159. </li>
  160. <li class="nav-item" data-depth="1">
  161. <button class="nav-item-toggle"></button>
  162. <span class="nav-text">Articles and How-to&#8217;s</span>
  163. <ul class="nav-list">
  164. <li class="nav-item" data-depth="2">
  165. <button class="nav-item-toggle"></button>
  166. <span class="nav-text">How to Model</span>
  167. <ul class="nav-list">
  168. <li class="nav-item" data-depth="3">
  169. <a class="nav-link" href="../../tutorials/how-to/modeling/3dsmax/3dsmax.html">3dsmax</a>
  170. </li>
  171. <li class="nav-item" data-depth="3">
  172. <button class="nav-item-toggle"></button>
  173. <a class="nav-link" href="../../tutorials/how-to/modeling/blender/blender.html">Blender</a>
  174. <ul class="nav-list">
  175. <li class="nav-item" data-depth="4">
  176. <a class="nav-link" href="../../tutorials/how-to/modeling/blender/blender_buffer_clearing.html">Buffer Clearing</a>
  177. </li>
  178. <li class="nav-item" data-depth="4">
  179. <a class="nav-link" href="../../tutorials/how-to/modeling/blender/blender_gltf.html">Export as GlTF</a>
  180. </li>
  181. <li class="nav-item" data-depth="4">
  182. <a class="nav-link" href="../../tutorials/how-to/modeling/blender/blender_ogre_export.html">Export as Ogre XML</a>
  183. </li>
  184. <li class="nav-item" data-depth="4">
  185. <a class="nav-link" href="../../tutorials/how-to/modeling/blender/blender_ogre_compatibility.html">Ogre Compatibility</a>
  186. </li>
  187. <li class="nav-item" data-depth="4">
  188. <a class="nav-link" href="../../tutorials/how-to/modeling/blender/makehuman.html">MakeHuman</a>
  189. </li>
  190. <li class="nav-item" data-depth="4">
  191. <a class="nav-link" href="../../tutorials/how-to/modeling/blender/makehuman_blender_ogrexml_toolchain.html">MakeHuman toolchain</a>
  192. </li>
  193. </ul>
  194. </li>
  195. </ul>
  196. </li>
  197. <li class="nav-item" data-depth="2">
  198. <button class="nav-item-toggle"></button>
  199. <span class="nav-text">How to Animate</span>
  200. <ul class="nav-list">
  201. <li class="nav-item" data-depth="3">
  202. <button class="nav-item-toggle"></button>
  203. <span class="nav-text">Mixamo</span>
  204. <ul class="nav-list">
  205. <li class="nav-item" data-depth="4">
  206. <a class="nav-link" href="../../tutorials/how-to/modeling/blender/mixamo.html">Blender Models</a>
  207. </li>
  208. </ul>
  209. </li>
  210. </ul>
  211. </li>
  212. <li class="nav-item" data-depth="2">
  213. <a class="nav-link" href="../../tutorials/how-to/debugging.html">Debugging with Wireframes</a>
  214. </li>
  215. <li class="nav-item" data-depth="2">
  216. <a class="nav-link" href="../../tutorials/how-to/util/free_skymaps.html">How to create free skymaps</a>
  217. </li>
  218. <li class="nav-item" data-depth="2">
  219. <button class="nav-item-toggle"></button>
  220. <span class="nav-text">Java Tips</span>
  221. <ul class="nav-list">
  222. <li class="nav-item" data-depth="3">
  223. <a class="nav-link" href="../../tutorials/how-to/java/localization.html">Localization</a>
  224. </li>
  225. <li class="nav-item" data-depth="3">
  226. <a class="nav-link" href="../../tutorials/how-to/java/swing_canvas.html">Swing Canvas</a>
  227. </li>
  228. <li class="nav-item" data-depth="3">
  229. <a class="nav-link" href="../../tutorials/how-to/java/logging.html">Logging</a>
  230. </li>
  231. <li class="nav-item" data-depth="3">
  232. <a class="nav-link" href="../../tutorials/how-to/java/read_graphic_card_capabilites.html">Read Graphics Capabilities</a>
  233. </li>
  234. </ul>
  235. </li>
  236. <li class="nav-item" data-depth="2">
  237. <button class="nav-item-toggle"></button>
  238. <span class="nav-text">Articles</span>
  239. <ul class="nav-list">
  240. <li class="nav-item" data-depth="3">
  241. <button class="nav-item-toggle"></button>
  242. <span class="nav-text">Physically Based Rendering</span>
  243. <ul class="nav-list">
  244. <li class="nav-item" data-depth="4">
  245. <a class="nav-link" href="../../tutorials/how-to/articles/pbr/pbr_part1.html">PBR – Part one</a>
  246. </li>
  247. <li class="nav-item" data-depth="4">
  248. <a class="nav-link" href="../../tutorials/how-to/articles/pbr/pbr_part2.html">PBR – Part two</a>
  249. </li>
  250. <li class="nav-item" data-depth="4">
  251. <a class="nav-link" href="../../tutorials/how-to/articles/pbr/pbr_part3.html">PBR – Part three</a>
  252. </li>
  253. </ul>
  254. </li>
  255. </ul>
  256. </li>
  257. </ul>
  258. </li>
  259. </ul>
  260. </li>
  261. <li class="nav-item" data-depth="0">
  262. <ul class="nav-list">
  263. <li class="nav-item" data-depth="1">
  264. <button class="nav-item-toggle"></button>
  265. <span class="nav-text">Core Engine</span>
  266. <ul class="nav-list">
  267. <li class="nav-item" data-depth="2">
  268. <a class="nav-link" href="../../core/app/simpleapplication.html">SimpleApplication</a>
  269. </li>
  270. <li class="nav-item" data-depth="2">
  271. <a class="nav-link" href="../../core/system/appsettings.html">AppSettings</a>
  272. </li>
  273. </ul>
  274. </li>
  275. <li class="nav-item" data-depth="1">
  276. <button class="nav-item-toggle"></button>
  277. <span class="nav-text">Controlling Game Logic</span>
  278. <ul class="nav-list">
  279. <li class="nav-item" data-depth="2">
  280. <a class="nav-link" href="../../core/app/update_loop.html">Update Loop</a>
  281. </li>
  282. <li class="nav-item" data-depth="2">
  283. <a class="nav-link" href="../../core/app/state/application_states.html">Application States</a>
  284. </li>
  285. <li class="nav-item" data-depth="2">
  286. <button class="nav-item-toggle"></button>
  287. <a class="nav-link" href="../../core/scene/control/custom_controls.html">Custom Controls</a>
  288. <ul class="nav-list">
  289. <li class="nav-item" data-depth="3">
  290. <button class="nav-item-toggle"></button>
  291. <span class="nav-text">Video</span>
  292. <ul class="nav-list">
  293. <li class="nav-item" data-depth="4">
  294. <a class="nav-link" href="https://www.youtube.com/watch?v=MNDiZ9YHIpM">Control any scene node</a>
  295. </li>
  296. <li class="nav-item" data-depth="4">
  297. <a class="nav-link" href="https://www.youtube.com/watch?v=-OzRZscLlHY">Control a character</a>
  298. </li>
  299. <li class="nav-item" data-depth="4">
  300. <a class="nav-link" href="https://wiki.jmonkeyengine.org/Scenes/SDK-UsecaseDemo_1.zip">Video Source Code</a>
  301. </li>
  302. </ul>
  303. </li>
  304. </ul>
  305. </li>
  306. <li class="nav-item" data-depth="2">
  307. <a class="nav-link" href="../../core/app/multithreading.html">Multithreading</a>
  308. </li>
  309. </ul>
  310. </li>
  311. <li class="nav-item" data-depth="1">
  312. <button class="nav-item-toggle"></button>
  313. <span class="nav-text">Scene Graph</span>
  314. <ul class="nav-list">
  315. <li class="nav-item" data-depth="2">
  316. <a class="nav-link" href="../../core/scene/traverse_scenegraph.html">Traverse SceneGraph</a>
  317. </li>
  318. <li class="nav-item" data-depth="2">
  319. <a class="nav-link" href="../../core/scene/spatial.html">Spatial: Node vs Geometry</a>
  320. </li>
  321. <li class="nav-item" data-depth="2">
  322. <button class="nav-item-toggle"></button>
  323. <a class="nav-link" href="../../core/scene/mesh.html">Mesh</a>
  324. <ul class="nav-list">
  325. <li class="nav-item" data-depth="3">
  326. <a class="nav-link" href="../../core/scene/custom_meshes.html">Custom Meshes</a>
  327. </li>
  328. <li class="nav-item" data-depth="3">
  329. <a class="nav-link" href="../../core/scene/shape/shape.html">Shape</a>
  330. </li>
  331. <li class="nav-item" data-depth="3">
  332. <a class="nav-link" href="../../core/scene/3d_models.html">3D Models</a>
  333. </li>
  334. </ul>
  335. </li>
  336. <li class="nav-item" data-depth="2">
  337. <a class="nav-link" href="../../core/asset/asset_manager.html">Asset Manager</a>
  338. </li>
  339. <li class="nav-item" data-depth="2">
  340. <a class="nav-link" href="../../core/export/save_and_load.html">Saving and Loading Nodes</a>
  341. </li>
  342. <li class="nav-item" data-depth="2">
  343. <a class="nav-link" href="../../core/collision/collision_and_intersection.html">Collision and Intersection</a>
  344. </li>
  345. <li class="nav-item" data-depth="2">
  346. <a class="nav-link" href="../../core/scene/control/level_of_detail.html">Level of Detail</a>
  347. </li>
  348. </ul>
  349. </li>
  350. <li class="nav-item" data-depth="1">
  351. <button class="nav-item-toggle"></button>
  352. <span class="nav-text">Animation, Scene</span>
  353. <ul class="nav-list">
  354. <li class="nav-item" data-depth="2">
  355. <a class="nav-link" href="../../core/animation/animation_new.html">Animation with AnimComposer</a>
  356. </li>
  357. <li class="nav-item" data-depth="2">
  358. <a class="nav-link" href="../../core/animation/animation.html">Animation-Old (AnimControl)</a>
  359. </li>
  360. <li class="nav-item" data-depth="2">
  361. <a class="nav-link" href="../../core/cinematic/cinematics.html">Cinematics (cutscenes, fake destruction physics)</a>
  362. </li>
  363. <li class="nav-item" data-depth="2">
  364. <a class="nav-link" href="../../core/cinematic/motionpath.html">MotionPaths and Waypoints</a>
  365. </li>
  366. </ul>
  367. </li>
  368. <li class="nav-item" data-depth="1">
  369. <button class="nav-item-toggle"></button>
  370. <span class="nav-text">Material, Light, Shadow</span>
  371. <ul class="nav-list">
  372. <li class="nav-item" data-depth="2">
  373. <a class="nav-link" href="../../core/material/how_to_use_materials.html">How to use Materials</a>
  374. </li>
  375. <li class="nav-item" data-depth="2">
  376. <a class="nav-link" href="../../core/material/j3m_material_files.html">.j3m Material Files</a>
  377. </li>
  378. <li class="nav-item" data-depth="2">
  379. <a class="nav-link" href="../../core/material/material_definitions.html">.j3md Material Definitions</a>
  380. </li>
  381. <li class="nav-item" data-depth="2">
  382. <a class="nav-link" href="../../core/material/materials_overview.html">.j3md Properties</a>
  383. </li>
  384. <li class="nav-item" data-depth="2">
  385. <a class="nav-link" href="../../core/shader/jme3_shaders.html">Shaders and JME3</a>
  386. </li>
  387. <li class="nav-item" data-depth="2">
  388. <a class="nav-link" href="../../core/shader/jme3_shadernodes.html">Shader Node System</a>
  389. </li>
  390. <li class="nav-item" data-depth="2">
  391. <a class="nav-link" href="../../core/shader/shader_video_tutorials.html">Shader Video Tutorials</a>
  392. </li>
  393. <li class="nav-item" data-depth="2">
  394. <a class="nav-link" href="../../core/light/light_and_shadow.html">Light and Shadow</a>
  395. </li>
  396. <li class="nav-item" data-depth="2">
  397. <a class="nav-link" href="../../core/texture/anisotropic_filtering.html">Anisotropic Filtering</a>
  398. </li>
  399. <li class="nav-item" data-depth="2">
  400. <a class="nav-link" href="../../core/system/jme3_srgbpipeline.html">Gamma Correction</a>
  401. </li>
  402. <li class="nav-item" data-depth="2">
  403. <a class="nav-link" href="../../core/material/normal_types.html">Normal Map Conventions</a>
  404. </li>
  405. </ul>
  406. </li>
  407. <li class="nav-item" data-depth="1">
  408. <button class="nav-item-toggle"></button>
  409. <span class="nav-text">Audio, Video</span>
  410. <ul class="nav-list">
  411. <li class="nav-item" data-depth="2">
  412. <a class="nav-link" href="../../core/audio/audio.html">Playing Sounds</a>
  413. </li>
  414. <li class="nav-item" data-depth="2">
  415. <a class="nav-link" href="../../core/audio/audio_environment_presets.html">Audio Environment Presets</a>
  416. </li>
  417. <li class="nav-item" data-depth="2">
  418. <a class="nav-link" href="../../core/app/state/screenshots.html">Capture Screenshots</a>
  419. </li>
  420. <li class="nav-item" data-depth="2">
  421. <a class="nav-link" href="../../core/app/state/capture_audio_video_to_a_file.html">Capture Audio/Video</a>
  422. </li>
  423. </ul>
  424. </li>
  425. <li class="nav-item" data-depth="1">
  426. <button class="nav-item-toggle"></button>
  427. <span class="nav-text">Filter, Effect</span>
  428. <ul class="nav-list">
  429. <li class="nav-item" data-depth="2">
  430. <a class="nav-link" href="../../core/effect/effects_overview.html">Overview</a>
  431. </li>
  432. <li class="nav-item" data-depth="2">
  433. <a class="nav-link" href="../../core/effect/bloom_and_glow.html">Bloom and Glow</a>
  434. </li>
  435. <li class="nav-item" data-depth="2">
  436. <a class="nav-link" href="../../core/effect/particle_emitters.html">Particle Emitters</a>
  437. </li>
  438. </ul>
  439. </li>
  440. <li class="nav-item" data-depth="1">
  441. <button class="nav-item-toggle"></button>
  442. <span class="nav-text">Landscapes</span>
  443. <ul class="nav-list">
  444. <li class="nav-item" data-depth="2">
  445. <a class="nav-link" href="../../core/util/sky.html">Sky</a>
  446. </li>
  447. <li class="nav-item" data-depth="2">
  448. <a class="nav-link" href="../../core/terrain/terrain.html">Terrain (TerraMonkey)</a>
  449. </li>
  450. <li class="nav-item" data-depth="2">
  451. <a class="nav-link" href="../../core/collision/terrain_collision.html">Terrain Collision</a>
  452. </li>
  453. <li class="nav-item" data-depth="2">
  454. <a class="nav-link" href="../../core/effect/water.html">Simple Water</a>
  455. </li>
  456. <li class="nav-item" data-depth="2">
  457. <a class="nav-link" href="../../core/effect/post-processor_water.html">Post-Processor Water</a>
  458. </li>
  459. </ul>
  460. </li>
  461. <li class="nav-item" data-depth="1">
  462. <button class="nav-item-toggle"></button>
  463. <span class="nav-text">Camera</span>
  464. <ul class="nav-list">
  465. <li class="nav-item" data-depth="2">
  466. <a class="nav-link" href="../../core/renderer/camera.html">Camera</a>
  467. </li>
  468. <li class="nav-item" data-depth="2">
  469. <a class="nav-link" href="../../core/renderer/making_the_camera_follow_a_character.html">Follow a Character</a>
  470. </li>
  471. <li class="nav-item" data-depth="2">
  472. <a class="nav-link" href="../../core/renderer/remote-controlling_the_camera.html">Remote-Controlling</a>
  473. </li>
  474. <li class="nav-item" data-depth="2">
  475. <a class="nav-link" href="../../core/renderer/multiple_camera_views.html">Multiple Camera Views</a>
  476. </li>
  477. <li class="nav-item" data-depth="2">
  478. <a class="nav-link" href="../../core/renderer/jme3_renderbuckets.html">Render Buckets</a>
  479. </li>
  480. </ul>
  481. </li>
  482. <li class="nav-item" data-depth="1">
  483. <button class="nav-item-toggle"></button>
  484. <span class="nav-text">Rendering</span>
  485. <ul class="nav-list">
  486. <li class="nav-item" data-depth="2">
  487. <a class="nav-link" href="../../core/renderer/render_pipeline.html">Render Pipelines</a>
  488. </li>
  489. </ul>
  490. </li>
  491. <li class="nav-item" data-depth="1">
  492. <button class="nav-item-toggle"></button>
  493. <span class="nav-text">User Interaction</span>
  494. <ul class="nav-list">
  495. <li class="nav-item" data-depth="2">
  496. <a class="nav-link" href="../../core/input/input_handling.html">Input Handling</a>
  497. </li>
  498. <li class="nav-item" data-depth="2">
  499. <a class="nav-link" href="../../core/input/combo_moves.html">Combo Moves</a>
  500. </li>
  501. <li class="nav-item" data-depth="2">
  502. <a class="nav-link" href="../../core/input/mouse_picking.html">Mouse Picking</a>
  503. </li>
  504. </ul>
  505. </li>
  506. <li class="nav-item" data-depth="1">
  507. <button class="nav-item-toggle"></button>
  508. <a class="nav-link" href="../../core/gui/topic_gui.html">Graphical User Interface</a>
  509. <ul class="nav-list">
  510. <li class="nav-item" data-depth="2">
  511. <button class="nav-item-toggle"></button>
  512. <span class="nav-text">Nifty GUI</span>
  513. <ul class="nav-list">
  514. <li class="nav-item" data-depth="3">
  515. <a class="nav-link" href="../../core/gui/nifty_gui.html">Integration Tutorial</a>
  516. </li>
  517. <li class="nav-item" data-depth="3">
  518. <a class="nav-link" href="../../core/gui/nifty_gui_best_practices.html">Best Practices</a>
  519. </li>
  520. <li class="nav-item" data-depth="3">
  521. <a class="nav-link" href="../../core/gui/nifty_gui_scenarios.html">Scenarios</a>
  522. </li>
  523. </ul>
  524. </li>
  525. <li class="nav-item" data-depth="2">
  526. <a class="nav-link" href="../../core/ui/hud.html">Head-Up Display (HUD)</a>
  527. </li>
  528. </ul>
  529. </li>
  530. <li class="nav-item" data-depth="1">
  531. <button class="nav-item-toggle"></button>
  532. <span class="nav-text">Virtual Reality</span>
  533. <ul class="nav-list">
  534. <li class="nav-item" data-depth="2">
  535. <a class="nav-link" href="../../core/vr/virtualreality.html">Virtual Reality</a>
  536. </li>
  537. <li class="nav-item" data-depth="2">
  538. <a class="nav-link" href="../../core/vr/legacyOpenVr.html">Virtual Reality Legacy Support</a>
  539. </li>
  540. <li class="nav-item" data-depth="2">
  541. <a class="nav-link" href="../../core/vr/virtualrealitycontrollers.html">Virtual Reality Legacy Controller Support</a>
  542. </li>
  543. </ul>
  544. </li>
  545. </ul>
  546. </li>
  547. <li class="nav-item" data-depth="0">
  548. <ul class="nav-list">
  549. <li class="nav-item" data-depth="1">
  550. <button class="nav-item-toggle"></button>
  551. <a class="nav-link" href="../../physics/physics.html">Physics</a>
  552. <ul class="nav-list">
  553. <li class="nav-item" data-depth="2">
  554. <a class="nav-link" href="../../physics/bullet_multithreading.html">Multi-Threaded Physics</a>
  555. </li>
  556. <li class="nav-item" data-depth="2">
  557. <a class="nav-link" href="../../physics/collision/physics_listeners.html">Collision Detection</a>
  558. </li>
  559. <li class="nav-item" data-depth="2">
  560. <a class="nav-link" href="../../physics/joint/hinges_and_joints.html">Hinges and Joints</a>
  561. </li>
  562. <li class="nav-item" data-depth="2">
  563. <a class="nav-link" href="../../physics/control/walking_character.html">Walking Character</a>
  564. </li>
  565. <li class="nav-item" data-depth="2">
  566. <a class="nav-link" href="../../physics/control/ragdoll.html">Ragdoll</a>
  567. </li>
  568. <li class="nav-item" data-depth="2">
  569. <a class="nav-link" href="../../physics/control/vehicles.html">Vehicles</a>
  570. </li>
  571. <li class="nav-item" data-depth="2">
  572. <a class="nav-link" href="../../physics/control/softbody.html">Softbody</a>
  573. </li>
  574. <li class="nav-item" data-depth="2">
  575. <a class="nav-link" href="../../physics/bullet_pitfalls.html">Bullet Physics Pitfalls</a>
  576. </li>
  577. </ul>
  578. </li>
  579. </ul>
  580. </li>
  581. <li class="nav-item" data-depth="0">
  582. <ul class="nav-list">
  583. <li class="nav-item" data-depth="1">
  584. <button class="nav-item-toggle"></button>
  585. <span class="nav-text">Networking</span>
  586. <ul class="nav-list">
  587. <li class="nav-item" data-depth="2">
  588. <a class="nav-link" href="../../networking/networking.html">Networking (SpiderMonkey)</a>
  589. </li>
  590. <li class="nav-item" data-depth="2">
  591. <a class="nav-link" href="../../networking/headless_server.html">Headless Server</a>
  592. </li>
  593. <li class="nav-item" data-depth="2">
  594. <a class="nav-link" href="../../networking/monkey_zone.html">Multi-Player Demo Code</a>
  595. </li>
  596. <li class="nav-item" data-depth="2">
  597. <a class="nav-link" href="../../networking/networking_video_tutorials.html">Networking Video Tutorials</a>
  598. </li>
  599. </ul>
  600. </li>
  601. </ul>
  602. </li>
  603. <li class="nav-item" data-depth="0">
  604. <ul class="nav-list">
  605. <li class="nav-item" data-depth="1">
  606. <button class="nav-item-toggle"></button>
  607. <span class="nav-text">User Contributions</span>
  608. <ul class="nav-list">
  609. <li class="nav-item" data-depth="2">
  610. <a class="nav-link" href="../../contributions/contributions.html">User Made Utilities</a>
  611. </li>
  612. <li class="nav-item" data-depth="2">
  613. <button class="nav-item-toggle"></button>
  614. <span class="nav-text">Shader</span>
  615. <ul class="nav-list">
  616. <li class="nav-item" data-depth="3">
  617. <a class="nav-link" href="../../contributions/shader/shaderblow_project.html">ShaderBlow Project</a>
  618. </li>
  619. </ul>
  620. </li>
  621. <li class="nav-item" data-depth="2">
  622. <button class="nav-item-toggle"></button>
  623. <span class="nav-text">Landscapes</span>
  624. <ul class="nav-list">
  625. <li class="nav-item" data-depth="3">
  626. <a class="nav-link" href="../../contributions/lanscapes/vegetationsystem/vegetationsystem.html">Vegetation System</a>
  627. </li>
  628. </ul>
  629. </li>
  630. <li class="nav-item" data-depth="2">
  631. <button class="nav-item-toggle"></button>
  632. <span class="nav-text">Networking</span>
  633. <ul class="nav-list">
  634. <li class="nav-item" data-depth="3">
  635. <a class="nav-link" href="../../contributions/networking/open_game_finder.html">Open Game Finder</a>
  636. </li>
  637. </ul>
  638. </li>
  639. <li class="nav-item" data-depth="2">
  640. <button class="nav-item-toggle"></button>
  641. <span class="nav-text">Entity System</span>
  642. <ul class="nav-list">
  643. <li class="nav-item" data-depth="3">
  644. <a class="nav-link" href="#es/entitysystem.adoc">The Zay-ES Entity System</a>
  645. </li>
  646. </ul>
  647. </li>
  648. <li class="nav-item" data-depth="2">
  649. <button class="nav-item-toggle"></button>
  650. <span class="nav-text">Artificial Intelligence</span>
  651. <ul class="nav-list">
  652. <li class="nav-item" data-depth="3">
  653. <a class="nav-link" href="../../contributions/ai/recast.html">Recast Navigation</a>
  654. </li>
  655. <li class="nav-item" data-depth="3">
  656. <a class="nav-link" href="../../contributions/ai/building_recast.html">Updating and building Recast Native Bindings</a>
  657. </li>
  658. <li class="nav-item" data-depth="3">
  659. <a class="nav-link" href="../../contributions/ai/monkey_brains.html">Monkey Brains</a>
  660. </li>
  661. <li class="nav-item" data-depth="3">
  662. <a class="nav-link" href="../../contributions/ai/steer_behaviours.html">Steer Behaviours</a>
  663. </li>
  664. <li class="nav-item" data-depth="3">
  665. <a class="nav-link" href="../../contributions/ai/jme3_ai.html">jME3 Artificial Intelligence</a>
  666. </li>
  667. </ul>
  668. </li>
  669. <li class="nav-item" data-depth="2">
  670. <button class="nav-item-toggle"></button>
  671. <a class="nav-link" href="../../contributions/gui/topic_contributions_gui.html">GUI</a>
  672. <ul class="nav-list">
  673. <li class="nav-item" data-depth="3">
  674. <a class="nav-link" href="../../contributions/contributions.html#lemur-gui-library">Lemur - a native jME3 GUI library with scene graph tools</a>
  675. </li>
  676. <li class="nav-item" data-depth="3">
  677. <a class="nav-link" href="../../contributions/contributions.html#tonegodgui">tonegodGUI - a native jME3 GUI library</a>
  678. </li>
  679. <li class="nav-item" data-depth="3">
  680. <a class="nav-link" href="../../contributions/contributions.html#immediate-graphical-user-interface">Immediate graphical user interface</a>
  681. </li>
  682. </ul>
  683. </li>
  684. <li class="nav-item" data-depth="2">
  685. <button class="nav-item-toggle"></button>
  686. <span class="nav-text">Tools</span>
  687. <ul class="nav-list">
  688. <li class="nav-item" data-depth="3">
  689. <a class="nav-link" href="../../contributions/tools/navigation.html">Mercator Projection Tool (Marine Navigation)</a>
  690. </li>
  691. <li class="nav-item" data-depth="3">
  692. <a class="nav-link" href="../../contributions/tools/charts.html">Visualizing Maps in JME3 (Marine Charts)</a>
  693. </li>
  694. </ul>
  695. </li>
  696. <li class="nav-item" data-depth="2">
  697. <button class="nav-item-toggle"></button>
  698. <a class="nav-link" href="../../contributions/vr/topic_contributions_vr.html">Virtual Reality (And augmented reality)</a>
  699. <ul class="nav-list">
  700. <li class="nav-item" data-depth="3">
  701. <a class="nav-link" href="../../contributions/contributions.html#tamarin-openxr">Tamarin OpenXR</a>
  702. </li>
  703. </ul>
  704. </li>
  705. <li class="nav-item" data-depth="2">
  706. <button class="nav-item-toggle"></button>
  707. <span class="nav-text">Projects</span>
  708. <ul class="nav-list">
  709. <li class="nav-item" data-depth="3">
  710. <a class="nav-link" href="../../contributions/projects/rise_of_mutants_project.html">Rise of Mutants Project</a>
  711. </li>
  712. </ul>
  713. </li>
  714. </ul>
  715. </li>
  716. </ul>
  717. </li>
  718. <li class="nav-item" data-depth="0">
  719. <ul class="nav-list">
  720. <li class="nav-item" data-depth="1">
  721. <button class="nav-item-toggle"></button>
  722. <a class="nav-link" href="../sdk.html">SDK</a>
  723. <ul class="nav-list">
  724. <li class="nav-item" data-depth="2">
  725. <button class="nav-item-toggle"></button>
  726. <span class="nav-text">Video Tutorials</span>
  727. <ul class="nav-list">
  728. <li class="nav-item" data-depth="3">
  729. <button class="nav-item-toggle"></button>
  730. <span class="nav-text">SDK Use Case Tutorials</span>
  731. <ul class="nav-list">
  732. <li class="nav-item" data-depth="4">
  733. <a class="nav-link" href="http://www.youtube.com/watch?v=-OzRZscLlHY">Demo 1 (Quixote demo)</a>
  734. </li>
  735. <li class="nav-item" data-depth="4">
  736. <a class="nav-link" href="http://www.youtube.com/watch?v=6-YWxD3JByE">Demo 2 (Models and Materials)</a>
  737. </li>
  738. </ul>
  739. </li>
  740. <li class="nav-item" data-depth="3">
  741. <button class="nav-item-toggle"></button>
  742. <span class="nav-text">SDK Tutorials</span>
  743. <ul class="nav-list">
  744. <li class="nav-item" data-depth="4">
  745. <a class="nav-link" href="http://www.youtube.com/watch?v=M1_0pbeyJzI">Basics</a>
  746. </li>
  747. <li class="nav-item" data-depth="4">
  748. <a class="nav-link" href="http://www.youtube.com/watch?v=nL7woH40i5c">Importing Models</a>
  749. </li>
  750. <li class="nav-item" data-depth="4">
  751. <a class="nav-link" href="http://www.youtube.com/watch?v=DUmgAjiNzhY">Dragging&amp;Dropping Nodes</a>
  752. </li>
  753. <li class="nav-item" data-depth="4">
  754. <a class="nav-link" href="http://www.youtube.com/watch?v=ntPAmtsQ6eM">Scene Composing</a>
  755. </li>
  756. <li class="nav-item" data-depth="4">
  757. <a class="nav-link" href="http://www.youtube.com/watch?v=zgPV3W6dD4s">Terrain with Collision Shape</a>
  758. </li>
  759. <li class="nav-item" data-depth="4">
  760. <a class="nav-link" href="http://www.youtube.com/watch?v=Feu3-mrpolc">Working with Materials</a>
  761. </li>
  762. <li class="nav-item" data-depth="4">
  763. <a class="nav-link" href="http://www.youtube.com/watch?v=MNDiZ9YHIpM">Custom Controls</a>
  764. </li>
  765. <li class="nav-item" data-depth="4">
  766. <a class="nav-link" href="http://www.youtube.com/watch?v=oZnssg8TBWQ">WebStart Deployment</a>
  767. </li>
  768. <li class="nav-item" data-depth="4">
  769. <a class="nav-link" href="http://www.youtube.com/watch?v=D7JM4VMKqPc">Animation and Effect TrackEditing</a>
  770. </li>
  771. </ul>
  772. </li>
  773. </ul>
  774. </li>
  775. <li class="nav-item" data-depth="2">
  776. <button class="nav-item-toggle"></button>
  777. <span class="nav-text">Getting Started</span>
  778. <ul class="nav-list">
  779. <li class="nav-item" data-depth="3">
  780. <a class="nav-link" href="../update_center.html">Updating jMonkeyEngine SDK</a>
  781. </li>
  782. <li class="nav-item" data-depth="3">
  783. <a class="nav-link" href="../troubleshooting.html">Troubleshooting</a>
  784. </li>
  785. </ul>
  786. </li>
  787. <li class="nav-item" data-depth="2">
  788. <button class="nav-item-toggle"></button>
  789. <span class="nav-text">Java Development Features</span>
  790. <ul class="nav-list">
  791. <li class="nav-item" data-depth="3">
  792. <a class="nav-link" href="../project_creation.html">Project Creation</a>
  793. </li>
  794. <li class="nav-item" data-depth="3">
  795. <a class="nav-link" href="../code_editor.html">Code Editor and Palette</a>
  796. </li>
  797. <li class="nav-item" data-depth="3">
  798. <a class="nav-link" href="../version_control.html">File Version Control</a>
  799. </li>
  800. <li class="nav-item" data-depth="3">
  801. <a class="nav-link" href="../debugging_profiling_testing.html">Debug, Profile, Test</a>
  802. </li>
  803. <li class="nav-item" data-depth="3">
  804. <button class="nav-item-toggle"></button>
  805. <a class="nav-link" href="../application_deployment.html">Application Deployment</a>
  806. <ul class="nav-list">
  807. <li class="nav-item" data-depth="4">
  808. <a class="nav-link" href="../default_build_script.html">Default Build Script</a>
  809. </li>
  810. <li class="nav-item" data-depth="4">
  811. <a class="nav-link" href="../android.html">Android</a>
  812. </li>
  813. <li class="nav-item" data-depth="4">
  814. <a class="nav-link" href="../android_cheat_sheet.html">Android Cheat Sheet</a>
  815. </li>
  816. <li class="nav-item" data-depth="4">
  817. <a class="nav-link" href="../ios.html">iOS</a>
  818. </li>
  819. </ul>
  820. </li>
  821. </ul>
  822. </li>
  823. <li class="nav-item" data-depth="2">
  824. <button class="nav-item-toggle"></button>
  825. <span class="nav-text">Unique Features</span>
  826. <ul class="nav-list">
  827. <li class="nav-item" data-depth="3">
  828. <button class="nav-item-toggle"></button>
  829. <a class="nav-link" href="../model_loader_and_viewer.html">Import, View, Convert Models</a>
  830. <ul class="nav-list">
  831. <li class="nav-item" data-depth="4">
  832. <a class="nav-link" href="../asset_packs.html">Asset Packs</a>
  833. </li>
  834. </ul>
  835. </li>
  836. <li class="nav-item" data-depth="3">
  837. <a class="nav-link" href="../scene_explorer.html">The SceneExplorer</a>
  838. </li>
  839. <li class="nav-item" data-depth="3">
  840. <a class="nav-link" href="../scene_composer.html">Composing a Scene</a>
  841. </li>
  842. <li class="nav-item" data-depth="3">
  843. <a class="nav-link" href="../terrain_editor.html">Terrain Editor</a>
  844. </li>
  845. <li class="nav-item" data-depth="3">
  846. <a class="nav-link" href="../sample_code.html">Sample Code</a>
  847. </li>
  848. <li class="nav-item" data-depth="3">
  849. <a class="nav-link" href="../material_editing.html">Material Editing</a>
  850. </li>
  851. <li class="nav-item" data-depth="3">
  852. <a class="nav-link" href="../font_creation.html">Creating Bitmap Fonts</a>
  853. </li>
  854. <li class="nav-item" data-depth="3">
  855. <button class="nav-item-toggle"></button>
  856. <a class="nav-link" href="https://hub.jmonkeyengine.org/t/effecttrack-and-audiotrack-editing-in-the-sdk/23378">Audio and Effect Track Editing</a>
  857. <ul class="nav-list">
  858. <li class="nav-item" data-depth="4">
  859. <a class="nav-link" href="https://www.youtube.com/watch?v=D7JM4VMKqPc">Video: Effect and AudioTrack editing in jMonkeyEngine 3 sdk</a>
  860. </li>
  861. </ul>
  862. </li>
  863. <li class="nav-item" data-depth="3">
  864. <a class="nav-link" href="../filters.html">Post-Processor Filter Editor and Viewer</a>
  865. </li>
  866. <li class="nav-item" data-depth="3">
  867. <a class="nav-link" href="../../core/app/state/application_states.html">Application States</a>
  868. </li>
  869. <li class="nav-item" data-depth="3">
  870. <a class="nav-link" href="../../core/scene/control/custom_controls.html">Custom Controls</a>
  871. </li>
  872. <li class="nav-item" data-depth="3">
  873. <a class="nav-link" href="../vehicle_creator.html">Vehicle Creator</a>
  874. </li>
  875. <li class="nav-item" data-depth="3">
  876. <a class="nav-link" href="../assetbrowser.html">Asset Browser</a>
  877. </li>
  878. <li class="nav-item" data-depth="3">
  879. <a class="nav-link" href="../animations.html">Animations</a>
  880. </li>
  881. </ul>
  882. </li>
  883. <li class="nav-item" data-depth="2">
  884. <button class="nav-item-toggle"></button>
  885. <span class="nav-text">Advanced Usage</span>
  886. <ul class="nav-list">
  887. <li class="nav-item" data-depth="3">
  888. <a class="nav-link" href="../build_platform.html">Building jMonkeyEngine SDK</a>
  889. </li>
  890. <li class="nav-item" data-depth="3">
  891. <a class="nav-link" href="../use_own_jme.html#.adoc">Using your own (modified) version of jME3 in jMonkeyEngine SDK</a>
  892. </li>
  893. <li class="nav-item" data-depth="3">
  894. <a class="nav-link" href="../increasing_heap_memory.html">Increasing Heap Memory</a>
  895. </li>
  896. <li class="nav-item" data-depth="3">
  897. <a class="nav-link" href="../log_files.html">Log Files</a>
  898. </li>
  899. </ul>
  900. </li>
  901. <li class="nav-item" data-depth="2">
  902. <button class="nav-item-toggle"></button>
  903. <span class="nav-text">Available external plugins</span>
  904. <ul class="nav-list">
  905. <li class="nav-item" data-depth="3">
  906. <a class="nav-link" href="../../contributions/contributions.html">Contributions</a>
  907. </li>
  908. <li class="nav-item" data-depth="3">
  909. <a class="nav-link" href="../neotexture.html">Neo Texture Editor for procedural textures</a>
  910. </li>
  911. <li class="nav-item" data-depth="3">
  912. <a class="nav-link" href="http://www.youtube.com/watch?v=yS9a9o4WzL8">Video: Mesh Tool &amp; Physics Editor</a>
  913. </li>
  914. </ul>
  915. </li>
  916. <li class="nav-item" data-depth="2">
  917. <button class="nav-item-toggle"></button>
  918. <a class="nav-link" href="../development.html">Developing plugins for jMonkeyEngine SDK</a>
  919. <ul class="nav-list">
  920. <li class="nav-item" data-depth="3">
  921. <a class="nav-link" href="../development/setup.html">Creating a plugin</a>
  922. </li>
  923. <li class="nav-item" data-depth="3">
  924. <a class="nav-link" href="../development/general.html">Creating components</a>
  925. </li>
  926. <li class="nav-item" data-depth="3">
  927. <a class="nav-link" href="../development/scene.html">The Main Scene</a>
  928. </li>
  929. <li class="nav-item" data-depth="3">
  930. <a class="nav-link" href="../development/sceneexplorer.html">The Scene Explorer</a>
  931. </li>
  932. <li class="nav-item" data-depth="3">
  933. <a class="nav-link" href="../development/projects_assets.html">Projects and Assets</a>
  934. </li>
  935. <li class="nav-item" data-depth="3">
  936. <a class="nav-link" href="../development/extension_library.html">Create a library plugin from a jar file</a>
  937. </li>
  938. <li class="nav-item" data-depth="3">
  939. <a class="nav-link" href="../development/model_loader.html">Create a new or custom model filetype and loader</a>
  940. </li>
  941. </ul>
  942. </li>
  943. </ul>
  944. </li>
  945. </ul>
  946. </li>
  947. </ul>
  948. </nav>
  949. </div>
  950. <div class="nav-panel-explore" data-panel="explore">
  951. <div class="context">
  952. <span class="title">JME</span>
  953. <span class="version">3.8</span>
  954. </div>
  955. <ul class="components">
  956. <li class="component is-current">
  957. <span class="title">JME</span>
  958. <ul class="versions">
  959. <li class="version is-current">
  960. <a href="../../documentation.html">3.8</a>
  961. </li>
  962. <li class="version">
  963. <a href="../../../3.4/documentation.html">3.4</a>
  964. </li>
  965. <li class="version">
  966. <a href="../../../3.3/documentation.html">3.3</a>
  967. </li>
  968. <li class="version">
  969. <a href="../../../3.2/documentation.html">3.2</a>
  970. </li>
  971. </ul>
  972. </li>
  973. <li class="component">
  974. <span class="title">Wiki Contribution</span>
  975. <ul class="versions">
  976. <li class="version">
  977. <a href="../../../../docs-wiki/3.8/wiki_contributor.html">3.8</a>
  978. </li>
  979. </ul>
  980. </li>
  981. <li class="component">
  982. <span class="title">Wiki UI</span>
  983. <ul class="versions">
  984. <li class="version">
  985. <a href="../../../../wiki-ui/index.html">master</a>
  986. </li>
  987. </ul>
  988. </li>
  989. </ul>
  990. </div>
  991. </div>
  992. </aside>
  993. </div>
  994. <main class="article">
  995. <div class="toolbar" role="navigation">
  996. <button class="nav-toggle"></button>
  997. <nav class="breadcrumbs" aria-label="breadcrumbs">
  998. <ul>
  999. <li><a href="../../documentation.html">JME</a></li>
  1000. <li><a href="shaderblow.html">ShaderBlow</a></li>
  1001. </ul>
  1002. </nav>
  1003. <div class="page-versions">
  1004. <button class="version-menu-toggle" title="Show other versions of page">3.8</button>
  1005. <div class="version-menu">
  1006. <a class="version is-current" href="shaderblow.html">3.8</a>
  1007. <a class="version" href="../../../3.4/sdk/plugin/shaderblow.html">3.4</a>
  1008. <a class="version" href="../../../3.3/sdk/plugin/shaderblow.html">3.3</a>
  1009. <a class="version" href="../../../3.2/sdk/plugin/shaderblow.html">3.2</a>
  1010. </div>
  1011. </div>
  1012. <div class="edit-this-page"><a href="https://github.com/jMonkeyEngine/wiki/edit/master/docs/modules/sdk/pages/plugin/shaderblow.adoc">Edit this Page</a></div>
  1013. </div>
  1014. <div class="content">
  1015. <article class="doc">
  1016. <h1 class="page">ShaderBlow</h1>
  1017. <div id="preamble">
  1018. <div class="sectionbody">
  1019. <div class="paragraph">
  1020. <p><span class="image"><img src="../_images/plugin/shaderblow_intro_01.jpg" alt="shaderblow_intro_01.jpg" width="" height=""></span></p>
  1021. </div>
  1022. <div class="paragraph">
  1023. <p>Collections of effects for jMonkeyEngine 3. To install the ShaderBlow plugin into the jMonkeyEngine SDK, go to Tools→Plugins→Available Plugins.
  1024. You can always get the source of ShaderBlow project here:
  1025. <a href="https://github.com/jMonkeyEngine-Contributions/shaderblowlib">ShaderBlow project Github</a></p>
  1026. </div>
  1027. <div class="paragraph">
  1028. <p>The source has many examples and tests to explain the capacity of shaders much better.</p>
  1029. </div>
  1030. <div class="ulist">
  1031. <ul>
  1032. <li>
  1033. <p>Filters:</p>
  1034. <div class="ulist">
  1035. <ul>
  1036. <li>
  1037. <p>Basic SSAO</p>
  1038. </li>
  1039. <li>
  1040. <p>ColorScale (added by @H)</p>
  1041. </li>
  1042. <li>
  1043. <p>GrayScale (added by @H)</p>
  1044. </li>
  1045. <li>
  1046. <p>Simple Refraction (added by @mifth)</p>
  1047. </li>
  1048. <li>
  1049. <p>Old Film Effect (added by @H)</p>
  1050. </li>
  1051. <li>
  1052. <p>Night Vision (added by @wezrule)</p>
  1053. </li>
  1054. <li>
  1055. <p>Predator Thermal Vision (added by @wezrule)</p>
  1056. </li>
  1057. <li>
  1058. <p>Frosted Glass effect (added by @wezrule)</p>
  1059. </li>
  1060. </ul>
  1061. </div>
  1062. </li>
  1063. <li>
  1064. <p>Shaders</p>
  1065. <div class="ulist">
  1066. <ul>
  1067. <li>
  1068. <p>Dissolver (added by @thetoucher)</p>
  1069. </li>
  1070. <li>
  1071. <p>FakeParticleBlow (added by @mifth)</p>
  1072. </li>
  1073. <li>
  1074. <p>Forceshield (added by @ficik)</p>
  1075. </li>
  1076. <li>
  1077. <p>MatCap (added by @mifth)</p>
  1078. </li>
  1079. <li>
  1080. <p>Glass (added by @mifth)</p>
  1081. </li>
  1082. <li>
  1083. <p>Texture Bombing (added by @wezrule)</p>
  1084. </li>
  1085. </ul>
  1086. </div>
  1087. </li>
  1088. </ul>
  1089. </div>
  1090. <div class="admonitionblock note">
  1091. <table>
  1092. <tr>
  1093. <td class="icon">
  1094. <i class="fa icon-note" title="Note"></i>
  1095. </td>
  1096. <td class="content">
  1097. <div class="paragraph">
  1098. <p>Official Forum: <a href="https://hub.jmonkeyengine.org/t/shaderblow-project/26655">https://hub.jmonkeyengine.org/forum/t/shaderblow-project/26655</a>
  1099. Or you can use the forum threads of shaders.</p>
  1100. </div>
  1101. </td>
  1102. </tr>
  1103. </table>
  1104. </div>
  1105. <hr>
  1106. </div>
  1107. </div>
  1108. <div class="sect1">
  1109. <h2 id="colorscale-filter"><a class="anchor" href="#colorscale-filter"></a>ColorScale Filter</h2>
  1110. <div class="sectionbody">
  1111. <div class="paragraph">
  1112. <p>The ColorScale filter applies a color to the render image. You can use this filter to tint the render according to one particular color without change any material (underwater scene, night scene, fire scene) or to achieve fade-in/fade-out effect.</p>
  1113. </div>
  1114. <div class="paragraph">
  1115. <p>Features:</p>
  1116. </div>
  1117. <div class="ulist">
  1118. <ul>
  1119. <li>
  1120. <p>Allow to set the color to apply. Default is red.</p>
  1121. </li>
  1122. <li>
  1123. <p>Allow to set intensity of the color. Default is 0.7f. Frag shader clamps color intensity between 0 and 1.</p>
  1124. </li>
  1125. </ul>
  1126. </div>
  1127. <table class="tableblock frame-all grid-all stretch">
  1128. <colgroup>
  1129. <col style="width: 50%;">
  1130. <col style="width: 50%;">
  1131. </colgroup>
  1132. <tbody>
  1133. <tr>
  1134. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1135. <p><span class="image"><img src="../_images/plugin/colorfilter2.png" alt="ColorScale Filter OFF" width="400" height=""></span></p>
  1136. </div></div></td>
  1137. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1138. <p><span class="image"><img src="../_images/plugin/colorfilter1.png" alt="ColorScale filter ON" width="400" height=""></span></p>
  1139. </div></div></td>
  1140. </tr>
  1141. <tr>
  1142. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1143. <p><span class="image"><img src="../_images/plugin/colorfilter3.png" alt="ColorScale Filter ON" width="400" height=""></span></p>
  1144. </div></div></td>
  1145. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1146. <p><span class="image"><img src="../_images/plugin/colorfilter4.png" alt="ColorScale Filter" width="400" height=""></span></p>
  1147. </div></div></td>
  1148. </tr>
  1149. </tbody>
  1150. </table>
  1151. <div class="sect2">
  1152. <h3 id="usage"><a class="anchor" href="#usage"></a>Usage</h3>
  1153. <div class="paragraph">
  1154. <p>Add a <a href="https://github.com/jMonkeyEngine-Contributions/shaderblowlib/blob/master/ShaderBlow/src/com/shaderblow/filter/colorscale/ColorScaleFilter.java">ColorScaleFilter</a> instance to a FilterPostProccesor instance. Set color and color intensity. Then add the FilterPostProccesor instance to Application&#8217;s viewPort attribute.</p>
  1155. </div>
  1156. <div class="listingblock">
  1157. <div class="content">
  1158. <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">this.fpp = new FilterPostProcessor(this.assetManager);
  1159. this.fpp.setNumSamples(4);
  1160. this.colorScale = new ColorScaleFilter();
  1161. this.fpp.addFilter(this.colorScale);
  1162. // colorScale.setFilterColor(ColorRGBA.Red.clone()); // Set Filter color
  1163. // colorScale.setColorDensity(0.5f); // Set Color intensity (between 0 and 1);
  1164. this.viewPort.addProcessor(this.fpp);</code></pre>
  1165. </div>
  1166. </div>
  1167. <div class="paragraph">
  1168. <p><a href="https://github.com/jMonkeyEngine-Contributions/shaderblowlib/blob/master/ShaderBlow/test-src/com/shaderblow/test/filter/color/TestColorScale.java">TestCase</a></p>
  1169. </div>
  1170. <div class="paragraph">
  1171. <p><a href="https://hub.jmonkeyengine.org/t/colorscale-filter-added-to-shaderblow/23995">Forum thread</a></p>
  1172. </div>
  1173. <hr>
  1174. </div>
  1175. </div>
  1176. </div>
  1177. <div class="sect1">
  1178. <h2 id="grayscale-filter"><a class="anchor" href="#grayscale-filter"></a>GrayScale Filter</h2>
  1179. <div class="sectionbody">
  1180. <div class="paragraph">
  1181. <p>The GrayScale filter converts the render image to grayscale.</p>
  1182. </div>
  1183. <table class="tableblock frame-all grid-all stretch">
  1184. <colgroup>
  1185. <col style="width: 50%;">
  1186. <col style="width: 50%;">
  1187. </colgroup>
  1188. <thead>
  1189. <tr>
  1190. <th class="tableblock halign-left valign-top"><strong>GrayScale Filter OFF</strong></th>
  1191. <th class="tableblock halign-left valign-top"><strong>GrayScale Filter ON</strong></th>
  1192. </tr>
  1193. </thead>
  1194. <tbody>
  1195. <tr>
  1196. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1197. <p><span class="image"><img src="../_images/plugin/grayscalefilter-off.jpg" alt="GrayScale Filter OFF" width="400" height=""></span></p>
  1198. </div></div></td>
  1199. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1200. <p><span class="image"><img src="../_images/plugin/grayscalefilter-on.png" alt="GrayScale Filter ON" width="400" height=""></span></p>
  1201. </div></div></td>
  1202. </tr>
  1203. </tbody>
  1204. </table>
  1205. <div class="sect2">
  1206. <h3 id="usage-2"><a class="anchor" href="#usage-2"></a>Usage</h3>
  1207. <div class="paragraph">
  1208. <p>Add a <a href="https://github.com/jMonkeyEngine-Contributions/shaderblowlib/blob/master/ShaderBlow/src/com/shaderblow/filter/grayscale/GrayScaleFilter.java">GrayScaleFilter</a> instance to a FilterPostProccesor instance. Then add the FilterPostProccesor instance to Application&#8217;s viewPort attribute.</p>
  1209. </div>
  1210. <div class="listingblock">
  1211. <div class="content">
  1212. <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">this.fpp = new FilterPostProcessor(this.assetManager); // Create FilterPostProcessor instance
  1213. this.grayScale = new GrayScaleFilter(); // Create GrayScaleFilter instance
  1214. this.fpp.addFilter(this.grayScale); // Add GrayScaleFilter instance to FilterPostProcessor instance
  1215. this.viewPort.addProcessor(this.fpp); // Add FilterPostProcessor instance to ViewPort</code></pre>
  1216. </div>
  1217. </div>
  1218. <div class="paragraph">
  1219. <p><a href="https://github.com/jMonkeyEngine-Contributions/shaderblowlib/blob/master/ShaderBlow/test-src/com/shaderblow/test/filter/grayscale/TestGrayScale.java">TestCase</a></p>
  1220. </div>
  1221. <div class="paragraph">
  1222. <p><a href="https://hub.jmonkeyengine.org/t/solved-grayscale-filter/23656">Forum thread</a></p>
  1223. </div>
  1224. <hr>
  1225. </div>
  1226. </div>
  1227. </div>
  1228. <div class="sect1">
  1229. <h2 id="old-film-effect-filter"><a class="anchor" href="#old-film-effect-filter"></a>Old Film Effect Filter</h2>
  1230. <div class="sectionbody">
  1231. <div class="paragraph">
  1232. <p>Old Film filter simulate the effect of a classic looking film effect.</p>
  1233. </div>
  1234. <div class="paragraph">
  1235. <p>Features:</p>
  1236. </div>
  1237. <div class="ulist">
  1238. <ul>
  1239. <li>
  1240. <p>Allow to set the <strong>filter&#8217;s color</strong>. Default is sepia (ColorRGBA(112f / 255f, 66f / 255f, 20f / 255f, 1.0f)).</p>
  1241. </li>
  1242. <li>
  1243. <p>Allow to set the <strong>color&#8217;s density</strong>. Default is 0.7. Shader clamps this value between 0 to 1. The color image gets grayscale when color&#8217;s density is set to 0.</p>
  1244. </li>
  1245. <li>
  1246. <p>Allow to set the <strong>noise&#8217;s density</strong>. Default is 0.4. Shader clamps this value between 0 to 1.</p>
  1247. </li>
  1248. <li>
  1249. <p>Allow to set the <strong>scratches' density</strong>. Default is 0.3. Shader clamps this value between 0 to 1.</p>
  1250. </li>
  1251. <li>
  1252. <p>Allow to set the <strong>vignetting&#8217;s diameter</strong>. Default is 0.9. Shader clamps this value between 0 to 1.4. Vignetting effect is made using two circles. The inner circle represents the region untouched by vignetting. The region between the inner and outer circle represent the area where vignetting starts to take place, which is a gradual fade to black from the inner to outer ring. Any part of the frame outside of the outer ring would be completely black.</p>
  1253. </li>
  1254. </ul>
  1255. </div>
  1256. <div class="admonitionblock note">
  1257. <table>
  1258. <tr>
  1259. <td class="icon">
  1260. <i class="fa icon-note" title="Note"></i>
  1261. </td>
  1262. <td class="content">
  1263. <div class="paragraph">
  1264. <p>I chose to clamp this value inside the frag shader code instead of using java code because I thought this way is faster (better from performace point of view). You can clamp this value using Java code if you want.</p>
  1265. </div>
  1266. </td>
  1267. </tr>
  1268. </table>
  1269. </div>
  1270. <table class="tableblock frame-all grid-all stretch">
  1271. <caption class="title">YouTube</caption>
  1272. <colgroup>
  1273. <col style="width: 50%;">
  1274. <col style="width: 50%;">
  1275. </colgroup>
  1276. <tbody>
  1277. <tr>
  1278. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1279. <div class="title">Old Film Effect</div>
  1280. <p><span class="image"><a class="image" href="https://youtu.be/CgFzhkq-MKk"><img src="../_images/plugin/CgFzhkq-MKk.jpg" alt="youtu.be/CgFzhkq-MKk" width="" height=""></a></span></p>
  1281. </div></div></td>
  1282. <td class="tableblock halign-left valign-top"><div class="content"></div></td>
  1283. </tr>
  1284. </tbody>
  1285. </table>
  1286. <div class="sect2">
  1287. <h3 id="usage-3"><a class="anchor" href="#usage-3"></a>Usage</h3>
  1288. <div class="paragraph">
  1289. <p>Add a <a href="https://github.com/jMonkeyEngine-Contributions/shaderblowlib/blob/master/ShaderBlow/src/com/shaderblow/filter/oldfilm/OldFilmFilter.java">OldFilmFilter</a> instance to a FilterPostProccesor instance. Then add the FilterPostProccesor instance to Application&#8217;s viewPort attribute.</p>
  1290. </div>
  1291. <div class="listingblock">
  1292. <div class="content">
  1293. <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">this.fpp = new FilterPostProcessor(this.assetManager); // Create FilterPostProcessor instance
  1294. this.oldFilmFilter= new OldFilmFilter(); // Create OldFilmFilter instance
  1295. this.fpp.addFilter(this.oldFilmFilter); // Add OldFilmFilter instance to FilterPostProcessor instance
  1296. this.viewPort.addProcessor(this.fpp); // Add FilterPostProcessor instance to ViewPort</code></pre>
  1297. </div>
  1298. </div>
  1299. <div class="paragraph">
  1300. <p><a href="https://github.com/jMonkeyEngine-Contributions/shaderblowlib/blob/master/ShaderBlow/test-src/com/shaderblow/test/filter/oldfilm/TestOldFilm.java">TestCase</a></p>
  1301. </div>
  1302. <div class="paragraph">
  1303. <p><a href="https://hub.jmonkeyengine.org/t/old-film-effect-filter/25464">Forum thread</a></p>
  1304. </div>
  1305. <hr>
  1306. </div>
  1307. </div>
  1308. </div>
  1309. <div class="sect1">
  1310. <h2 id="lightblow-shader"><a class="anchor" href="#lightblow-shader"></a>LightBlow Shader</h2>
  1311. <div class="sectionbody">
  1312. <div class="paragraph">
  1313. <p>The Lightblow shader is an improved Lighting shader for JME.</p>
  1314. </div>
  1315. <div class="paragraph">
  1316. <p>Features:</p>
  1317. </div>
  1318. <div class="ulist">
  1319. <ul>
  1320. <li>
  1321. <p>Improved lighting calculations.</p>
  1322. </li>
  1323. <li>
  1324. <p>Improved reflection calculations.</p>
  1325. </li>
  1326. <li>
  1327. <p>Reflection map implementation with alpha normal map.</p>
  1328. </li>
  1329. <li>
  1330. <p>Improved Minnaert calculations.</p>
  1331. </li>
  1332. <li>
  1333. <p>Hemispherical lighting.</p>
  1334. </li>
  1335. <li>
  1336. <p>Image Based Lighting with Albedo.</p>
  1337. </li>
  1338. <li>
  1339. <p>Emissive map implementation with diffuse alpha.</p>
  1340. </li>
  1341. <li>
  1342. <p>normalization of normals by default.</p>
  1343. </li>
  1344. <li>
  1345. <p>Specular map implementation with normal map alpha.</p>
  1346. </li>
  1347. <li>
  1348. <p>Specular intensity implementation.</p>
  1349. </li>
  1350. <li>
  1351. <p>Switching -x/-y/-z normals for different normal maps. (3dmax, blender, xnormal have different approaches).</p>
  1352. </li>
  1353. <li>
  1354. <p>Specular Color now works with specular maps</p>
  1355. </li>
  1356. <li>
  1357. <p>Glowblow fragment shader is added with m_GlowIntensity? uniform. It&#8217;s possible to change glow intensity for objects. Please, use DiffuseMap? as GlowMap? instead of new additional Glow rgb texture.</p>
  1358. </li>
  1359. <li>
  1360. <p>Lightmaps are added.</p>
  1361. </li>
  1362. <li>
  1363. <p>Rim Lighting is added. Thanks to Thetoucher from JME Blog!</p>
  1364. </li>
  1365. <li>
  1366. <p>Fog is added. Fog is used without post-processing!</p>
  1367. </li>
  1368. <li>
  1369. <p>Texture Blending: 4 diffuse, 4 normal textures can be blended (Like Terrain System).</p>
  1370. </li>
  1371. </ul>
  1372. </div>
  1373. <div class="paragraph">
  1374. <p>Software for NormalMaps? making: <a href="https://shadermap.com/home/">https://shadermap.com/home/</a><br>
  1375. Software for CubeMaps? editing: <a href="https://code.google.com/archive/p/cubemapgen/downloads">https://code.google.com/archive/p/cubemapgen/downloads</a><br></p>
  1376. </div>
  1377. <div class="paragraph">
  1378. <p>Watch following videos:</p>
  1379. </div>
  1380. <table class="tableblock frame-all grid-all stretch">
  1381. <caption class="title">YouTube</caption>
  1382. <colgroup>
  1383. <col style="width: 50%;">
  1384. <col style="width: 50%;">
  1385. </colgroup>
  1386. <tbody>
  1387. <tr>
  1388. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1389. <div class="title">LightBlow Shader</div>
  1390. <p><span class="image"><a class="image" href="https://youtu.be/knROh_3o2uo"><img src="../_images/plugin/knROh_3o2uo.jpg" alt="youtube_https://youtu.be/knROh_3o2uo" width="" height=""></a></span></p>
  1391. </div></div></td>
  1392. <td class="tableblock halign-left valign-top"><div class="content"></div></td>
  1393. </tr>
  1394. </tbody>
  1395. </table>
  1396. <div class="paragraph">
  1397. <p><a href="https://hub.jmonkeyengine.org/t/lightblow-shader/16182">Forum thread</a></p>
  1398. </div>
  1399. <hr>
  1400. </div>
  1401. </div>
  1402. <div class="sect1">
  1403. <h2 id="dissolver-shader"><a class="anchor" href="#dissolver-shader"></a>Dissolver Shader</h2>
  1404. <div class="sectionbody">
  1405. <div class="paragraph">
  1406. <p>The Dissolve Shader uses a simple grey scale image as an animated mask to hide a material.</p>
  1407. </div>
  1408. <div class="paragraph">
  1409. <p>The shader incrementally clamps off the colour value, dark to light, and uses that for a masking texture to discard pixels.
  1410. It is currently capped for convenience at 255 frames of animation and is only using one colour channel.
  1411. In simple terms, in starts by only discarding the darkest parts of the texture map, then the slightly lighter parts, then the slightly lighter again and again until it eventually can&#8217;t get any lighter (white), at which point the process is complete.</p>
  1412. </div>
  1413. <table class="tableblock frame-all grid-all stretch">
  1414. <colgroup>
  1415. <col style="width: 50%;">
  1416. <col style="width: 50%;">
  1417. </colgroup>
  1418. <tbody>
  1419. <tr>
  1420. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1421. <p><span class="image"><img src="../_images/plugin/dissolver-screen.png" alt="Dissolver screenshot" width="400" height=""></span></p>
  1422. </div></div></td>
  1423. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1424. <p><span class="image"><img src="../_images/plugin/dissolver-maps.png" alt="Mask maps" width="400" height=""></span></p>
  1425. </div></div></td>
  1426. </tr>
  1427. </tbody>
  1428. </table>
  1429. <div class="paragraph">
  1430. <p>Starting at the top left we have: simple linear dissolve, organic dissolve and pixel dissolve.
  1431. And bottom row: organic growth, texture masking, organic burn.
  1432. Mask texture maps on the second image.</p>
  1433. </div>
  1434. <div class="paragraph">
  1435. <p>The test is oscillating the dissolve amount between 0 and 1. It demonstrates 6 different uses for the shader, all running at the same speed. The top row are straight forward dissolves. The bottom row shows 3 potential applications:</p>
  1436. </div>
  1437. <div class="olist arabic">
  1438. <ol class="arabic">
  1439. <li>
  1440. <p>Organic Growth (bottom left) over a mesh, this could work both animating rapidly for a fast grow effect, or set to a fixed value e.g. set to 0.5f is &#8220;50% covered in growth&#8221;;</p>
  1441. </li>
  1442. <li>
  1443. <p>Texture Masking (bottom middle) , I see this is probably where the most practical applications will come from. The demonstration shows a poorly photoshopped clean street, pieces of garbage are then scattered around dependant on the dissolve amount, this would work best with a fixed value eg set to .75 is &#8220;75% dirty&#8221;. Texture Masking could be also be used for:</p>
  1444. <div class="olist loweralpha">
  1445. <ol class="loweralpha" type="a">
  1446. <li>
  1447. <p>paint damage on a car;</p>
  1448. </li>
  1449. <li>
  1450. <p>lacerations on a character;</p>
  1451. </li>
  1452. <li>
  1453. <p>the blood shot eye effect that creeps in from the sides of the screen when you’ve taken too much damage in a modern FPS.</p>
  1454. </li>
  1455. </ol>
  1456. </div>
  1457. </li>
  1458. <li>
  1459. <p>Organic Burn (bottom right) is comprised of 2 cubes, one blue, one orange, both with the same organic dissolve, however the orange one is slightly offset ahead of the blue so it shows first (ie the dissolve amount is always slight advanced).</p>
  1460. </li>
  1461. </ol>
  1462. </div>
  1463. <div class="paragraph">
  1464. <p>Watch following videos:</p>
  1465. </div>
  1466. <table class="tableblock frame-all grid-all stretch">
  1467. <caption class="title">YouTube</caption>
  1468. <colgroup>
  1469. <col style="width: 50%;">
  1470. <col style="width: 50%;">
  1471. </colgroup>
  1472. <tbody>
  1473. <tr>
  1474. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1475. <div class="title">GLSL Dissolve Shader</div>
  1476. <p><span class="image"><a class="image" href="https://youtu.be/ry0r_qwFQLQ"><img src="../_images/plugin/ry0r_qwFQLQ.jpg" alt="youtube_ry0r_qwFQLQ" width="" height=""></a></span></p>
  1477. </div></div></td>
  1478. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1479. <div class="title">mTheoryGame</div>
  1480. <p><span class="image"><a class="image" href="https://youtu.be/wUfMcN1Uv48"><img src="../_images/plugin/wUfMcN1Uv48.jpg" alt="youtube_wUfMcN1Uv48" width="" height=""></a></span></p>
  1481. </div></div></td>
  1482. </tr>
  1483. </tbody>
  1484. </table>
  1485. <div class="sect2">
  1486. <h3 id="usage-4"><a class="anchor" href="#usage-4"></a>Usage</h3>
  1487. <div class="paragraph">
  1488. <p>The shader requires 2 parameters:</p>
  1489. </div>
  1490. <div class="ulist">
  1491. <ul>
  1492. <li>
  1493. <p>a Texture2D texture map to use as the dissolve map; and</p>
  1494. </li>
  1495. <li>
  1496. <p>a Vector2 of internal params params:</p>
  1497. <div class="ulist">
  1498. <ul>
  1499. <li>
  1500. <p>the first is a float value being the amount of dissolve, a value from 0-1 : 0 being no dissolve, being fully dissolved; and</p>
  1501. </li>
  1502. <li>
  1503. <p>the second value is an int use as an inversion switch, 1 to invert the dissolve/discard, 0 to leave as is.</p>
  1504. </li>
  1505. </ul>
  1506. </div>
  1507. </li>
  1508. </ul>
  1509. </div>
  1510. <div class="admonitionblock note">
  1511. <table>
  1512. <tr>
  1513. <td class="icon">
  1514. <i class="fa icon-note" title="Note"></i>
  1515. </td>
  1516. <td class="content">
  1517. <div class="paragraph">
  1518. <p>Dissolver is based on Common/MatDefs/Lighting.j3md. So, all Common/MatDefs/Lighting.j3md features should be available on the dissolver too.</p>
  1519. </div>
  1520. </td>
  1521. </tr>
  1522. </table>
  1523. </div>
  1524. <div class="listingblock">
  1525. <div class="content">
  1526. <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">// Create a material instance using ShaderBlow's Lighting.j3md
  1527. final Material mat = new Material(this.assetManager, "ShaderBlow/MatDefs/Dissolve/Lighting.j3md");
  1528. mat.setColor("Ambient", ColorRGBA.Blue);
  1529. mat.setColor("Diffuse", ColorRGBA.White);
  1530. mat.setColor("Specular", ColorRGBA.Black);
  1531. mat.setBoolean("UseMaterialColors", true);
  1532. this.assetManager.loadTexture("TestTextures/Dissolve/burnMap.png", mat.setTexture("DissolveMap", map)); // Set mask texture map
  1533. this.DSParams = new Vector2f(0, 0); // standard dissolver
  1534. //this.DSParamsInv = new Vector2f(0, 1); // inverted dissolver
  1535. mat.setVector2("DissolveParams", this.DSParams); // Set params
  1536. final Box b = new Box(Vector3f.ZERO, 1, 1, 1);
  1537. final Geometry geom = new Geometry("Box", b);
  1538. geom.setMaterial(mat);</code></pre>
  1539. </div>
  1540. </div>
  1541. <div class="paragraph">
  1542. <p><a href="https://github.com/jMonkeyEngine-Contributions/shaderblowlib/blob/master/ShaderBlow/test-src/com/shaderblow/test/dissolve/TestDissolve.java">TestCase</a></p>
  1543. </div>
  1544. <div class="paragraph">
  1545. <p><a href="https://hub.jmonkeyengine.org/t/dissolve-shader/18720">Forum thread</a></p>
  1546. </div>
  1547. <hr>
  1548. </div>
  1549. </div>
  1550. </div>
  1551. <div class="sect1">
  1552. <h2 id="fakeparticleblow-shader"><a class="anchor" href="#fakeparticleblow-shader"></a>FakeParticleBlow Shader</h2>
  1553. <div class="sectionbody">
  1554. <div class="paragraph">
  1555. <p>Effect for fire or engine of a ship. Such an effect is used in the &#8220;Eve Online&#8221; game for ship engines.</p>
  1556. </div>
  1557. <div class="paragraph">
  1558. <p>Features:</p>
  1559. </div>
  1560. <div class="olist arabic">
  1561. <ol class="arabic">
  1562. <li>
  1563. <p>GPU animation (now you don’t need simpleUpdate(float tpf) for the shader). Animation is made displacing the texture according to X and/or Y axis.</p>
  1564. </li>
  1565. <li>
  1566. <p>X and/or Y animation direction. No animation is supported also.</p>
  1567. </li>
  1568. <li>
  1569. <p>Animation direction changer. By default the Y axis animation&#8217;s direction is up-to-down and the X axis animation&#8217;s direction is right-to-left.</p>
  1570. </li>
  1571. <li>
  1572. <p>Allow to set animation speed.</p>
  1573. </li>
  1574. <li>
  1575. <p>Allow to set mask texture in order to set particle shape.</p>
  1576. </li>
  1577. <li>
  1578. <p>Allow to set particle color.</p>
  1579. </li>
  1580. <li>
  1581. <p>Allow to set fog color. Fog color is applied to the material using for color&#8217;s alpha value as fog distance factor.</p>
  1582. </li>
  1583. </ol>
  1584. </div>
  1585. <table class="tableblock frame-all grid-all stretch">
  1586. <colgroup>
  1587. <col style="width: 50%;">
  1588. <col style="width: 50%;">
  1589. </colgroup>
  1590. <tbody>
  1591. <tr>
  1592. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1593. <p><span class="image"><img src="../_images/plugin/fakeparticleblow.png" alt="FakeParticleBlow" width="400" height=""></span></p>
  1594. </div></div></td>
  1595. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1596. <div class="title">Fog applied to blue fire</div>
  1597. <p><span class="image"><img src="../_images/plugin/fakeparticleblow3.png" alt="FakeParticleBlow" width="400" height=""></span></p>
  1598. </div></div></td>
  1599. </tr>
  1600. </tbody>
  1601. </table>
  1602. <table class="tableblock frame-all grid-all stretch">
  1603. <caption class="title">YouTube</caption>
  1604. <colgroup>
  1605. <col style="width: 50%;">
  1606. <col style="width: 50%;">
  1607. </colgroup>
  1608. <tbody>
  1609. <tr>
  1610. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1611. <div class="title">FakeParticleBlow Shader</div>
  1612. <p><span class="image"><a class="image" href="https://youtu.be/hdQop4yZ-lA"><img src="../_images/plugin/hdQop4yZ-lA.jpg" alt="youtube_hdQop4yZ-lA" width="" height=""></a></span></p>
  1613. </div></div></td>
  1614. <td class="tableblock halign-left valign-top"><div class="content"></div></td>
  1615. </tr>
  1616. </tbody>
  1617. </table>
  1618. <div class="sect2">
  1619. <h3 id="usage-5"><a class="anchor" href="#usage-5"></a>Usage</h3>
  1620. <div class="paragraph">
  1621. <p>Create a material (by SDK or by code) using <a href="https://github.com/jMonkeyEngine-Contributions/shaderblowlib/blob/master/ShaderBlow/assets/ShaderBlow/MatDefs/FakeParticleBlow/FakeParticleBlow.j3md">FakeParticleBlow.j3md</a>.
  1622. Set material&#8217;s parameters and set the material to a spatial.</p>
  1623. </div>
  1624. <div class="paragraph">
  1625. <p>Most of the cases the spatial will be 4 to 10 planes in the same location but rotated on Y axis using different angles for each plane. Something similar to this:</p>
  1626. </div>
  1627. <div class="paragraph">
  1628. <p><span class="image"><img src="../_images/plugin/fakeobject.png" alt="fakeobject.png" width="100" height=""></span></p>
  1629. </div>
  1630. <div class="admonitionblock important">
  1631. <table>
  1632. <tr>
  1633. <td class="icon">
  1634. <i class="fa icon-important" title="Important"></i>
  1635. </td>
  1636. <td class="content">
  1637. <div class="paragraph">
  1638. <p>Remember to set the queue bucket to transparent for the spatial.</p>
  1639. </div>
  1640. </td>
  1641. </tr>
  1642. </table>
  1643. </div>
  1644. <div class="listingblock">
  1645. <div class="content">
  1646. <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">// Create the material
  1647. final Material mat = new Material(this.assetManager, "ShaderBlow/MatDefs/FakeParticleBlow/FakeParticleBlow.j3md");
  1648. // Create the mask texture to use
  1649. final Texture maskTex = this.assetManager.loadTexture("TestTextures/FakeParticleBlow/mask.png");
  1650. mat.setTexture("MaskMap", maskTex);
  1651. // Create the texture to use for the spatial.
  1652. final Texture aniTex = this.assetManager.loadTexture("TestTextures/FakeParticleBlow/particles.png");
  1653. aniTex.setWrap(WrapMode.MirroredRepeat); // NOTE: Set WrapMode = MirroredRepeat in order to animate the texture
  1654. mat.setTexture("AniTexMap", aniTex); // Set texture
  1655. mat.setFloat("TimeSpeed", 2); // Set animation speed
  1656. mat.setColor("BaseColor", ColorRGBA.Green.clone()); // Set base color to apply to the texture
  1657. // mat.setBoolean("Animation_X", true); // Enable X axis animation
  1658. mat.setBoolean("Animation_Y", true); // Enable Y axis animation
  1659. mat.setBoolean("Change_Direction", true); // Change direction of the texture animation
  1660. mat.getAdditionalRenderState().setFaceCullMode(FaceCullMode.Off); // Allow to see both sides of a face
  1661. mat.getAdditionalRenderState().setBlendMode(BlendMode.Additive);
  1662. final ColorRGBA fogColor = ColorRGBA.Black.clone();
  1663. fogColor.a = 10; // fogColor's alpha value is used to calculate the intensity of the fog (distance to apply fog)
  1664. mat.setColor("FogColor", fogColor); // Set fog color to apply to the spatial.
  1665. final Quad quad = new Quad(3, 3); // Create an spatial. A plane in this case
  1666. final Geometry geom = new Geometry("Particle", quad);
  1667. geom.setMaterial(mat); // Assign the material to the spatial
  1668. TangentBinormalGenerator.generate(geom);
  1669. geom.setQueueBucket(Bucket.Transparent); // Remember to set the queue bucket to transparent for the spatial</code></pre>
  1670. </div>
  1671. </div>
  1672. <div class="paragraph">
  1673. <p>To get green/yellow/blue fog (not transparency):</p>
  1674. </div>
  1675. <div class="listingblock">
  1676. <div class="content">
  1677. <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">mat.getAdditionalRenderState().setBlendMode(BlendMode.AlphaAdditive);
  1678. final ColorRGBA fogColor = ColorRGBA.Blue.clone();</code></pre>
  1679. </div>
  1680. </div>
  1681. <div class="paragraph">
  1682. <p>Several planes geometries will be required as there will be AlphaAdditive material.</p>
  1683. </div>
  1684. <div class="paragraph">
  1685. <p><a href="https://github.com/jMonkeyEngine-Contributions/shaderblowlib/blob/master/ShaderBlow/test-src/com/shaderblow/test/fakeparticleblow/TestFakeParticleBlow.java">TestCase 1</a><br>
  1686. <a href="https://github.com/jMonkeyEngine-Contributions/shaderblowlib/blob/master/ShaderBlow/test-src/com/shaderblow/test/fakeparticleblow/TestFakeParticleBlow2.java">TestCase 2</a></p>
  1687. </div>
  1688. <div class="paragraph">
  1689. <p><a href="https://hub.jmonkeyengine.org/t/fakeparticleblow-shader/16443">Forum thread</a></p>
  1690. </div>
  1691. <hr>
  1692. </div>
  1693. </div>
  1694. </div>
  1695. <div class="sect1">
  1696. <h2 id="forceshield-shader"><a class="anchor" href="#forceshield-shader"></a>Forceshield Shader</h2>
  1697. <div class="sectionbody">
  1698. <div class="paragraph">
  1699. <p>Forcefield shader adds shield effect to a spatial.
  1700. The spatial will be a sphere most of the cases, but box or oval should be possible to use. Only problem is that it has to be higher-poly because distance is calculated from vertex.</p>
  1701. </div>
  1702. <div class="paragraph">
  1703. <p>Hits are registred as contact point position using this control and effect animation is based on distance from contact point and time.
  1704. Max number of hits displayed is 4.</p>
  1705. </div>
  1706. <div class="paragraph">
  1707. <p>Features:</p>
  1708. </div>
  1709. <div class="ulist">
  1710. <ul>
  1711. <li>
  1712. <p>Allow to set texture of the shield.</p>
  1713. </li>
  1714. <li>
  1715. <p>Allow to set color of the shield.</p>
  1716. </li>
  1717. <li>
  1718. <p>Allow to set minimal visibility (similar to alpha value). Default is 0, that means shield is no displayed, only hit animations.</p>
  1719. </li>
  1720. <li>
  1721. <p>Allow to set effect duration. Default is 0.5s.</p>
  1722. </li>
  1723. <li>
  1724. <p>Allow to set effect size. Default is 1.</p>
  1725. </li>
  1726. <li>
  1727. <p>Allow to enable/disable hit animations.</p>
  1728. </li>
  1729. </ul>
  1730. </div>
  1731. <table class="tableblock frame-all grid-all stretch">
  1732. <caption class="title">YouTube</caption>
  1733. <colgroup>
  1734. <col style="width: 50%;">
  1735. <col style="width: 50%;">
  1736. </colgroup>
  1737. <tbody>
  1738. <tr>
  1739. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1740. <div class="title">Forceshield Shader</div>
  1741. <p><span class="image"><a class="image" href="https://youtu.be/uu2nbaBM9Pk"><img src="../_images/plugin/uu2nbaBM9Pk.jpg" alt="youtube_uu2nbaBM9Pk" width="" height=""></a></span></p>
  1742. </div></div></td>
  1743. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1744. <div class="title">Forceshield Cube Shader</div>
  1745. <p><span class="image"><a class="image" href="https://youtu.be/urzMiUeHsCc"><img src="../_images/plugin/urzMiUeHsCc.png" alt="youtube_urzMiUeHsCc" width="" height=""></a></span></p>
  1746. </div></div></td>
  1747. </tr>
  1748. </tbody>
  1749. </table>
  1750. <div class="sect2">
  1751. <h3 id="usage-6"><a class="anchor" href="#usage-6"></a>Usage</h3>
  1752. <div class="paragraph">
  1753. <p>Create a Spatial instance. Create a <a href="https://github.com/jMonkeyEngine-Contributions/shaderblowlib/blob/master/ShaderBlow/src/com/shaderblow/forceshield/ForceShieldControl.java">ForceShieldControl</a> instance.
  1754. Add the control instance to the spatial.</p>
  1755. </div>
  1756. <div class="admonitionblock important">
  1757. <table>
  1758. <tr>
  1759. <td class="icon">
  1760. <i class="fa icon-important" title="Important"></i>
  1761. </td>
  1762. <td class="content">
  1763. <div class="paragraph">
  1764. <p>If you experience problems, try higher polygon object.</p>
  1765. </div>
  1766. </td>
  1767. </tr>
  1768. </table>
  1769. </div>
  1770. <div class="listingblock">
  1771. <div class="content">
  1772. <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">// Create spatial to be the shield
  1773. final Sphere sphere = new Sphere(30, 30, 1.2f);
  1774. final Geometry shield = new Geometry("forceshield", sphere);
  1775. shield.setQueueBucket(Bucket.Transparent); // Remember to set the queue bucket to transparent for the spatial
  1776. // Create ForceShieldControl
  1777. this.forceShieldControl = new ForceShieldControl(this.assetManager, 0.5f);
  1778. shield.addControl(this.forceShieldControl); // Add the control to the spatial
  1779. this.forceShieldControl.setEffectSize(2f); // Set the effect size
  1780. this.forceShieldControl.setColor(new ColorRGBA(1, 0, 0, 3)); // Set effect color
  1781. this.forceShieldControl.setVisibility(0.1f); // Set shield visibility.
  1782. // Set a texture to the shield
  1783. this.forceShieldControl.setTexture(this.assetManager.loadTexture("TestTextures/ForceShield/fs_texture.png"));
  1784. // this.forceShieldControl.setEnabled(false); // Enable, disable animation.</code></pre>
  1785. </div>
  1786. </div>
  1787. <div class="paragraph">
  1788. <p>Use <em>forceShieldControl.registerHit(final Vector3f position)</em> method to register a hit.</p>
  1789. </div>
  1790. <div class="listingblock">
  1791. <div class="content">
  1792. <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">final CollisionResults crs = new CollisionResults();
  1793. this.rootNode.collideWith(new Ray(this.cam.getLocation(), this.cam.getDirection()), crs);
  1794. if (crs.getClosestCollision() != null) {
  1795. // Register a hit
  1796. this.forceShieldControl.registerHit(crs.getClosestCollision().getContactPoint());
  1797. }</code></pre>
  1798. </div>
  1799. </div>
  1800. <div class="paragraph">
  1801. <p><a href="https://github.com/jMonkeyEngine-Contributions/shaderblowlib/blob/master/ShaderBlow/test-src/com/shaderblow/test/forceshield/TestShield.java">TestCase</a></p>
  1802. </div>
  1803. <div class="paragraph">
  1804. <p><a href="https://hub.jmonkeyengine.org/t/forceshield-my-very-first-shader/18673">Forum thread</a></p>
  1805. </div>
  1806. <hr>
  1807. </div>
  1808. </div>
  1809. </div>
  1810. <div class="sect1">
  1811. <h2 id="matcap-shader"><a class="anchor" href="#matcap-shader"></a>MatCap Shader</h2>
  1812. <div class="sectionbody">
  1813. <div class="paragraph">
  1814. <p>MatCap shader will be very useful for scrollshooters to imitate different materials like glass, gold, metals.
  1815. The shader does not use any lights, only one texture.</p>
  1816. </div>
  1817. <div class="paragraph">
  1818. <p>Features:</p>
  1819. </div>
  1820. <div class="ulist">
  1821. <ul>
  1822. <li>
  1823. <p>Fog color and fog skybox.</p>
  1824. </li>
  1825. <li>
  1826. <p>Toon edge effect.</p>
  1827. </li>
  1828. <li>
  1829. <p>Multiply color: set a color to change texture&#8217;s color.</p>
  1830. </li>
  1831. <li>
  1832. <p>Normal map.</p>
  1833. </li>
  1834. </ul>
  1835. </div>
  1836. <table class="tableblock frame-all grid-all stretch">
  1837. <colgroup>
  1838. <col style="width: 50%;">
  1839. <col style="width: 50%;">
  1840. </colgroup>
  1841. <tbody>
  1842. <tr>
  1843. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1844. <p><span class="image"><img src="../_images/plugin/shaderblow_matcap.jpg" alt="MatCap shader" width="400" height=""></span></p>
  1845. </div></div></td>
  1846. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1847. <p><span class="image"><img src="../_images/plugin/matcap3.png" alt="Multiply color" width="400" height=""></span></p>
  1848. </div></div></td>
  1849. </tr>
  1850. <tr>
  1851. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1852. <p><span class="image"><img src="../_images/plugin/matcap1.png" alt="Toon edge effect" width="400" height=""></span></p>
  1853. </div></div></td>
  1854. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1855. <p><span class="image"><img src="../_images/plugin/matcap2.png" alt="Fog effect" width="400" height=""></span></p>
  1856. </div></div></td>
  1857. </tr>
  1858. </tbody>
  1859. </table>
  1860. <div class="sect2">
  1861. <h3 id="usage-7"><a class="anchor" href="#usage-7"></a>Usage</h3>
  1862. <div class="paragraph">
  1863. <p>Create a material (by SDK or by code) using <a href="https://github.com/jMonkeyEngine-Contributions/shaderblowlib/blob/master/ShaderBlow/assets/ShaderBlow/MatDefs/MatCap/MatCap.j3md">MatCap.j3md</a>. Set material&#8217;s parameters and set the material to a spatial.</p>
  1864. </div>
  1865. <div class="admonitionblock important">
  1866. <table>
  1867. <tr>
  1868. <td class="icon">
  1869. <i class="fa icon-important" title="Important"></i>
  1870. </td>
  1871. <td class="content">
  1872. <div class="paragraph">
  1873. <p>Remember to add a DirectionalLight if you want to use toon edge effect.</p>
  1874. </div>
  1875. </td>
  1876. </tr>
  1877. </table>
  1878. </div>
  1879. <div class="listingblock">
  1880. <div class="content">
  1881. <pre class="highlightjs highlight"><code class="language-none hljs">Material My Material : ShaderBlow/MatDefs/MatCap/MatCap.j3md {
  1882. MaterialParameters {
  1883. DiffuseMap : Flip TestTextures/matcaps/met2.png
  1884. Nor_Inv_Y : true
  1885. Nor_Inv_X : false
  1886. Nor_Inv_Z : false
  1887. NormalMap : TestModels/LightBlow/jme_lightblow_nor.png
  1888. FogSkyBox : Flip TestTextures/Water256.dds
  1889. Toon : true
  1890. EdgesColor : 1.0 0.0 0.0 1.0
  1891. EdgeSize : 0.01
  1892. Fog_Edges : true
  1893. }
  1894. AdditionalRenderState {
  1895. }
  1896. }</code></pre>
  1897. </div>
  1898. </div>
  1899. <div class="paragraph">
  1900. <p><a href="https://github.com/jMonkeyEngine-Contributions/shaderblowlib/blob/master/ShaderBlow/test-src/com/shaderblow/test/matcap/TestMatCap.java">TestCase</a></p>
  1901. </div>
  1902. <div class="paragraph">
  1903. <p><a href="https://hub.jmonkeyengine.org/t/glsl-matcap-shader-done/18920">Forum thread</a></p>
  1904. </div>
  1905. <hr>
  1906. </div>
  1907. </div>
  1908. </div>
  1909. <div class="sect1">
  1910. <h2 id="glass-shader"><a class="anchor" href="#glass-shader"></a>Glass Shader</h2>
  1911. <div class="sectionbody">
  1912. <div class="paragraph">
  1913. <p>Features:</p>
  1914. </div>
  1915. <div class="ulist">
  1916. <ul>
  1917. <li>
  1918. <p>Fog color and fog skybox.</p>
  1919. </li>
  1920. <li>
  1921. <p>Toon edge effect.</p>
  1922. </li>
  1923. <li>
  1924. <p>Multiply color: set a color to change texture&#8217;s color.</p>
  1925. </li>
  1926. <li>
  1927. <p>Normal map.</p>
  1928. </li>
  1929. </ul>
  1930. </div>
  1931. <table class="tableblock frame-all grid-all stretch">
  1932. <colgroup>
  1933. <col style="width: 50%;">
  1934. <col style="width: 50%;">
  1935. </colgroup>
  1936. <tbody>
  1937. <tr>
  1938. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1939. <p><span class="image"><img src="../_images/plugin/glass-shader.png" alt="Glass shader" width="400" height=""></span></p>
  1940. </div></div></td>
  1941. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  1942. <p><span class="image"><img src="../_images/plugin/glass-shader2.png" alt="Glass Shader and Fog Color effect" width="400" height=""></span></p>
  1943. </div></div></td>
  1944. </tr>
  1945. </tbody>
  1946. </table>
  1947. <div class="sect2">
  1948. <h3 id="usage-8"><a class="anchor" href="#usage-8"></a>Usage</h3>
  1949. <div class="paragraph">
  1950. <p>Create a material (by SDK or by code) using <a href="https://github.com/jMonkeyEngine-Contributions/shaderblowlib/blob/master/ShaderBlow/assets/ShaderBlow/MatDefs/Glass/Glass.j3md">Glass.j3md</a>. Set material&#8217;s parameters and set the material to a spatial.</p>
  1951. </div>
  1952. <div class="admonitionblock important">
  1953. <table>
  1954. <tr>
  1955. <td class="icon">
  1956. <i class="fa icon-important" title="Important"></i>
  1957. </td>
  1958. <td class="content">
  1959. <div class="paragraph">
  1960. <p>Remember to add a DirectionalLight if you want to use toon edge effect.</p>
  1961. </div>
  1962. </td>
  1963. </tr>
  1964. </table>
  1965. </div>
  1966. <div class="listingblock">
  1967. <div class="content">
  1968. <pre class="highlightjs highlight"><code class="language-none hljs">Material My Material : ShaderBlow/MatDefs/Glass/Glass.j3md {
  1969. MaterialParameters {
  1970. RefMap : Flip TestTextures/Water256.dds
  1971. Multiply_Color : 1.1 1.5 1.1 1.0
  1972. colorIntensity : 0.79999995
  1973. Nor_Inv_Y : true
  1974. NormalMap : TestModels/LightBlow/jme_lightblow_nor.png
  1975. ChromaticAbberation : true
  1976. abberIndex : 0.04
  1977. specularIntensity : 0.59999996
  1978. Toon : true
  1979. EdgesColor : 0.2 1.0 0.0 1.0
  1980. EdgeSize : 0.01
  1981. Fog_Edges : true
  1982. }
  1983. AdditionalRenderState {
  1984. }
  1985. }</code></pre>
  1986. </div>
  1987. </div>
  1988. <div class="paragraph">
  1989. <p><a href="https://github.com/jMonkeyEngine-Contributions/shaderblowlib/blob/master/ShaderBlow/test-src/com/shaderblow/test/glass/TestGlass.java">TestCase</a></p>
  1990. </div>
  1991. <div class="paragraph">
  1992. <p><a href="https://hub.jmonkeyengine.org/t/glsl-glass-shader-done/19050">Forum thread</a></p>
  1993. </div>
  1994. <hr>
  1995. </div>
  1996. </div>
  1997. </div>
  1998. <div class="sect1">
  1999. <h2 id="simplerefraction-postprocessorfilter"><a class="anchor" href="#simplerefraction-postprocessorfilter"></a>SimpleRefraction PostProcessor/Filter</h2>
  2000. <div class="sectionbody">
  2001. <div class="paragraph">
  2002. <p>Features:</p>
  2003. </div>
  2004. <div class="ulist">
  2005. <ul>
  2006. <li>
  2007. <p>Cool refraction effect</p>
  2008. </li>
  2009. </ul>
  2010. </div>
  2011. <table class="tableblock frame-all grid-all stretch">
  2012. <caption class="title">YouTube</caption>
  2013. <colgroup>
  2014. <col style="width: 50%;">
  2015. <col style="width: 50%;">
  2016. </colgroup>
  2017. <tbody>
  2018. <tr>
  2019. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  2020. <div class="title">SimpleRefraction PostProcessor</div>
  2021. <p><span class="image"><a class="image" href="https://youtu.be/EAUKCU5GRmc"><img src="../_images/plugin/EAUKCU5GRmc.jpg" alt="youtube_EAUKCU5GRmc" width="" height=""></a></span></p>
  2022. </div></div></td>
  2023. <td class="tableblock halign-left valign-top"><div class="content"></div></td>
  2024. </tr>
  2025. </tbody>
  2026. </table>
  2027. <div class="sect2">
  2028. <h3 id="usage-9"><a class="anchor" href="#usage-9"></a>Usage</h3>
  2029. <div class="paragraph">
  2030. <p><a href="https://github.com/jMonkeyEngine-Contributions/shaderblowlib/blob/master/ShaderBlow/test-src/com/shaderblow/test/simplerefraction/TestSimpleRefraction.java">TestCase for PostProcessor</a></p>
  2031. </div>
  2032. <div class="paragraph">
  2033. <p><a href="https://github.com/jMonkeyEngine-Contributions/shaderblowlib/blob/master/ShaderBlow/src/com/shaderblow/filter/simplerefractionfilter/SimpleRefractionFilter.java">TestCase for Filter</a></p>
  2034. </div>
  2035. <hr>
  2036. </div>
  2037. </div>
  2038. </div>
  2039. <div class="sect1">
  2040. <h2 id="basicssao-filter"><a class="anchor" href="#basicssao-filter"></a>BasicSSAO Filter</h2>
  2041. <div class="sectionbody">
  2042. <div class="paragraph">
  2043. <p>Features:</p>
  2044. </div>
  2045. <div class="ulist">
  2046. <ul>
  2047. <li>
  2048. <p>Cool Shadows.</p>
  2049. </li>
  2050. </ul>
  2051. </div>
  2052. <table class="tableblock frame-all grid-all stretch">
  2053. <colgroup>
  2054. <col style="width: 50%;">
  2055. <col style="width: 50%;">
  2056. </colgroup>
  2057. <tbody>
  2058. <tr>
  2059. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  2060. <p><span class="image"><img src="../_images/plugin/shaderblow_ssao.png" alt="Glass shader" width="400" height=""></span></p>
  2061. </div></div></td>
  2062. <td class="tableblock halign-left valign-top"><div class="content"></div></td>
  2063. </tr>
  2064. </tbody>
  2065. </table>
  2066. <div class="sect2">
  2067. <h3 id="usage-10"><a class="anchor" href="#usage-10"></a>Usage</h3>
  2068. <div class="paragraph">
  2069. <p><a href="https://github.com/jMonkeyEngine-Contributions/shaderblowlib/blob/master/ShaderBlow/test-src/com/shaderblow/test/filter/basicssao/TestBasicSSAO.java">TestCase</a></p>
  2070. </div>
  2071. <div class="paragraph">
  2072. <p><a href="https://hub.jmonkeyengine.org/t/wip-basicssao-added-optional-smoothing/23490">Forum thread</a></p>
  2073. </div>
  2074. <hr>
  2075. </div>
  2076. </div>
  2077. </div>
  2078. <div class="sect1">
  2079. <h2 id="electricity-shaders"><a class="anchor" href="#electricity-shaders"></a>Electricity Shaders</h2>
  2080. <div class="sectionbody">
  2081. <div class="paragraph">
  2082. <p>Features:</p>
  2083. </div>
  2084. <div class="ulist">
  2085. <ul>
  2086. <li>
  2087. <p>Cool Electricity effect</p>
  2088. </li>
  2089. </ul>
  2090. </div>
  2091. <table class="tableblock frame-all grid-all stretch">
  2092. <caption class="title">YouTube</caption>
  2093. <colgroup>
  2094. <col style="width: 50%;">
  2095. <col style="width: 50%;">
  2096. </colgroup>
  2097. <tbody>
  2098. <tr>
  2099. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  2100. <div class="title">Electricity Shaders</div>
  2101. <p><span class="image"><a class="image" href="https://youtu.be/JDTES95HnPE"><img src="../_images/plugin/JDTES95HnPE.jpg" alt="youtube_JDTES95HnPE" width="" height=""></a></span></p>
  2102. </div></div></td>
  2103. <td class="tableblock halign-left valign-top"><div class="content"></div></td>
  2104. </tr>
  2105. </tbody>
  2106. </table>
  2107. <div class="paragraph">
  2108. <p><a href="https://hub.jmonkeyengine.org/t/electricity-shaders/23436">Forum thread</a></p>
  2109. </div>
  2110. <hr>
  2111. </div>
  2112. </div>
  2113. <div class="sect1">
  2114. <h2 id="simplesprite-shader"><a class="anchor" href="#simplesprite-shader"></a>SimpleSprite Shader</h2>
  2115. <div class="sectionbody">
  2116. <div class="paragraph">
  2117. <p>Features:</p>
  2118. </div>
  2119. <div class="ulist">
  2120. <ul>
  2121. <li>
  2122. <p>GPU animated texture.</p>
  2123. </li>
  2124. </ul>
  2125. </div>
  2126. <table class="tableblock frame-all grid-all stretch">
  2127. <colgroup>
  2128. <col style="width: 50%;">
  2129. <col style="width: 50%;">
  2130. </colgroup>
  2131. <tbody>
  2132. <tr>
  2133. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  2134. <p><span class="image"><img src="../_images/plugin/shaderblow_simplesprite_shader.png" alt="Glass shader" width="400" height=""></span></p>
  2135. </div></div></td>
  2136. <td class="tableblock halign-left valign-top"><div class="content"></div></td>
  2137. </tr>
  2138. </tbody>
  2139. </table>
  2140. <table class="tableblock frame-all grid-all stretch">
  2141. <caption class="title">YouTube</caption>
  2142. <colgroup>
  2143. <col style="width: 50%;">
  2144. <col style="width: 50%;">
  2145. </colgroup>
  2146. <tbody>
  2147. <tr>
  2148. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  2149. <div class="title">SimpleSprite Shader</div>
  2150. <p><span class="image"><a class="image" href="https://youtu.be/7XFxbt-dw3I"><img src="../_images/plugin/7XFxbt-dw3I.jpg" alt="youtube_7XFxbt-dw3I" width="" height=""></a></span></p>
  2151. </div></div></td>
  2152. <td class="tableblock halign-left valign-top"><div class="content"></div></td>
  2153. </tr>
  2154. </tbody>
  2155. </table>
  2156. <div class="paragraph">
  2157. <p><a href="https://hub.jmonkeyengine.org/t/texture-animation-shader-done/19579">Forum thread</a></p>
  2158. </div>
  2159. <hr>
  2160. </div>
  2161. </div>
  2162. <div class="sect1">
  2163. <h2 id="bubble-shader"><a class="anchor" href="#bubble-shader"></a>Bubble Shader</h2>
  2164. <div class="sectionbody">
  2165. <div class="paragraph">
  2166. <p>Features:</p>
  2167. </div>
  2168. <div class="ulist">
  2169. <ul>
  2170. <li>
  2171. <p>Cool nice bubble.</p>
  2172. </li>
  2173. </ul>
  2174. </div>
  2175. <table class="tableblock frame-all grid-all stretch">
  2176. <caption class="title">YouTube</caption>
  2177. <colgroup>
  2178. <col style="width: 50%;">
  2179. <col style="width: 50%;">
  2180. </colgroup>
  2181. <tbody>
  2182. <tr>
  2183. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  2184. <div class="title">Bubble Shader</div>
  2185. <p><span class="image"><a class="image" href="https://youtu.be/rkFbLZ1EOhg"><img src="../_images/plugin/rkFbLZ1EOhg.jpg" alt="youtube_rkFbLZ1EOhg" width="" height=""></a></span></p>
  2186. </div></div></td>
  2187. <td class="tableblock halign-left valign-top"><div class="content"></div></td>
  2188. </tr>
  2189. </tbody>
  2190. </table>
  2191. <div class="paragraph">
  2192. <p><a href="https://hub.jmonkeyengine.org/t/bubble-shader/26169">Forum thread</a></p>
  2193. </div>
  2194. <hr>
  2195. </div>
  2196. </div>
  2197. <div class="sect1">
  2198. <h2 id="simplespriteparticle-shader"><a class="anchor" href="#simplespriteparticle-shader"></a>SimpleSpriteParticle Shader</h2>
  2199. <div class="sectionbody">
  2200. <div class="paragraph">
  2201. <p>Features:
  2202. static sprite speed: can render 1500000 sprites at 149 fps ( 0% cpu load, speed limited only by graphics card ). As long as you don’t change them (add, move, delete, change image).
  2203. FULL LIBRARY PLUGIN: <a href="https://code.google.com/archive/p/petomancer/downloads">http://code.google.com/p/petomancer/downloads/detail?name=SpriteLibrary.zip&amp;can=2&amp;q=</a></p>
  2204. </div>
  2205. <div class="paragraph">
  2206. <p><span class="image"><img src="../_images/plugin/shaderblow_simplespriteparticle_shader.png" alt="shaderblow_simplespriteparticle_shader.png" width="400" height=""></span></p>
  2207. </div>
  2208. <div class="paragraph">
  2209. <p><a href="https://hub.jmonkeyengine.org/t/spritelibrary-efficient-render-of-sprites/20901">Forum thread</a></p>
  2210. </div>
  2211. <hr>
  2212. </div>
  2213. </div>
  2214. <div class="sect1">
  2215. <h2 id="texture-bombing"><a class="anchor" href="#texture-bombing"></a>Texture Bombing</h2>
  2216. <div class="sectionbody">
  2217. <div class="paragraph">
  2218. <p>Features:</p>
  2219. </div>
  2220. <div class="ulist">
  2221. <ul>
  2222. <li>
  2223. <p>Applying random images from a texture atlas to a model by dividing up the model&#8217;s UV textures into cells.</p>
  2224. </li>
  2225. </ul>
  2226. </div>
  2227. <table class="tableblock frame-all grid-all stretch">
  2228. <caption class="title">YouTube</caption>
  2229. <colgroup>
  2230. <col style="width: 50%;">
  2231. <col style="width: 50%;">
  2232. </colgroup>
  2233. <tbody>
  2234. <tr>
  2235. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  2236. <div class="title">GLSL Texture Bomb</div>
  2237. <p><span class="image"><a class="image" href="https://youtu.be/3lBhu2c5V8o"><img src="../_images/plugin/3lBhu2c5V8o.jpg" alt="youtube_3lBhu2c5V8o" width="" height=""></a></span></p>
  2238. </div></div></td>
  2239. <td class="tableblock halign-left valign-top"><div class="content"></div></td>
  2240. </tr>
  2241. </tbody>
  2242. </table>
  2243. <div class="sect2">
  2244. <h3 id="usage-11"><a class="anchor" href="#usage-11"></a>Usage</h3>
  2245. <div class="paragraph">
  2246. <p><a href="https://github.com/jMonkeyEngine-Contributions/shaderblowlib/blob/master/ShaderBlow/test-src/com/shaderblow/test/texturebombing/TestTextureBombing.java">TestCase</a></p>
  2247. </div>
  2248. <div class="paragraph">
  2249. <p><a href="https://hub.jmonkeyengine.org/t/texture-glyph-bombing-shader/26867">Forum thread</a></p>
  2250. </div>
  2251. <hr>
  2252. </div>
  2253. </div>
  2254. </div>
  2255. <div class="sect1">
  2256. <h2 id="night-vision"><a class="anchor" href="#night-vision"></a>Night Vision</h2>
  2257. <div class="sectionbody">
  2258. <div class="paragraph">
  2259. <p>Features:</p>
  2260. </div>
  2261. <div class="ulist">
  2262. <ul>
  2263. <li>
  2264. <p>Apply a mask (Binoculars) and color to emulate night vision mode.</p>
  2265. </li>
  2266. </ul>
  2267. </div>
  2268. <table class="tableblock frame-all grid-all stretch">
  2269. <caption class="title">YouTube</caption>
  2270. <colgroup>
  2271. <col style="width: 50%;">
  2272. <col style="width: 50%;">
  2273. </colgroup>
  2274. <tbody>
  2275. <tr>
  2276. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  2277. <div class="title">Night Vision Post Processor</div>
  2278. <p><span class="image"><a class="image" href="https://youtu.be/mNsjAVUTDPs"><img src="../_images/plugin/mNsjAVUTDPs.jpg" alt="youtube_mNsjAVUTDPs" width="" height=""></a></span></p>
  2279. </div></div></td>
  2280. <td class="tableblock halign-left valign-top"><div class="content"></div></td>
  2281. </tr>
  2282. </tbody>
  2283. </table>
  2284. <div class="sect2">
  2285. <h3 id="usage-12"><a class="anchor" href="#usage-12"></a>Usage</h3>
  2286. <div class="paragraph">
  2287. <p><a href="https://github.com/jMonkeyEngine-Contributions/shaderblowlib/blob/master/ShaderBlow/test-src/com/shaderblow/test/filter/nightvision/TestNightVision.java">TestCase</a></p>
  2288. </div>
  2289. <div class="paragraph">
  2290. <p><a href="https://hub.jmonkeyengine.org/t/night-vision-filter-available-in-shaderblow-plugin/26892">Forum thread</a></p>
  2291. </div>
  2292. <hr>
  2293. </div>
  2294. </div>
  2295. </div>
  2296. <div class="sect1">
  2297. <h2 id="predator-thermal-vision"><a class="anchor" href="#predator-thermal-vision"></a>Predator Thermal Vision</h2>
  2298. <div class="sectionbody">
  2299. <div class="paragraph">
  2300. <p>Features:</p>
  2301. </div>
  2302. <div class="ulist">
  2303. <ul>
  2304. <li>
  2305. <p>Changes the color in the scene to emulate the predator thermal vision effect</p>
  2306. </li>
  2307. </ul>
  2308. </div>
  2309. <table class="tableblock frame-all grid-all stretch">
  2310. <caption class="title">YouTube</caption>
  2311. <colgroup>
  2312. <col style="width: 50%;">
  2313. <col style="width: 50%;">
  2314. </colgroup>
  2315. <tbody>
  2316. <tr>
  2317. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  2318. <div class="title">Predator Thermal Vision</div>
  2319. <p><span class="image"><a class="image" href="https://youtu.be/DqBwCWVwTFQ"><img src="../_images/plugin/DqBwCWVwTFQ.jpg" alt="youtube_DqBwCWVwTFQ" width="" height=""></a></span></p>
  2320. </div></div></td>
  2321. <td class="tableblock halign-left valign-top"><div class="content"></div></td>
  2322. </tr>
  2323. </tbody>
  2324. </table>
  2325. <div class="sect2">
  2326. <h3 id="usage-13"><a class="anchor" href="#usage-13"></a>Usage</h3>
  2327. <div class="paragraph">
  2328. <p><a href="https://github.com/jMonkeyEngine-Contributions/shaderblowlib/blob/master/ShaderBlow/test-src/com/shaderblow/test/filter/predatorvision/TestPredatorVision.java">TestCase</a></p>
  2329. </div>
  2330. <div class="paragraph">
  2331. <p><a href="https://hub.jmonkeyengine.org/t/predator-thermal-vision-filter-available-in-the-shaderblow-plugin/27005">Forum thread</a></p>
  2332. </div>
  2333. <hr>
  2334. </div>
  2335. </div>
  2336. </div>
  2337. <div class="sect1">
  2338. <h2 id="frosted-glass-effect"><a class="anchor" href="#frosted-glass-effect"></a>Frosted glass effect</h2>
  2339. <div class="sectionbody">
  2340. <div class="paragraph">
  2341. <p>Features:</p>
  2342. </div>
  2343. <div class="ulist">
  2344. <ul>
  2345. <li>
  2346. <p>Displays a frosted glass effect over the current scene</p>
  2347. </li>
  2348. </ul>
  2349. </div>
  2350. <table class="tableblock frame-all grid-all stretch">
  2351. <caption class="title">YouTube</caption>
  2352. <colgroup>
  2353. <col style="width: 50%;">
  2354. <col style="width: 50%;">
  2355. </colgroup>
  2356. <tbody>
  2357. <tr>
  2358. <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  2359. <div class="title">Frosted Glass effect Filter</div>
  2360. <p><span class="image"><a class="image" href="https://youtu.be/Bb0jVjqvURw"><img src="../_images/plugin/Bb0jVjqvURw.jpg" alt="youtube_Bb0jVjqvURw" width="" height=""></a></span></p>
  2361. </div></div></td>
  2362. <td class="tableblock halign-left valign-top"><div class="content"></div></td>
  2363. </tr>
  2364. </tbody>
  2365. </table>
  2366. <div class="sect2">
  2367. <h3 id="usage-14"><a class="anchor" href="#usage-14"></a>Usage</h3>
  2368. <div class="paragraph">
  2369. <p><a href="https://github.com/jMonkeyEngine-Contributions/shaderblowlib/blob/master/ShaderBlow/test-src/com/shaderblow/test/filter/frostedglass/TestFrostedGlass.java">TestCase</a></p>
  2370. </div>
  2371. <div class="paragraph">
  2372. <p><a href="https://hub.jmonkeyengine.org/t/frosted-glass-filter-available-in-the-shaderblow-plugin/27023">Forum thread</a></p>
  2373. </div>
  2374. <hr>
  2375. </div>
  2376. </div>
  2377. </div>
  2378. </article>
  2379. <aside class="toc sidebar" data-title="Contents" data-levels="2">
  2380. <div class="toc-menu"></div>
  2381. </aside>
  2382. </div>
  2383. </main>
  2384. </div>
  2385. <footer class="footer">
  2386. <p>Copyright 2020 jMonkeyEngine Wiki Contributors. Licensed BSD-3.</p>
  2387. </footer>
  2388. <script src="../../../../_/js/vendor/docsearch.min.js"></script>
  2389. <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js -->
  2390. <script>
  2391. var search = docsearch({
  2392. apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
  2393. indexName: 'jmonkeyengine',
  2394. inputSelector: '#search-input',
  2395. autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
  2396. algoliaOptions: { hitsPerPage: 10 }
  2397. }).autocomplete
  2398. search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
  2399. function focusSearchInput () { document.querySelector('#search-input').focus() }
  2400. if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput)
  2401. </script>
  2402. <script src="../../../../_/js/site.js"></script>
  2403. <script async src="../../../../_/js/vendor/highlight.js"></script>
  2404. </body>
  2405. </html>