index.html 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873
  1. <!DOCTYPE html>
  2. <html lang="en-us">
  3. <head>
  4. <title>jMonkeyEngine | Documentation</title>
  5. <meta name="viewport" content="width=device-width,minimum-scale=1">
  6. <meta name="description"
  7. content="jMonkeyEngine is a modern developer friendly game engine written primarily in Java. ">
  8. <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
  9. <link rel="stylesheet" href="/css/style.css">
  10. <meta name="twitter:card" content="summary"/>
  11. <meta name="twitter:title" content="Documentation"/>
  12. <meta name="twitter:description" content="Browse through our various forms of information to help you better understand the engine.
  13. Engine Wiki The wiki provides extended documentation as well as tutorials on how to develop your game effectively using jmonkey practices. Tutorials start from the basics all the way up to collision detection, input mapping and shaders, and will be your go-to place for most of the information you require."/>
  14. <meta property="og:title" content="Documentation" />
  15. <meta property="og:description" content="Browse through our various forms of information to help you better understand the engine.
  16. Engine Wiki The wiki provides extended documentation as well as tutorials on how to develop your game effectively using jmonkey practices. Tutorials start from the basics all the way up to collision detection, input mapping and shaders, and will be your go-to place for most of the information you require." />
  17. <meta property="og:type" content="article" />
  18. <meta property="og:url" content="https://jmonkeyengine.org/docs/" /><meta property="article:section" content="" />
  19. <meta itemprop="name" content="Documentation">
  20. <meta itemprop="description" content="Browse through our various forms of information to help you better understand the engine.
  21. Engine Wiki The wiki provides extended documentation as well as tutorials on how to develop your game effectively using jmonkey practices. Tutorials start from the basics all the way up to collision detection, input mapping and shaders, and will be your go-to place for most of the information you require.">
  22. <meta itemprop="wordCount" content="713">
  23. <meta itemprop="keywords" content="" />
  24. <script src="/js/old-browser.js"></script>
  25. <link rel="stylesheet" href="/css/old-browser.css">
  26. <script src="/highlight/highlight.pack.js"></script>
  27. <script
  28. src="//cdnjs.cloudflare.com/ajax/libs/highlightjs-line-numbers.js/2.8.0/highlightjs-line-numbers.min.js"></script>
  29. <link rel="stylesheet" href="/highlight/styles/railscasts.css">
  30. <script type="text/javascript">
  31. hljs.initHighlightingOnLoad();
  32. hljs.initLineNumbersOnLoad();
  33. </script>
  34. <script src="/js/utils.js"></script>
  35. <script src="/js/showcase.js"></script>
  36. <script type="module" src="/js/Main.js"></script>
  37. <script src="https://cdnjs.cloudflare.com/ajax/libs/later/1.2.0/later.min.js" integrity="sha512-4OyNDMl5KLKjS8F1ImVwUvmthM8HkXbR6vMafCmT5zBTd9I/sA3z3zM0JLBosHW6/3K2jq2RoBo/eTUNS2hOGA==" crossorigin="anonymous"></script>
  38. <script src="/js/maintenance/maintenance.js"></script>
  39. <link rel="stylesheet" href="/js/maintenance/maintenance.css">
  40. <script src="/js/christmas/Christmas.js"></script>
  41. <script>
  42. Christmas.init(
  43. "https://jmonkeyengine.org/js/christmas/",
  44. ["figure.githubUser img", 'img.avatar', "#showcase button"],
  45. [
  46. {
  47. type: "attribute",
  48. value: "src",
  49. transform:function(src){
  50. if(src.startsWith("/user_avatar/hub.jmonkeyengine.org/")) {
  51. return src.substring("/user_avatar/hub.jmonkeyengine.org/".length).split("/")[0];
  52. }
  53. return src;
  54. }
  55. },
  56. {
  57. type: "attribute",
  58. value: "title"
  59. },
  60. {
  61. type: "text"
  62. }
  63. ],
  64. ["header img.avatar"]
  65. );
  66. </script>
  67. </head>
  68. <body>
  69. <header> <nav class="responsiveWidth " id="topmenu">
  70. <div class="expandable">
  71. <a href="https://jmonkeyengine.org/" alt-href="https://jmonkeyengine.org/tags,https://jmonkeyengine.org/authors,https://jmonkeyengine.org/devlog,https://jmonkeyengine.org/blog,,https://jmonkeyengine.org/communitylog">
  72. <button class="genericCl responsiveIcon expandable ">
  73. <i class="fas fa-home"></i> <span>Home</span>
  74. </button>
  75. </a>
  76. <a href="https://jmonkeyengine.org/tags/showcase" alt-href="https://jmonkeyengine.org/showcase">
  77. <button class="genericCl responsiveIcon expandable ">
  78. <i class="fas fa-images"></i> <span>Showcase</span>
  79. </button>
  80. </a>
  81. <a href="https://hub.jmonkeyengine.org">
  82. <button class="genericCl responsiveIcon expandable ">
  83. <i class="fab fa-discourse"></i> <span>Discussions</span>
  84. </button>
  85. </a>
  86. <a href="https://library.jmonkeyengine.org" >
  87. <button class="genericCl responsiveIcon expandable ">
  88. <i class="fas fa-puzzle-piece"></i> <span>Library</span>
  89. </button>
  90. </a>
  91. <a href="https://jmonkeyengine.org/docs">
  92. <button class="genericCl responsiveIcon expandable ">
  93. <i class="fas fa-book"></i> <span>Docs</span>
  94. </button>
  95. </a>
  96. <a href="https://jmonkeyengine.org/license">
  97. <button class="genericCl responsiveIcon expandable toggleable toggledOffPortrait">
  98. <i class="fas fa-balance-scale-right"></i> <span>License</span>
  99. </button>
  100. </a>
  101. </div>
  102. <div class="toggleable toggledOffPortrait expandable">
  103. <a href="https://github.com/jMonkeyEngine/jmonkeyengine" rel='noopener noreferrer' target="_blank">
  104. <button class="icon toggleable toggledOffPortrait codeCl expandable " title="Github">
  105. <i class="fab fa-github-square"></i> <span>Github</span>
  106. </button>
  107. </a>
  108. <a href="https://twitter.com/jmonkeyengine" rel='noopener noreferrer' target="_blank">
  109. <button class="icon twitterCl toggleable toggledOffPortrait expandable " title="Follow on Twitter">
  110. <i class="fab fa-twitter"></i> <span>Twitter</span>
  111. </button>
  112. </a>
  113. <a href="https://www.youtube.com/channel/UC-Fs3R5Q6wW_XYspOXGZgPw" rel='noopener noreferrer'
  114. target="_blank">
  115. <button class="icon youtubeCl toggleable toggledOffPortrait expandable " title="Follow on Youtube">
  116. <i class="fab fa-youtube"></i> <span>Youtube</span>
  117. </button>
  118. </a>
  119. <a href="https://discord.gg/Rv8sfVu" rel='noopener noreferrer' target="_blank">
  120. <button class="icon discordCl toggleable toggledOffPortrait expandable " title="Discord">
  121. <i class="fab fa-discord"></i> <span>Discord</span>
  122. </button>
  123. </a>
  124. <a href="https://jmonkeyengine.org/donate" >
  125. <button class="icon donateCl toggleable toggledOffPortrait expandable " title="Donate">
  126. <i class="fas fa-donate"></i> <span>Donate!</span>
  127. </button>
  128. </a>
  129. </div>
  130. </nav>
  131. <script>
  132. !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.stringSimilarity=e():t.stringSimilarity=e()}(self,(function(){return t={138:t=>{function e(t,e){if((t=t.replace(/\s+/g,""))===(e=e.replace(/\s+/g,"")))return 1;if(t.length<2||e.length<2)return 0;let r=new Map;for(let e=0;e<t.length-1;e++){const n=t.substring(e,e+2),o=r.has(n)?r.get(n)+1:1;r.set(n,o)}let n=0;for(let t=0;t<e.length-1;t++){const o=e.substring(t,t+2),s=r.has(o)?r.get(o):0;s>0&&(r.set(o,s-1),n++)}return 2*n/(t.length+e.length-2)}t.exports={compareTwoStrings:e,findBestMatch:function(t,r){if(!function(t,e){return"string"==typeof t&&!!Array.isArray(e)&&!!e.length&&!e.find((function(t){return"string"!=typeof t}))}(t,r))throw new Error("Bad arguments: First argument should be a string, second should be an array of strings");const n=[];let o=0;for(let s=0;s<r.length;s++){const i=r[s],f=e(t,i);n.push({target:i,rating:f}),f>n[o].rating&&(o=s)}return{ratings:n,bestMatch:n[o],bestMatchIndex:o}}}}},e={},function r(n){if(e[n])return e[n].exports;var o=e[n]={exports:{}};return t[n](o,o.exports,r),o.exports}(138);var t,e}));
  133. window.initJmeMenu=function () {
  134. const selectionClass= window.selectedTopMenuClass || "highlightedCl";
  135. const topmenu = document.querySelector('#topmenu');
  136. if (window.location.href.startsWith("http://localhost:1313")) {
  137. for (const a of topmenu.querySelectorAll("a")) {
  138. a.href = a.href.replace("https://jmonkeyengine.org", "http://localhost:1313");
  139. }
  140. }
  141. const likelyScore=[];
  142. for (const a of topmenu.querySelectorAll("a")) {
  143. const pageUrl=window.location.href.endsWith("/")?window.location.href.substring(0,window.location.href.length-1):window.location.href;
  144. const process = (linkUrls) => {
  145. if(!linkUrls)return;
  146. for(let linkUrl of linkUrls){
  147. if (linkUrl != null) {
  148. if (window.location.href.startsWith("http://localhost:1313")) {
  149. linkUrl = linkUrl.replace("https://jmonkeyengine.org", "http://localhost:1313");
  150. }
  151. if (linkUrl.endsWith("/")) {
  152. linkUrl = linkUrl.substring(0, linkUrl.length - 1);
  153. }
  154. const score = stringSimilarity.compareTwoStrings(linkUrl, pageUrl);
  155. likelyScore.push(
  156. {
  157. score: score,
  158. el: a.querySelector("button")
  159. }
  160. );
  161. }
  162. }
  163. }
  164. process([a.href]);
  165. process(a.getAttribute("alt-href")?a.getAttribute("alt-href").split(","):undefined);
  166. }
  167. likelyScore.sort((a, b) => b.score - a.score);
  168. likelyScore.forEach(el=>el.el.classList.remove(selectionClass));
  169. likelyScore[0].el.classList.add(selectionClass);
  170. };
  171. document.addEventListener('DOMContentLoaded', function(){
  172. window.initJmeMenu();
  173. });
  174. </script>
  175. <div id="siteTitle" class="list hlist responsiveWidth">
  176. <div id="logo">
  177. <a href="/">
  178. <img src="/images/jme-logo.png" />
  179. </a>
  180. <i class="toggleNavOnPortraitButton fas fa-bars" toggle="topmenu"></i>
  181. </div>
  182. <div id="contributionsBanner">
  183. <div> <i class="fas fa-donate"></i>
  184. Backed by:
  185. <a rel='noopener nofollow noreferrer' target="_blank" id="backerName">The Community</a>
  186. <a rel='noopener nofollow noreferrer' target="_blank"
  187. href="https://opencollective.com/jmonkeyengine#section-contributors"> and more...</a>
  188. </div>
  189. <div>
  190. <i class="fab fa-github-alt"></i>
  191. Contributed by:
  192. <a rel='noopener nofollow noreferrer' target="_blank" id="contributorName">The Community</a>
  193. <a rel='noopener nofollow noreferrer' target="_blank"
  194. href="https://github.com/jMonkeyEngine/jmonkeyengine/graphs/contributors">and more...</a>
  195. </div>
  196. </div>
  197. </div>
  198. </header>
  199. <main>
  200. <section id="showcase" mode="banner">
  201. <i id="playButton" class=" fas fa-play"></i>
  202. <div class="showcaseElement" style='display: block '>
  203. <div class="cover blur" style ="background-image: url('/images/showcase/skullstone/10.jpg'); " ></div>
  204. <div class="cover" style ="background-image: url('/images/showcase/skullstone/10.jpg'); " ></div>
  205. </div>
  206. <div class="showcaseElement" style='display: none '>
  207. <div class="cover blur" lazy="true" lazy-style ="background-image: url('/images/showcase/skullstone/7.jpg'); " ></div>
  208. <div class="cover" lazy="true" lazy-style ="background-image: url('/images/showcase/skullstone/7.jpg'); " ></div>
  209. </div>
  210. <div class="showcaseElement" style='display: none '>
  211. <div class="cover blur" lazy="true" lazy-style ="background-image: url('/images/showcase/skullstone/4.jpg'); " ></div>
  212. <div class="cover" lazy="true" lazy-style ="background-image: url('/images/showcase/skullstone/4.jpg'); " ></div>
  213. </div>
  214. <div class="showcaseElement" style='display: none '>
  215. <div class="cover blur" lazy="true" lazy-style ="background-image: url('/images/showcase/skullstone/3.jpg'); " ></div>
  216. <div class="cover" lazy="true" lazy-style ="background-image: url('/images/showcase/skullstone/3.jpg'); " ></div>
  217. </div>
  218. <div class="showcaseElement" style='display: none '>
  219. <div class="cover blur" lazy="true" lazy-style ="background-image: url('/images/showcase/skullstone/16.jpg'); " ></div>
  220. <div class="cover" lazy="true" lazy-style ="background-image: url('/images/showcase/skullstone/16.jpg'); " ></div>
  221. </div>
  222. <div class="showcaseElement" style='display: none '>
  223. <div class="cover blur" lazy="true" lazy-style ="background-image: url('/images/showcase/skullstone/19.jpg'); " ></div>
  224. <div class="cover" lazy="true" lazy-style ="background-image: url('/images/showcase/skullstone/19.jpg'); " ></div>
  225. </div>
  226. <div class="showcaseElement" style='display: none '>
  227. <div class="cover blur" lazy="true" lazy-style ="background-image: url('/images/showcase/skullstone/14.jpg'); " ></div>
  228. <div class="cover" lazy="true" lazy-style ="background-image: url('/images/showcase/skullstone/14.jpg'); " ></div>
  229. </div>
  230. <div class="showcaseElement" style='display: none '>
  231. <div class="cover blur" lazy="true" lazy-style ="background-image: url('/images/showcase/skullstone/1.jpg'); " ></div>
  232. <div class="cover" lazy="true" lazy-style ="background-image: url('/images/showcase/skullstone/1.jpg'); " ></div>
  233. </div>
  234. <div class="showcaseElement" style='display: none '>
  235. <div class="cover blur" lazy="true" lazy-style ="background-image: url('/images/showcase/skullstone/9.jpg'); " ></div>
  236. <div class="cover" lazy="true" lazy-style ="background-image: url('/images/showcase/skullstone/9.jpg'); " ></div>
  237. </div>
  238. <div class="showcaseElement" style='display: none '>
  239. <div class="cover blur" lazy="true" lazy-style ="background-image: url('/images/showcase/skullstone/18.jpg'); " ></div>
  240. <div class="cover" lazy="true" lazy-style ="background-image: url('/images/showcase/skullstone/18.jpg'); " ></div>
  241. </div>
  242. <div class="showcaseElement" style='display: none '>
  243. <div class="cover blur" lazy="true" lazy-style ="background-image: url('/images/showcase/skullstone/15.jpg'); " ></div>
  244. <div class="cover" lazy="true" lazy-style ="background-image: url('/images/showcase/skullstone/15.jpg'); " ></div>
  245. </div>
  246. <div class="showcaseElement" style='display: none '>
  247. <div class="cover blur" lazy="true" lazy-style ="background-image: url('/images/showcase/skullstone/6.jpg'); " ></div>
  248. <div class="cover" lazy="true" lazy-style ="background-image: url('/images/showcase/skullstone/6.jpg'); " ></div>
  249. </div>
  250. <iframe loading="lazy" class="showcaseElement cover youtubeVid" style='display: none '
  251. lazy="true" lazy-src ="https://www.youtube-nocookie.com/embed/AnqzGANkPG8" frameborder="0"
  252. allow="accelerometer; autoplay; encrypted-media; gyroscope; fullscreen"></iframe>
  253. <div class="showcaseElement" style='display: none '>
  254. <div class="cover blur" lazy="true" lazy-style ="background-image: url('/images/showcase/skullstone/17.jpg'); " ></div>
  255. <div class="cover" lazy="true" lazy-style ="background-image: url('/images/showcase/skullstone/17.jpg'); " ></div>
  256. </div>
  257. <div class="showcaseElement" style='display: none '>
  258. <div class="cover blur" lazy="true" lazy-style ="background-image: url('/images/showcase/skullstone/2.jpg'); " ></div>
  259. <div class="cover" lazy="true" lazy-style ="background-image: url('/images/showcase/skullstone/2.jpg'); " ></div>
  260. </div>
  261. <div class="showcaseElement" style='display: none '>
  262. <div class="cover blur" lazy="true" lazy-style ="background-image: url('/images/showcase/skullstone/5.jpg'); " ></div>
  263. <div class="cover" lazy="true" lazy-style ="background-image: url('/images/showcase/skullstone/5.jpg'); " ></div>
  264. </div>
  265. <div class="showcaseElement" style='display: none '>
  266. <div class="cover blur" lazy="true" lazy-style ="background-image: url('/images/showcase/skullstone/12.jpg'); " ></div>
  267. <div class="cover" lazy="true" lazy-style ="background-image: url('/images/showcase/skullstone/12.jpg'); " ></div>
  268. </div>
  269. <div class="showcaseElement" style='display: none '>
  270. <div class="cover blur" lazy="true" lazy-style ="background-image: url('/images/showcase/skullstone/11.jpg'); " ></div>
  271. <div class="cover" lazy="true" lazy-style ="background-image: url('/images/showcase/skullstone/11.jpg'); " ></div>
  272. </div>
  273. <div class="showcaseElement" style='display: none '>
  274. <div class="cover blur" lazy="true" lazy-style ="background-image: url('/images/showcase/skullstone/8.jpg'); " ></div>
  275. <div class="cover" lazy="true" lazy-style ="background-image: url('/images/showcase/skullstone/8.jpg'); " ></div>
  276. </div>
  277. <div class="showcaseElement" style='display: none '>
  278. <div class="cover blur" lazy="true" lazy-style ="background-image: url('/images/showcase/skullstone/13.jpg'); " ></div>
  279. <div class="cover" lazy="true" lazy-style ="background-image: url('/images/showcase/skullstone/13.jpg'); " ></div>
  280. </div>
  281. <div class="responsiveWidth" id="engineDescription">
  282. jMonkeyEngine is a modern developer friendly game engine written primarily in Java.
  283. <br />
  284. Its minimalistic and code first approach makes it perfect for developers who want the support of a game engine
  285. while retaining full control over their code with the ability to extend and adapt the engine to their workflow.
  286. <br />
  287. <br />
  288. <br />
  289. <a href="/start/"><button id="startbtn" class="highlightedCl" ><i class="fas fa-rocket"></i> Get Started </button></a>
  290. <a href="/#features" title="overview"><button id="startbtn" class="highlightedCl"><i class="fas fa-question-circle" style="padding:0"></i></button></a>
  291. <br />
  292. <br />
  293. </div>
  294. <div class="responsiveWidth" >
  295. <div id="gameDescription" >
  296. <h2><i class="far fa-images" ></i> Skullstone powered by jMonkeyEngine</h2>
  297. Skullstone – a retro styled grid-based dungeon crawler RPG inspired by the good old titles such as Dungeon Master, Stonekeep, Eye of Beholder and many other classics.
  298. In a few words – a party of …
  299. <br />
  300. <a class="readMore" href="/showcase/skullstone/#showcase">See game page </a>
  301. </div>
  302. </div>
  303. </section>
  304. <br/>
  305. <section class="message list vlist">
  306. <div>
  307. <blockquote class="list vlist responsive">
  308. <span id="backerMessage">-</span>
  309. <i><a rel='noopener nofollow noreferrer' target="_blank" id="backerMessageName">-</a> </i>
  310. </blockquote>
  311. <a href="https://opencollective.com/jmonkeyengine">Become a
  312. backer and leave a message...</a>
  313. </div>
  314. </section>
  315. <br/>
  316. <a id="content"></a>
  317. <section class="full responsiveWidth">
  318. <article>
  319. <h1 >
  320. <i class="fas fa-paragraph useless"></i>
  321. <a href="/docs/">Documentation</a></h1>
  322. <div class="content">
  323. <span>
  324. <p>Browse through our various forms of information to help you better understand the engine.</p>
  325. <h3 id="hahahugoshortcode-s0-hbhb-engine-wikihttpswikijmonkeyengineorg"><a href="https://wiki.jmonkeyengine.org"><i class=" fas fa-book"></i> Engine Wiki</a></h3>
  326. <p>The wiki provides extended documentation as well as tutorials on how to develop your game effectively using jmonkey practices. Tutorials start from the basics all the way up to collision detection, input mapping and shaders, and will be your go-to place for most of the information you require.</p>
  327. <h3 id="hahahugoshortcode-s1-hbhb-javadochttpsjavadocjmonkeyengineorg"><a href="https://javadoc.jmonkeyengine.org"><i class=" fab fa-java"></i> JavaDoc</a></h3>
  328. <p>JavaDocs are source-code documentation that help you understand what specific methods and classes do. These snippets of information describe the parameters and return values and other key information to help you understand the engine better.</p>
  329. <h3 id="hahahugoshortcode-s2-hbhb--community-hubhttpshubjmonkeyengineorg"><a href="https://hub.jmonkeyengine.org"><i class=" fab fa-discourse"></i> Community Hub</a></h3>
  330. <p>Our community has an excellent standing in supporting developers that need help. We have a thriving collection of knowledgable users that are super-helpful. If you ever find yourself confused or wondering how something is done, head over to our community hub and create a new thread. Our ultra-helpful team and community will be more than happy to give you a hand in getting you back on track.</p>
  331. <p>To get the most helpful answers, it may be useful to understand <a href="https://www.mikeash.com/getting_answers.html">how to get the best answers</a> to your question. Providing source code, explaining what you have tried, why it didn&rsquo;t work and any other relevant details will speed up the process of giving you a relevant answer.</p>
  332. <h3 id="hahahugoshortcode-s3-hbhb-discordhttpsdiscordggjdjhsrw"><a href="https://discord.gg/JdjhsRw"><i class=" fab fa-discord"></i> Discord</a></h3>
  333. <p>Our official discord server is full of friendly members that can provide useful advice through chat. Whilst a chat server is not always the best place for comprehensive answers, it does serve as a great tool for quick solutions and getting to know the members better.</p>
  334. <h3 id="hahahugoshortcode-s4-hbhb-scene-graph-for-dummieshttpswikijmonkeyengineorgtutorialsscenegraphassetsfallbackindexhtml"><a href="https://wiki.jmonkeyengine.org/tutorials/scenegraph/assets/fallback/index.html"><i class=" fas fa-cube"></i> Scene Graph for Dummies</a></h3>
  335. <p>A slideshow explaining how to use the scene graph in jMonkey. This guide explains how to use the scene graph effectively and understand the relationships involved. <strong>Highly recommended</strong> for all new users to the gaming industry.</p>
  336. <ul>
  337. <li>What the scene graph is and what a <code>Spatial</code> is.</li>
  338. <li>What a <code>Geometry</code> is and how it&rsquo;s appearance is defined.</li>
  339. <li>What a <code>Node</code> is and what a parent-child relationship is.</li>
  340. <li>How to organize the scene graph visually and logically using nodes.</li>
  341. <li>How to hide single Spatials or whole parts of the scene graph.</li>
  342. </ul>
  343. <h3 id="hahahugoshortcode-s5-hbhb-math-for-dummies-jme-vector-mathhttpswikijmonkeyengineorgtutorialsmathassetsfallbackindexhtml"><a href="https://wiki.jmonkeyengine.org/tutorials/math/assets/fallback/index.html"><i class=" fas fa-square-root-alt"></i> Math For Dummies: JME Vector Math</a></h3>
  344. <p>A slideshow explaining how to use vectors and quaternions in jMonkey. This guide is extremely useful to new game developers trying to understand locations, directions and rotations. Recommended for all new users to the gaming industry.</p>
  345. <ul>
  346. <li>What vectors are and how to create them.</li>
  347. <li>How to add, subtract, multiply and normalize vectors.</li>
  348. <li>How to interpolate between vectors.</li>
  349. <li>What quaternions are and how to creat them.</li>
  350. <li>How to rotate a vector using a quaternion.</li>
  351. <li>How to combine rotations.</li>
  352. <li>How to use <code>lookAt</code> to create rotations.</li>
  353. </ul>
  354. <h3 id="hahahugoshortcode-s6-hbhb-transparency-for-dummieshttpshubjmonkeyengineorgtalpha-transparency-sorting-your-z-buffer-and-you33709"><a href="https://hub.jmonkeyengine.org/t/alpha-transparency-sorting-your-z-buffer-and-you/33709"><i class=" far fa-images"></i> Transparency for Dummies</a></h3>
  355. <p>This document explains some of the issues surrounding transparency, what sorting means and how to solve common problems surrounding transparency.</p>
  356. <h3 id="hahahugoshortcode-s7-hbhb-community-tutorialstagstutorials"><a href="/tags/tutorials"><i class=" fas fa-comments"></i> Community tutorials</a></h3>
  357. <p>This is a list of tutorials provided by the community<br>
  358. <section class="list vlist" >
  359. <article>
  360. <h1 >
  361. <a href="/blog/macos-cloud-renting-and-developmentmacos-cloud-renting-and-development/">
  362. <i class="fas fa-paragraph useless"></i>
  363. MacOS renting and development in the cloud</a>
  364. </h1>
  365. <div class="content" >
  366. <span >
  367. MacOS cloud renting has started to proliferate with the new Apple Silicon M1 chip and it turned out to be a pretty decent way to test graphical applications on MacOS without buying apple&rsquo;s pricey hardware or resorting to hackish ports and vms of questionable legality.
  368. I am reporting here the procedure to quickly get a MacOS M1 cloud service up and running for testing jmonkey applications without too much hassle. …
  369. <a class="more readMore" href="/blog/macos-cloud-renting-and-developmentmacos-cloud-renting-and-development/">Read
  370. More... </a>
  371. </span>
  372. <nav>
  373. <ul class="tags smaller">
  374. <h3 class="tags">Tags</h3>
  375. <li><a class="tutorials" href="/tags/tutorials"><i class="fas fa-hashtag"></i>tutorials</a></li>
  376. <li><a class="blog" href="/tags/blog"><i class="fas fa-hashtag"></i>blog</a></li>
  377. <li><a class="misc" href="/tags/misc"><i class="fas fa-hashtag"></i>misc</a></li>
  378. </ul>
  379. <ul class="authors smaller">
  380. <h3 class="authors">Authors</h3>
  381. <li><a class="riccardobl" href="/authors/riccardobl"><i class="fas fa-at"></i>riccardobl</a></li>
  382. </ul>
  383. <ul class="postedDate smaller">
  384. <h3 class="postedDate">Date</h3>
  385. <li><time datetime="2022-01-19 18:00:00 &#43;0000 UTC"><i class="fas fa-calendar"></i>19 January 2022</time> </li>
  386. </ul>
  387. <ul class="share">
  388. <h3 class="share">Share</h3>
  389. <li>
  390. <button><a href="https://twitter.com/share?ref_src=twsrc%5Etfw&text=MacOS%20cloud%20renting%20has%20started%20to%20proliferate%20with%20the%20new%20Apple%20Silicon%20M1%20chip%20and%20it%20turned%20out%20to%20be%20a%20pretty%20decent%20way%20to%20test%20graphical%20%e2%80%a6 " >
  391. <i class="fab fa-twitter-square"></i> Share on Twitter</a></button></li>
  392. </ul>
  393. </nav>
  394. </div>
  395. </article>
  396. <article>
  397. <h1 >
  398. <a href="/tutorials/grizeldi-pbr-tutorials/pbr_tutorial2/">
  399. <i class="fas fa-paragraph useless"></i>
  400. Grizeldi&#39;s PBR Tutorial #2 - What are Light Probes?</a>
  401. </h1>
  402. <div class="content" >
  403. <span >
  404. Second part of my tutorial series in which I explain how to use jmonkeyengine&rsquo;s Physically Based Rendering pipeline. In this part we answer the question what are the light probes and why do we need them.
  405. </span>
  406. <nav>
  407. <ul class="tags smaller">
  408. <h3 class="tags">Tags</h3>
  409. <li><a class="pbr" href="/tags/pbr"><i class="fas fa-hashtag"></i>pbr</a></li>
  410. <li><a class="graphics" href="/tags/graphics"><i class="fas fa-hashtag"></i>graphics</a></li>
  411. <li><a class="tutorials" href="/tags/tutorials"><i class="fas fa-hashtag"></i>tutorials</a></li>
  412. <li><a class="blog" href="/tags/blog"><i class="fas fa-hashtag"></i>blog</a></li>
  413. </ul>
  414. <ul class="authors smaller">
  415. <h3 class="authors">Authors</h3>
  416. <li><a class="grizeldi" href="/authors/grizeldi"><i class="fas fa-at"></i>grizeldi</a></li>
  417. </ul>
  418. <ul class="postedDate smaller">
  419. <h3 class="postedDate">Date</h3>
  420. <li><time datetime="2019-10-16 08:00:00 &#43;0000 UTC"><i class="fas fa-calendar"></i>16 October 2019</time> </li>
  421. </ul>
  422. <ul class="share">
  423. <h3 class="share">Share</h3>
  424. <li>
  425. <button><a href="https://twitter.com/share?ref_src=twsrc%5Etfw&text=Second%20part%20of%20my%20tutorial%20series%20in%20which%20I%20explain%20how%20to%20use%20jmonkeyengine%e2%80%99s%20Physically%20Based%20Rendering%20pipeline.%20In%20this%20part%20we%20answer%20the%20%e2%80%a6 " >
  426. <i class="fab fa-twitter-square"></i> Share on Twitter</a></button></li>
  427. </ul>
  428. </nav>
  429. </div>
  430. </article>
  431. <article>
  432. <h1 >
  433. <a href="/tutorials/grizeldi-pbr-tutorials/pbr_tutorial/">
  434. <i class="fas fa-paragraph useless"></i>
  435. Grizeldi&#39;s PBR Tutorial #1 - The Basics</a>
  436. </h1>
  437. <div class="content" >
  438. <span >
  439. A continuing YouTube series helping users take leap from using the regular Lighting.j3md material to PbrLighting.j3md.
  440. First part of my tutorial series in which I explain how to use jmonkeyengine&rsquo;s Physically Based Rendering pipeline. Intended for people who already understand how to use the regular Lighting.j3md shader, but have no idea how PBR works.
  441. </span>
  442. <nav>
  443. <ul class="tags smaller">
  444. <h3 class="tags">Tags</h3>
  445. <li><a class="pbr" href="/tags/pbr"><i class="fas fa-hashtag"></i>pbr</a></li>
  446. <li><a class="graphics" href="/tags/graphics"><i class="fas fa-hashtag"></i>graphics</a></li>
  447. <li><a class="tutorials" href="/tags/tutorials"><i class="fas fa-hashtag"></i>tutorials</a></li>
  448. <li><a class="blog" href="/tags/blog"><i class="fas fa-hashtag"></i>blog</a></li>
  449. </ul>
  450. <ul class="authors smaller">
  451. <h3 class="authors">Authors</h3>
  452. <li><a class="grizeldi" href="/authors/grizeldi"><i class="fas fa-at"></i>grizeldi</a></li>
  453. </ul>
  454. <ul class="postedDate smaller">
  455. <h3 class="postedDate">Date</h3>
  456. <li><time datetime="2019-01-18 08:00:00 &#43;0000 UTC"><i class="fas fa-calendar"></i>18 January 2019</time> </li>
  457. </ul>
  458. <ul class="share">
  459. <h3 class="share">Share</h3>
  460. <li>
  461. <button><a href="https://twitter.com/share?ref_src=twsrc%5Etfw&text=A%20continuing%20YouTube%20series%20helping%20users%20take%20leap%20from%20using%20the%20regular%20Lighting.j3md%20material%20to%20PbrLighting.j3md.%0aFirst%20part%20of%20my%20tutorial%20%e2%80%a6 " >
  462. <i class="fab fa-twitter-square"></i> Share on Twitter</a></button></li>
  463. </ul>
  464. </nav>
  465. </div>
  466. </article>
  467. </section></p>
  468. </span>
  469. </div>
  470. </article>
  471. </section>
  472. </main>
  473. <footer>
  474. © 2020 jMonkeyEngine.
  475. All other trademarks, logos and featured content are property of their respective owners.
  476. <br />
  477. <a title="Github repo" rel='noopener nofollow noreferrer' target="_blank"
  478. href="https://github.com/jMonkeyEngine/jmonkeyengine-website">
  479. <i class="fab fa-github"></i> Source on Github
  480. </a>
  481. |
  482. <a title="Report issue" rel='noopener nofollow noreferrer' target="_blank"
  483. href="https://github.com/jMonkeyEngine/jmonkeyengine-website/issues">
  484. <i class="fas fa-bug"></i> Report an issue
  485. </a>
  486. <br />
  487. <br />
  488. Website designed and developed by
  489. <a href="https://github.com/riccardobl">Riccardo Balbo</a>
  490. for the jMonkeyEngine's Community.
  491. </footer>
  492. <div id="poweredBy" >
  493. <a rel='noopener nofollow noreferrer' target="_blank" href="https://www.macstadium.com/">
  494. <img src="/images/macstadium-logo.png" />
  495. </a>
  496. <a rel='noopener nofollow noreferrer' target="_blank" href="https://www.java.com/">
  497. <img src="/images/java-logo.png" />
  498. </a>
  499. <a rel='noopener nofollow noreferrer' target="_blank" href="https://opengl.org/">
  500. <img src="/images/opengl-logo.png" />
  501. </a>
  502. </div>
  503. </body>
  504. </html>