blender_gltf.html 54 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328
  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>Exporting Models as GlTF meshes from Blender :: jMonkeyEngine Docs</title>
  7. <link rel="canonical" href="https://wiki.jmonkeyengine.org/docs/3.8/tutorials/how-to/modeling/blender/blender_gltf.html">
  8. <link rel="prev" href="blender_buffer_clearing.html">
  9. <link rel="next" href="blender_ogre_export.html">
  10. <meta name="generator" content="Antora 3.0.1">
  11. <link rel="stylesheet" href="../../../../../../_/css/site.css">
  12. <meta property="og:image" content="https://wiki.jmonkeyengine.org/_/img/iconx128.png">
  13. <meta property="og:description" content="Exporting Models as GlTF meshes from Blender">
  14. <meta property="og:title" content="jMonkeyEngine Docs">
  15. <link rel="stylesheet" href="../../../../../../_/css/site-extra.css">
  16. <link rel="stylesheet" href="../../../../../../_/css/vendor/docsearch.min.css">
  17. <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css -->
  18. <link rel="icon" href="../../../../../../_/img/favicon.ico" type="image/x-icon">
  19. </head>
  20. <body class="article">
  21. <header class="header">
  22. <nav class="navbar">
  23. <div class="navbar-brand">
  24. <a class="navbar-item" href="https://wiki.jmonkeyengine.org">
  25. <img alt="" src="../../../../../../_/img/jme-logo.png" height="32" type="image/x-icon">
  26. </a>
  27. <div class="navbar-item hide-for-print">
  28. <input id="search-input" type="text" placeholder="Search docs">
  29. </div>
  30. <button class="navbar-burger" data-target="topbar-nav">
  31. <span></span>
  32. <span></span>
  33. <span></span>
  34. </button>
  35. </div>
  36. <div id="topbar-nav" class="navbar-menu">
  37. <div class="navbar-end">
  38. <div class="navbar-item theme-switch-wrapper">
  39. <label class="theme-switch" for="checkbox">
  40. <input type="checkbox" id="checkbox" />
  41. <div class="slider round"></div>
  42. </label>
  43. </div>
  44. <a class="navbar-item" href="https://github.com/jmonkeyengine/wiki">Github</a>
  45. </div>
  46. </div>
  47. </nav>
  48. </header>
  49. <div class="body">
  50. <div class="nav-container" data-component="docs" data-version="3.4">
  51. <aside class="nav">
  52. <div class="panels">
  53. <div class="nav-panel-menu is-active" data-panel="menu">
  54. <nav class="nav-menu">
  55. <h3 class="title"><a href="../../../../documentation.html">JME</a></h3>
  56. <ul class="nav-list">
  57. <li class="nav-item" data-depth="0">
  58. <ul class="nav-list">
  59. <li class="nav-item" data-depth="1">
  60. <a class="nav-link" href="../../../../documentation.html">Getting Started</a>
  61. </li>
  62. <li class="nav-item" data-depth="1">
  63. <a class="nav-link" href="https://javadoc.jmonkeyengine.org/v3.4.1-stable">JavaDoc</a>
  64. </li>
  65. <li class="nav-item" data-depth="1">
  66. <a class="nav-link" href="../../../../release.html">Release Guide</a>
  67. </li>
  68. </ul>
  69. </li>
  70. <li class="nav-item" data-depth="0">
  71. <ul class="nav-list">
  72. <li class="nav-item" data-depth="1">
  73. <button class="nav-item-toggle"></button>
  74. <a class="nav-link" href="../../../beginner/beginner.html">Beginner Tutorials</a>
  75. <ul class="nav-list">
  76. <li class="nav-item" data-depth="2">
  77. <a class="nav-link" href="../../../beginner/hello_simpleapplication.html">Hello SimpleApplication</a>
  78. </li>
  79. <li class="nav-item" data-depth="2">
  80. <a class="nav-link" href="../../../beginner/hello_node.html">Hello Node</a>
  81. </li>
  82. <li class="nav-item" data-depth="2">
  83. <a class="nav-link" href="../../../beginner/hello_asset.html">Hello Asset</a>
  84. </li>
  85. <li class="nav-item" data-depth="2">
  86. <a class="nav-link" href="../../../beginner/hello_main_event_loop.html">Hello Update Loop</a>
  87. </li>
  88. <li class="nav-item" data-depth="2">
  89. <a class="nav-link" href="../../../beginner/hello_input_system.html">Hello Input System</a>
  90. </li>
  91. <li class="nav-item" data-depth="2">
  92. <a class="nav-link" href="../../../beginner/hello_material.html">Hello Material</a>
  93. </li>
  94. <li class="nav-item" data-depth="2">
  95. <a class="nav-link" href="../../../beginner/hello_animation.html">Hello Animation</a>
  96. </li>
  97. <li class="nav-item" data-depth="2">
  98. <a class="nav-link" href="../../../beginner/hello_picking.html">Hello Picking</a>
  99. </li>
  100. <li class="nav-item" data-depth="2">
  101. <a class="nav-link" href="../../../beginner/hello_collision.html">Hello Collision</a>
  102. </li>
  103. <li class="nav-item" data-depth="2">
  104. <a class="nav-link" href="../../../beginner/hello_terrain.html">Hello Terrain</a>
  105. </li>
  106. <li class="nav-item" data-depth="2">
  107. <a class="nav-link" href="../../../beginner/hello_audio.html">Hello Audio</a>
  108. </li>
  109. <li class="nav-item" data-depth="2">
  110. <a class="nav-link" href="../../../beginner/hello_effects.html">Hello Effects</a>
  111. </li>
  112. <li class="nav-item" data-depth="2">
  113. <a class="nav-link" href="../../../beginner/hello_physics.html">Hello Physics</a>
  114. </li>
  115. </ul>
  116. </li>
  117. <li class="nav-item" data-depth="1">
  118. <button class="nav-item-toggle"></button>
  119. <span class="nav-text">Key Concepts</span>
  120. <ul class="nav-list">
  121. <li class="nav-item" data-depth="2">
  122. <a class="nav-link" href="../../../concepts/best_practices.html">Best Practices</a>
  123. </li>
  124. <li class="nav-item" data-depth="2">
  125. <a class="nav-link" href="../../../concepts/optimization.html">Optimization</a>
  126. </li>
  127. <li class="nav-item" data-depth="2">
  128. <a class="nav-link" href="../../../concepts/faq.html">Frequently Asked Questions</a>
  129. </li>
  130. <li class="nav-item" data-depth="2">
  131. <a class="nav-link" href="../../../concepts/math_for_dummies.html">Math for Dummies</a>
  132. </li>
  133. <li class="nav-item" data-depth="2">
  134. <a class="nav-link" href="../../../concepts/math.html">Math overview</a>
  135. </li>
  136. <li class="nav-item" data-depth="2">
  137. <a class="nav-link" href="../../../concepts/math_cheet_sheet.html">3D math "cheat sheet"</a>
  138. </li>
  139. <li class="nav-item" data-depth="2">
  140. <a class="nav-link" href="../../../concepts/rotate.html">3-D Rotation</a>
  141. </li>
  142. <li class="nav-item" data-depth="2">
  143. <a class="nav-link" href="../../../concepts/math_video_tutorials.html">Math video tutorial series</a>
  144. </li>
  145. <li class="nav-item" data-depth="2">
  146. <a class="nav-link" href="../../../concepts/multi-media_asset_pipeline.html">Multi-Media Asset Pipeline</a>
  147. </li>
  148. <li class="nav-item" data-depth="2">
  149. <a class="nav-link" href="../../../concepts/the_scene_graph.html">The Scene Graph</a>
  150. </li>
  151. <li class="nav-item" data-depth="2">
  152. <a class="nav-link" href="../../../concepts/scenegraph_for_dummies.html">Scene Graph for Dummies</a>
  153. </li>
  154. <li class="nav-item" data-depth="2">
  155. <a class="nav-link" href="../../../concepts/terminology.html">3D Graphics Terminology</a>
  156. </li>
  157. <li class="nav-item" data-depth="2">
  158. <a class="nav-link" href="../../../concepts/transparency_sorting.html">Transparency Sorting</a>
  159. </li>
  160. </ul>
  161. </li>
  162. <li class="nav-item" data-depth="1">
  163. <button class="nav-item-toggle"></button>
  164. <span class="nav-text">Articles and How-to&#8217;s</span>
  165. <ul class="nav-list">
  166. <li class="nav-item" data-depth="2">
  167. <button class="nav-item-toggle"></button>
  168. <span class="nav-text">How to Model</span>
  169. <ul class="nav-list">
  170. <li class="nav-item" data-depth="3">
  171. <a class="nav-link" href="../3dsmax/3dsmax.html">3dsmax</a>
  172. </li>
  173. <li class="nav-item" data-depth="3">
  174. <button class="nav-item-toggle"></button>
  175. <a class="nav-link" href="blender.html">Blender</a>
  176. <ul class="nav-list">
  177. <li class="nav-item" data-depth="4">
  178. <a class="nav-link" href="blender_buffer_clearing.html">Buffer Clearing</a>
  179. </li>
  180. <li class="nav-item is-current-page" data-depth="4">
  181. <a class="nav-link" href="blender_gltf.html">Export as GlTF</a>
  182. </li>
  183. <li class="nav-item" data-depth="4">
  184. <a class="nav-link" href="blender_ogre_export.html">Export as Ogre XML</a>
  185. </li>
  186. <li class="nav-item" data-depth="4">
  187. <a class="nav-link" href="blender_ogre_compatibility.html">Ogre Compatibility</a>
  188. </li>
  189. <li class="nav-item" data-depth="4">
  190. <a class="nav-link" href="makehuman.html">MakeHuman</a>
  191. </li>
  192. <li class="nav-item" data-depth="4">
  193. <a class="nav-link" href="makehuman_blender_ogrexml_toolchain.html">MakeHuman toolchain</a>
  194. </li>
  195. </ul>
  196. </li>
  197. </ul>
  198. </li>
  199. <li class="nav-item" data-depth="2">
  200. <button class="nav-item-toggle"></button>
  201. <span class="nav-text">How to Animate</span>
  202. <ul class="nav-list">
  203. <li class="nav-item" data-depth="3">
  204. <button class="nav-item-toggle"></button>
  205. <span class="nav-text">Mixamo</span>
  206. <ul class="nav-list">
  207. <li class="nav-item" data-depth="4">
  208. <a class="nav-link" href="mixamo.html">Blender Models</a>
  209. </li>
  210. <li class="nav-item" data-depth="4">
  211. <button class="nav-item-toggle"></button>
  212. <span class="nav-text">Video</span>
  213. <ul class="nav-list">
  214. <li class="nav-item" data-depth="5">
  215. <a class="nav-link" href="https://youtu.be/jHgAgTWIers?list=PLv6qR9TGkz8RcUr-fOHI2SksWA4BAU9TS">Part 1- Download Model</a>
  216. </li>
  217. <li class="nav-item" data-depth="5">
  218. <a class="nav-link" href="https://youtu.be/GQJSrOpNQwI?list=PLv6qR9TGkz8RcUr-fOHI2SksWA4BAU9TS">Part 2- Rig and Animate</a>
  219. </li>
  220. <li class="nav-item" data-depth="5">
  221. <a class="nav-link" href="https://youtu.be/JzRe2Dxbcmc?list=PLv6qR9TGkz8RcUr-fOHI2SksWA4BAU9TS">Part 3- Import to JME</a>
  222. </li>
  223. <li class="nav-item" data-depth="5">
  224. <a class="nav-link" href="https://youtu.be/8wwDRDJop7k?list=PLv6qR9TGkz8RcUr-fOHI2SksWA4BAU9TS">Part 4- Play Animation</a>
  225. </li>
  226. </ul>
  227. </li>
  228. </ul>
  229. </li>
  230. </ul>
  231. </li>
  232. <li class="nav-item" data-depth="2">
  233. <a class="nav-link" href="../../debugging.html">Debugging with Wireframes</a>
  234. </li>
  235. <li class="nav-item" data-depth="2">
  236. <a class="nav-link" href="../../util/free_skymaps.html">How to create free skymaps</a>
  237. </li>
  238. <li class="nav-item" data-depth="2">
  239. <button class="nav-item-toggle"></button>
  240. <span class="nav-text">Java Tips</span>
  241. <ul class="nav-list">
  242. <li class="nav-item" data-depth="3">
  243. <a class="nav-link" href="../../java/localization.html">Localization</a>
  244. </li>
  245. <li class="nav-item" data-depth="3">
  246. <a class="nav-link" href="../../java/swing_canvas.html">Swing Canvas</a>
  247. </li>
  248. <li class="nav-item" data-depth="3">
  249. <a class="nav-link" href="../../java/logging.html">Logging</a>
  250. </li>
  251. <li class="nav-item" data-depth="3">
  252. <a class="nav-link" href="../../java/read_graphic_card_capabilites.html">Read Graphics Capabilities</a>
  253. </li>
  254. </ul>
  255. </li>
  256. <li class="nav-item" data-depth="2">
  257. <button class="nav-item-toggle"></button>
  258. <span class="nav-text">Articles</span>
  259. <ul class="nav-list">
  260. <li class="nav-item" data-depth="3">
  261. <button class="nav-item-toggle"></button>
  262. <span class="nav-text">Physically Based Rendering</span>
  263. <ul class="nav-list">
  264. <li class="nav-item" data-depth="4">
  265. <a class="nav-link" href="../../articles/pbr/pbr_part1.html">PBR – Part one</a>
  266. </li>
  267. <li class="nav-item" data-depth="4">
  268. <a class="nav-link" href="../../articles/pbr/pbr_part2.html">PBR – Part two</a>
  269. </li>
  270. <li class="nav-item" data-depth="4">
  271. <a class="nav-link" href="../../articles/pbr/pbr_part3.html">PBR – Part three</a>
  272. </li>
  273. </ul>
  274. </li>
  275. </ul>
  276. </li>
  277. </ul>
  278. </li>
  279. </ul>
  280. </li>
  281. <li class="nav-item" data-depth="0">
  282. <ul class="nav-list">
  283. <li class="nav-item" data-depth="1">
  284. <button class="nav-item-toggle"></button>
  285. <span class="nav-text">Core Engine</span>
  286. <ul class="nav-list">
  287. <li class="nav-item" data-depth="2">
  288. <a class="nav-link" href="../../../../core/app/simpleapplication.html">SimpleApplication</a>
  289. </li>
  290. <li class="nav-item" data-depth="2">
  291. <a class="nav-link" href="../../../../core/system/appsettings.html">AppSettings</a>
  292. </li>
  293. </ul>
  294. </li>
  295. <li class="nav-item" data-depth="1">
  296. <button class="nav-item-toggle"></button>
  297. <span class="nav-text">Controlling Game Logic</span>
  298. <ul class="nav-list">
  299. <li class="nav-item" data-depth="2">
  300. <a class="nav-link" href="../../../../core/app/update_loop.html">Update Loop</a>
  301. </li>
  302. <li class="nav-item" data-depth="2">
  303. <a class="nav-link" href="../../../../core/app/state/application_states.html">Application States</a>
  304. </li>
  305. <li class="nav-item" data-depth="2">
  306. <button class="nav-item-toggle"></button>
  307. <a class="nav-link" href="../../../../core/scene/control/custom_controls.html">Custom Controls</a>
  308. <ul class="nav-list">
  309. <li class="nav-item" data-depth="3">
  310. <button class="nav-item-toggle"></button>
  311. <span class="nav-text">Video</span>
  312. <ul class="nav-list">
  313. <li class="nav-item" data-depth="4">
  314. <a class="nav-link" href="https://www.youtube.com/watch?v=MNDiZ9YHIpM">Control any scene node</a>
  315. </li>
  316. <li class="nav-item" data-depth="4">
  317. <a class="nav-link" href="https://www.youtube.com/watch?v=-OzRZscLlHY">Control a character</a>
  318. </li>
  319. <li class="nav-item" data-depth="4">
  320. <a class="nav-link" href="https://wiki.jmonkeyengine.org/Scenes/SDK-UsecaseDemo_1.zip">Video Source Code</a>
  321. </li>
  322. </ul>
  323. </li>
  324. </ul>
  325. </li>
  326. <li class="nav-item" data-depth="2">
  327. <a class="nav-link" href="../../../../core/app/multithreading.html">Multithreading</a>
  328. </li>
  329. </ul>
  330. </li>
  331. <li class="nav-item" data-depth="1">
  332. <button class="nav-item-toggle"></button>
  333. <span class="nav-text">Scene Graph</span>
  334. <ul class="nav-list">
  335. <li class="nav-item" data-depth="2">
  336. <a class="nav-link" href="../../../../core/scene/traverse_scenegraph.html">Traverse SceneGraph</a>
  337. </li>
  338. <li class="nav-item" data-depth="2">
  339. <a class="nav-link" href="../../../../core/scene/spatial.html">Spatial: Node vs Geometry</a>
  340. </li>
  341. <li class="nav-item" data-depth="2">
  342. <button class="nav-item-toggle"></button>
  343. <a class="nav-link" href="../../../../core/scene/mesh.html">Mesh</a>
  344. <ul class="nav-list">
  345. <li class="nav-item" data-depth="3">
  346. <a class="nav-link" href="../../../../core/scene/custom_meshes.html">Custom Meshes</a>
  347. </li>
  348. <li class="nav-item" data-depth="3">
  349. <a class="nav-link" href="../../../../core/scene/shape/shape.html">Shape</a>
  350. </li>
  351. <li class="nav-item" data-depth="3">
  352. <a class="nav-link" href="../../../../core/scene/3d_models.html">3D Models</a>
  353. </li>
  354. </ul>
  355. </li>
  356. <li class="nav-item" data-depth="2">
  357. <a class="nav-link" href="../../../../core/asset/asset_manager.html">Asset Manager</a>
  358. </li>
  359. <li class="nav-item" data-depth="2">
  360. <a class="nav-link" href="../../../../core/export/save_and_load.html">Saving and Loading Nodes</a>
  361. </li>
  362. <li class="nav-item" data-depth="2">
  363. <a class="nav-link" href="../../../../core/collision/collision_and_intersection.html">Collision and Intersection</a>
  364. </li>
  365. <li class="nav-item" data-depth="2">
  366. <a class="nav-link" href="../../../../core/scene/control/level_of_detail.html">Level of Detail</a>
  367. </li>
  368. </ul>
  369. </li>
  370. <li class="nav-item" data-depth="1">
  371. <button class="nav-item-toggle"></button>
  372. <span class="nav-text">Animation, Scene</span>
  373. <ul class="nav-list">
  374. <li class="nav-item" data-depth="2">
  375. <a class="nav-link" href="../../../../core/animation/animation.html">Animation-Old</a>
  376. </li>
  377. <li class="nav-item" data-depth="2">
  378. <a class="nav-link" href="../../../../core/cinematic/cinematics.html">Cinematics (cutscenes, fake destruction physics)</a>
  379. </li>
  380. <li class="nav-item" data-depth="2">
  381. <a class="nav-link" href="../../../../core/cinematic/motionpath.html">MotionPaths and Waypoints</a>
  382. </li>
  383. </ul>
  384. </li>
  385. <li class="nav-item" data-depth="1">
  386. <button class="nav-item-toggle"></button>
  387. <span class="nav-text">Material, Light, Shadow</span>
  388. <ul class="nav-list">
  389. <li class="nav-item" data-depth="2">
  390. <a class="nav-link" href="../../../../core/material/how_to_use_materials.html">How to use Materials</a>
  391. </li>
  392. <li class="nav-item" data-depth="2">
  393. <a class="nav-link" href="../../../../core/material/j3m_material_files.html">.j3m Material Files</a>
  394. </li>
  395. <li class="nav-item" data-depth="2">
  396. <a class="nav-link" href="../../../../core/material/material_definitions.html">.j3md Material Definitions</a>
  397. </li>
  398. <li class="nav-item" data-depth="2">
  399. <a class="nav-link" href="../../../../core/material/materials_overview.html">.j3md Properties</a>
  400. </li>
  401. <li class="nav-item" data-depth="2">
  402. <a class="nav-link" href="../../../../core/shader/jme3_shaders.html">Shaders and JME3</a>
  403. </li>
  404. <li class="nav-item" data-depth="2">
  405. <a class="nav-link" href="../../../../core/shader/jme3_shadernodes.html">Shader Node System</a>
  406. </li>
  407. <li class="nav-item" data-depth="2">
  408. <a class="nav-link" href="../../../../core/shader/shader_video_tutorials.html">Shader Video Tutorials</a>
  409. </li>
  410. <li class="nav-item" data-depth="2">
  411. <a class="nav-link" href="../../../../core/light/light_and_shadow.html">Light and Shadow</a>
  412. </li>
  413. <li class="nav-item" data-depth="2">
  414. <a class="nav-link" href="../../../../core/texture/anisotropic_filtering.html">Anisotropic Filtering</a>
  415. </li>
  416. <li class="nav-item" data-depth="2">
  417. <a class="nav-link" href="../../../../core/system/jme3_srgbpipeline.html">Gamma Correction</a>
  418. </li>
  419. </ul>
  420. </li>
  421. <li class="nav-item" data-depth="1">
  422. <button class="nav-item-toggle"></button>
  423. <span class="nav-text">Audio, Video</span>
  424. <ul class="nav-list">
  425. <li class="nav-item" data-depth="2">
  426. <a class="nav-link" href="../../../../core/audio/audio.html">Playing Sounds</a>
  427. </li>
  428. <li class="nav-item" data-depth="2">
  429. <a class="nav-link" href="../../../../core/audio/audio_environment_presets.html">Audio Environment Presets</a>
  430. </li>
  431. <li class="nav-item" data-depth="2">
  432. <a class="nav-link" href="../../../../core/app/state/screenshots.html">Capture Screenshots</a>
  433. </li>
  434. <li class="nav-item" data-depth="2">
  435. <a class="nav-link" href="../../../../core/app/state/capture_audio_video_to_a_file.html">Capture Audio/Video</a>
  436. </li>
  437. </ul>
  438. </li>
  439. <li class="nav-item" data-depth="1">
  440. <button class="nav-item-toggle"></button>
  441. <span class="nav-text">Filter, Effect</span>
  442. <ul class="nav-list">
  443. <li class="nav-item" data-depth="2">
  444. <a class="nav-link" href="../../../../core/effect/effects_overview.html">Overview</a>
  445. </li>
  446. <li class="nav-item" data-depth="2">
  447. <a class="nav-link" href="../../../../core/effect/bloom_and_glow.html">Bloom and Glow</a>
  448. </li>
  449. <li class="nav-item" data-depth="2">
  450. <a class="nav-link" href="../../../../core/effect/particle_emitters.html">Particle Emitters</a>
  451. </li>
  452. </ul>
  453. </li>
  454. <li class="nav-item" data-depth="1">
  455. <button class="nav-item-toggle"></button>
  456. <span class="nav-text">Landscapes</span>
  457. <ul class="nav-list">
  458. <li class="nav-item" data-depth="2">
  459. <a class="nav-link" href="../../../../core/util/sky.html">Sky</a>
  460. </li>
  461. <li class="nav-item" data-depth="2">
  462. <a class="nav-link" href="../../../../core/terrain/terrain.html">Terrain (TerraMonkey)</a>
  463. </li>
  464. <li class="nav-item" data-depth="2">
  465. <a class="nav-link" href="../../../../core/collision/terrain_collision.html">Terrain Collision</a>
  466. </li>
  467. <li class="nav-item" data-depth="2">
  468. <a class="nav-link" href="../../../../core/effect/water.html">Simple Water</a>
  469. </li>
  470. <li class="nav-item" data-depth="2">
  471. <a class="nav-link" href="../../../../core/effect/post-processor_water.html">Post-Processor Water</a>
  472. </li>
  473. </ul>
  474. </li>
  475. <li class="nav-item" data-depth="1">
  476. <button class="nav-item-toggle"></button>
  477. <span class="nav-text">Camera</span>
  478. <ul class="nav-list">
  479. <li class="nav-item" data-depth="2">
  480. <a class="nav-link" href="../../../../core/renderer/camera.html">Camera</a>
  481. </li>
  482. <li class="nav-item" data-depth="2">
  483. <a class="nav-link" href="../../../../core/renderer/making_the_camera_follow_a_character.html">Follow a Character</a>
  484. </li>
  485. <li class="nav-item" data-depth="2">
  486. <a class="nav-link" href="../../../../core/renderer/remote-controlling_the_camera.html">Remote-Controlling</a>
  487. </li>
  488. <li class="nav-item" data-depth="2">
  489. <a class="nav-link" href="../../../../core/renderer/multiple_camera_views.html">Multiple Camera Views</a>
  490. </li>
  491. <li class="nav-item" data-depth="2">
  492. <a class="nav-link" href="../../../../core/renderer/jme3_renderbuckets.html">Render Buckets</a>
  493. </li>
  494. </ul>
  495. </li>
  496. <li class="nav-item" data-depth="1">
  497. <button class="nav-item-toggle"></button>
  498. <span class="nav-text">User Interaction</span>
  499. <ul class="nav-list">
  500. <li class="nav-item" data-depth="2">
  501. <a class="nav-link" href="../../../../core/input/input_handling.html">Input Handling</a>
  502. </li>
  503. <li class="nav-item" data-depth="2">
  504. <a class="nav-link" href="../../../../core/input/combo_moves.html">Combo Moves</a>
  505. </li>
  506. <li class="nav-item" data-depth="2">
  507. <a class="nav-link" href="../../../../core/input/mouse_picking.html">Mouse Picking</a>
  508. </li>
  509. </ul>
  510. </li>
  511. <li class="nav-item" data-depth="1">
  512. <button class="nav-item-toggle"></button>
  513. <a class="nav-link" href="../../../../core/gui/topic_gui.html">Graphical User Interface</a>
  514. <ul class="nav-list">
  515. <li class="nav-item" data-depth="2">
  516. <button class="nav-item-toggle"></button>
  517. <span class="nav-text">Nifty GUI</span>
  518. <ul class="nav-list">
  519. <li class="nav-item" data-depth="3">
  520. <a class="nav-link" href="../../../../core/gui/nifty_gui.html">Integration Tutorial</a>
  521. </li>
  522. <li class="nav-item" data-depth="3">
  523. <a class="nav-link" href="../../../../core/gui/nifty_gui_best_practices.html">Best Practices</a>
  524. </li>
  525. <li class="nav-item" data-depth="3">
  526. <a class="nav-link" href="../../../../core/gui/nifty_gui_scenarios.html">Scenarios</a>
  527. </li>
  528. </ul>
  529. </li>
  530. <li class="nav-item" data-depth="2">
  531. <a class="nav-link" href="../../../../core/ui/hud.html">Head-Up Display (HUD)</a>
  532. </li>
  533. </ul>
  534. </li>
  535. <li class="nav-item" data-depth="1">
  536. <button class="nav-item-toggle"></button>
  537. <span class="nav-text">Virtual Reality</span>
  538. <ul class="nav-list">
  539. <li class="nav-item" data-depth="2">
  540. <a class="nav-link" href="../../../../core/vr/virtualreality.html">Virtual Reality</a>
  541. </li>
  542. <li class="nav-item" data-depth="2">
  543. <a class="nav-link" href="../../../../core/vr/virtualrealitycontrollers.html">Virtual Reality Controllers</a>
  544. </li>
  545. </ul>
  546. </li>
  547. </ul>
  548. </li>
  549. <li class="nav-item" data-depth="0">
  550. <ul class="nav-list">
  551. <li class="nav-item" data-depth="1">
  552. <button class="nav-item-toggle"></button>
  553. <a class="nav-link" href="../../../../physics/physics.html">Physics</a>
  554. <ul class="nav-list">
  555. <li class="nav-item" data-depth="2">
  556. <a class="nav-link" href="../../../../physics/bullet_multithreading.html">Multi-Threaded Physics</a>
  557. </li>
  558. <li class="nav-item" data-depth="2">
  559. <a class="nav-link" href="../../../../physics/collision/physics_listeners.html">Collision Detection</a>
  560. </li>
  561. <li class="nav-item" data-depth="2">
  562. <a class="nav-link" href="../../../../physics/joint/hinges_and_joints.html">Hinges and Joints</a>
  563. </li>
  564. <li class="nav-item" data-depth="2">
  565. <a class="nav-link" href="../../../../physics/control/walking_character.html">Walking Character</a>
  566. </li>
  567. <li class="nav-item" data-depth="2">
  568. <a class="nav-link" href="../../../../physics/control/ragdoll.html">Ragdoll</a>
  569. </li>
  570. <li class="nav-item" data-depth="2">
  571. <a class="nav-link" href="../../../../physics/control/vehicles.html">Vehicles</a>
  572. </li>
  573. <li class="nav-item" data-depth="2">
  574. <a class="nav-link" href="../../../../physics/control/softbody.html">Softbody</a>
  575. </li>
  576. <li class="nav-item" data-depth="2">
  577. <a class="nav-link" href="../../../../physics/bullet_pitfalls.html">Bullet Physics Pitfalls</a>
  578. </li>
  579. </ul>
  580. </li>
  581. </ul>
  582. </li>
  583. <li class="nav-item" data-depth="0">
  584. <ul class="nav-list">
  585. <li class="nav-item" data-depth="1">
  586. <button class="nav-item-toggle"></button>
  587. <span class="nav-text">Networking</span>
  588. <ul class="nav-list">
  589. <li class="nav-item" data-depth="2">
  590. <a class="nav-link" href="../../../../networking/networking.html">Networking (SpiderMonkey)</a>
  591. </li>
  592. <li class="nav-item" data-depth="2">
  593. <a class="nav-link" href="../../../../networking/headless_server.html">Headless Server</a>
  594. </li>
  595. <li class="nav-item" data-depth="2">
  596. <a class="nav-link" href="../../../../networking/monkey_zone.html">Multi-Player Demo Code</a>
  597. </li>
  598. <li class="nav-item" data-depth="2">
  599. <a class="nav-link" href="../../../../networking/networking_video_tutorials.html">Networking Video Tutorials</a>
  600. </li>
  601. </ul>
  602. </li>
  603. </ul>
  604. </li>
  605. <li class="nav-item" data-depth="0">
  606. <ul class="nav-list">
  607. <li class="nav-item" data-depth="1">
  608. <button class="nav-item-toggle"></button>
  609. <span class="nav-text">User Contributions</span>
  610. <ul class="nav-list">
  611. <li class="nav-item" data-depth="2">
  612. <a class="nav-link" href="../../../../contributions/contributions.html">User Made Utilities</a>
  613. </li>
  614. <li class="nav-item" data-depth="2">
  615. <button class="nav-item-toggle"></button>
  616. <span class="nav-text">Shader</span>
  617. <ul class="nav-list">
  618. <li class="nav-item" data-depth="3">
  619. <a class="nav-link" href="../../../../contributions/shader/shaderblow_project.html">ShaderBlow Project</a>
  620. </li>
  621. </ul>
  622. </li>
  623. <li class="nav-item" data-depth="2">
  624. <button class="nav-item-toggle"></button>
  625. <span class="nav-text">Landscapes</span>
  626. <ul class="nav-list">
  627. <li class="nav-item" data-depth="3">
  628. <a class="nav-link" href="../../../../contributions/lanscapes/vegetationsystem/vegetationsystem.html">Vegetation System</a>
  629. </li>
  630. </ul>
  631. </li>
  632. <li class="nav-item" data-depth="2">
  633. <button class="nav-item-toggle"></button>
  634. <span class="nav-text">Networking</span>
  635. <ul class="nav-list">
  636. <li class="nav-item" data-depth="3">
  637. <a class="nav-link" href="../../../../contributions/networking/open_game_finder.html">Open Game Finder</a>
  638. </li>
  639. </ul>
  640. </li>
  641. <li class="nav-item" data-depth="2">
  642. <button class="nav-item-toggle"></button>
  643. <span class="nav-text">Entity System</span>
  644. <ul class="nav-list">
  645. <li class="nav-item" data-depth="3">
  646. <a class="nav-link" href="#es/entitysystem.adoc">The Zay-ES Entity System</a>
  647. </li>
  648. </ul>
  649. </li>
  650. <li class="nav-item" data-depth="2">
  651. <button class="nav-item-toggle"></button>
  652. <span class="nav-text">Artificial Intelligence</span>
  653. <ul class="nav-list">
  654. <li class="nav-item" data-depth="3">
  655. <a class="nav-link" href="../../../../contributions/ai/recast.html">Recast Navigation</a>
  656. </li>
  657. <li class="nav-item" data-depth="3">
  658. <a class="nav-link" href="../../../../contributions/ai/building_recast.html">Updating and building Recast Native Bindings</a>
  659. </li>
  660. <li class="nav-item" data-depth="3">
  661. <a class="nav-link" href="../../../../contributions/ai/monkey_brains.html">Monkey Brains</a>
  662. </li>
  663. <li class="nav-item" data-depth="3">
  664. <a class="nav-link" href="../../../../contributions/ai/steer_behaviours.html">Steer Behaviours</a>
  665. </li>
  666. <li class="nav-item" data-depth="3">
  667. <a class="nav-link" href="../../../../contributions/ai/jme3_ai.html">jME3 Artificial Intelligence</a>
  668. </li>
  669. </ul>
  670. </li>
  671. <li class="nav-item" data-depth="2">
  672. <button class="nav-item-toggle"></button>
  673. <a class="nav-link" href="../../../../contributions/gui/topic_contributions_gui.html">GUI</a>
  674. <ul class="nav-list">
  675. <li class="nav-item" data-depth="3">
  676. <a class="nav-link" href="../../../../contributions/contributions.html#lemur-gui-library">Lemur - a native jME3 GUI library with scene graph tools</a>
  677. </li>
  678. <li class="nav-item" data-depth="3">
  679. <a class="nav-link" href="../../../../contributions/contributions.html#tonegodgui">tonegodGUI - a native jME3 GUI library</a>
  680. </li>
  681. <li class="nav-item" data-depth="3">
  682. <a class="nav-link" href="../../../../contributions/contributions.html#immediate-graphical-user-interface">Immediate graphical user interface</a>
  683. </li>
  684. </ul>
  685. </li>
  686. <li class="nav-item" data-depth="2">
  687. <button class="nav-item-toggle"></button>
  688. <span class="nav-text">Tools</span>
  689. <ul class="nav-list">
  690. <li class="nav-item" data-depth="3">
  691. <a class="nav-link" href="../../../../contributions/tools/navigation.html">Mercator Projection Tool (Marine Navigation)</a>
  692. </li>
  693. <li class="nav-item" data-depth="3">
  694. <a class="nav-link" href="../../../../contributions/tools/charts.html">Visualizing Maps in JME3 (Marine Charts)</a>
  695. </li>
  696. </ul>
  697. </li>
  698. <li class="nav-item" data-depth="2">
  699. <button class="nav-item-toggle"></button>
  700. <span class="nav-text">Projects</span>
  701. <ul class="nav-list">
  702. <li class="nav-item" data-depth="3">
  703. <a class="nav-link" href="../../../../contributions/projects/rise_of_mutants_project.html">Rise of Mutants Project</a>
  704. </li>
  705. </ul>
  706. </li>
  707. </ul>
  708. </li>
  709. </ul>
  710. </li>
  711. <li class="nav-item" data-depth="0">
  712. <ul class="nav-list">
  713. <li class="nav-item" data-depth="1">
  714. <button class="nav-item-toggle"></button>
  715. <a class="nav-link" href="../../../../sdk/sdk.html">SDK</a>
  716. <ul class="nav-list">
  717. <li class="nav-item" data-depth="2">
  718. <button class="nav-item-toggle"></button>
  719. <span class="nav-text">Video Tutorials</span>
  720. <ul class="nav-list">
  721. <li class="nav-item" data-depth="3">
  722. <button class="nav-item-toggle"></button>
  723. <span class="nav-text">SDK Use Case Tutorials</span>
  724. <ul class="nav-list">
  725. <li class="nav-item" data-depth="4">
  726. <a class="nav-link" href="http://www.youtube.com/watch?v=-OzRZscLlHY">Demo 1 (Quixote demo)</a>
  727. </li>
  728. <li class="nav-item" data-depth="4">
  729. <a class="nav-link" href="http://www.youtube.com/watch?v=6-YWxD3JByE">Demo 2 (Models and Materials)</a>
  730. </li>
  731. </ul>
  732. </li>
  733. <li class="nav-item" data-depth="3">
  734. <button class="nav-item-toggle"></button>
  735. <span class="nav-text">SDK Tutorials</span>
  736. <ul class="nav-list">
  737. <li class="nav-item" data-depth="4">
  738. <a class="nav-link" href="http://www.youtube.com/watch?v=M1_0pbeyJzI">Basics</a>
  739. </li>
  740. <li class="nav-item" data-depth="4">
  741. <a class="nav-link" href="http://www.youtube.com/watch?v=nL7woH40i5c">Importing Models</a>
  742. </li>
  743. <li class="nav-item" data-depth="4">
  744. <a class="nav-link" href="http://www.youtube.com/watch?v=DUmgAjiNzhY">Dragging&amp;Dropping Nodes</a>
  745. </li>
  746. <li class="nav-item" data-depth="4">
  747. <a class="nav-link" href="http://www.youtube.com/watch?v=ntPAmtsQ6eM">Scene Composing</a>
  748. </li>
  749. <li class="nav-item" data-depth="4">
  750. <a class="nav-link" href="http://www.youtube.com/watch?v=zgPV3W6dD4s">Terrain with Collision Shape</a>
  751. </li>
  752. <li class="nav-item" data-depth="4">
  753. <a class="nav-link" href="http://www.youtube.com/watch?v=Feu3-mrpolc">Working with Materials</a>
  754. </li>
  755. <li class="nav-item" data-depth="4">
  756. <a class="nav-link" href="http://www.youtube.com/watch?v=MNDiZ9YHIpM">Custom Controls</a>
  757. </li>
  758. <li class="nav-item" data-depth="4">
  759. <a class="nav-link" href="http://www.youtube.com/watch?v=oZnssg8TBWQ">WebStart Deployment</a>
  760. </li>
  761. <li class="nav-item" data-depth="4">
  762. <a class="nav-link" href="http://www.youtube.com/watch?v=D7JM4VMKqPc">Animation and Effect TrackEditing</a>
  763. </li>
  764. </ul>
  765. </li>
  766. </ul>
  767. </li>
  768. <li class="nav-item" data-depth="2">
  769. <button class="nav-item-toggle"></button>
  770. <span class="nav-text">Getting Started</span>
  771. <ul class="nav-list">
  772. <li class="nav-item" data-depth="3">
  773. <a class="nav-link" href="../../../../sdk/update_center.html">Updating jMonkeyEngine SDK</a>
  774. </li>
  775. <li class="nav-item" data-depth="3">
  776. <a class="nav-link" href="../../../../sdk/troubleshooting.html">Troubleshooting</a>
  777. </li>
  778. </ul>
  779. </li>
  780. <li class="nav-item" data-depth="2">
  781. <button class="nav-item-toggle"></button>
  782. <span class="nav-text">Java Development Features</span>
  783. <ul class="nav-list">
  784. <li class="nav-item" data-depth="3">
  785. <a class="nav-link" href="../../../../sdk/project_creation.html">Project Creation</a>
  786. </li>
  787. <li class="nav-item" data-depth="3">
  788. <a class="nav-link" href="../../../../sdk/code_editor.html">Code Editor and Palette</a>
  789. </li>
  790. <li class="nav-item" data-depth="3">
  791. <a class="nav-link" href="../../../../sdk/version_control.html">File Version Control</a>
  792. </li>
  793. <li class="nav-item" data-depth="3">
  794. <a class="nav-link" href="../../../../sdk/debugging_profiling_testing.html">Debug, Profile, Test</a>
  795. </li>
  796. <li class="nav-item" data-depth="3">
  797. <button class="nav-item-toggle"></button>
  798. <a class="nav-link" href="../../../../sdk/application_deployment.html">Application Deployment</a>
  799. <ul class="nav-list">
  800. <li class="nav-item" data-depth="4">
  801. <a class="nav-link" href="../../../../sdk/default_build_script.html">Default Build Script</a>
  802. </li>
  803. <li class="nav-item" data-depth="4">
  804. <a class="nav-link" href="../../../../sdk/android.html">Android</a>
  805. </li>
  806. <li class="nav-item" data-depth="4">
  807. <a class="nav-link" href="../../../../sdk/android_cheat_sheet.html">Android Cheat Sheet</a>
  808. </li>
  809. <li class="nav-item" data-depth="4">
  810. <a class="nav-link" href="../../../../sdk/ios.html">iOS</a>
  811. </li>
  812. </ul>
  813. </li>
  814. </ul>
  815. </li>
  816. <li class="nav-item" data-depth="2">
  817. <button class="nav-item-toggle"></button>
  818. <span class="nav-text">Unique Features</span>
  819. <ul class="nav-list">
  820. <li class="nav-item" data-depth="3">
  821. <button class="nav-item-toggle"></button>
  822. <a class="nav-link" href="../../../../sdk/model_loader_and_viewer.html">Import, View, Convert Models</a>
  823. <ul class="nav-list">
  824. <li class="nav-item" data-depth="4">
  825. <a class="nav-link" href="../../../../sdk/asset_packs.html">Asset Packs</a>
  826. </li>
  827. </ul>
  828. </li>
  829. <li class="nav-item" data-depth="3">
  830. <a class="nav-link" href="../../../../sdk/scene_explorer.html">The SceneExplorer</a>
  831. </li>
  832. <li class="nav-item" data-depth="3">
  833. <a class="nav-link" href="../../../../sdk/scene_composer.html">Composing a Scene</a>
  834. </li>
  835. <li class="nav-item" data-depth="3">
  836. <a class="nav-link" href="../../../../sdk/terrain_editor.html">Terrain Editor</a>
  837. </li>
  838. <li class="nav-item" data-depth="3">
  839. <a class="nav-link" href="../../../../sdk/sample_code.html">Sample Code</a>
  840. </li>
  841. <li class="nav-item" data-depth="3">
  842. <a class="nav-link" href="../../../../sdk/material_editing.html">Material Editing</a>
  843. </li>
  844. <li class="nav-item" data-depth="3">
  845. <a class="nav-link" href="../../../../sdk/font_creation.html">Creating Bitmap Fonts</a>
  846. </li>
  847. <li class="nav-item" data-depth="3">
  848. <button class="nav-item-toggle"></button>
  849. <a class="nav-link" href="https://hub.jmonkeyengine.org/t/effecttrack-and-audiotrack-editing-in-the-sdk/23378">Audio and Effect Track Editing</a>
  850. <ul class="nav-list">
  851. <li class="nav-item" data-depth="4">
  852. <a class="nav-link" href="https://www.youtube.com/watch?v=D7JM4VMKqPc">Video: Effect and AudioTrack editing in jMonkeyEngine 3 sdk</a>
  853. </li>
  854. </ul>
  855. </li>
  856. <li class="nav-item" data-depth="3">
  857. <a class="nav-link" href="../../../../sdk/filters.html">Post-Processor Filter Editor and Viewer</a>
  858. </li>
  859. <li class="nav-item" data-depth="3">
  860. <a class="nav-link" href="../../../../core/app/state/application_states.html">Application States</a>
  861. </li>
  862. <li class="nav-item" data-depth="3">
  863. <a class="nav-link" href="../../../../core/scene/control/custom_controls.html">Custom Controls</a>
  864. </li>
  865. <li class="nav-item" data-depth="3">
  866. <a class="nav-link" href="../../../../sdk/vehicle_creator.html">Vehicle Creator</a>
  867. </li>
  868. </ul>
  869. </li>
  870. <li class="nav-item" data-depth="2">
  871. <button class="nav-item-toggle"></button>
  872. <span class="nav-text">Advanced Usage</span>
  873. <ul class="nav-list">
  874. <li class="nav-item" data-depth="3">
  875. <a class="nav-link" href="../../../../sdk/build_platform.html">Building jMonkeyEngine SDK</a>
  876. </li>
  877. <li class="nav-item" data-depth="3">
  878. <a class="nav-link" href="../../../../sdk/use_own_jme.html#.adoc">Using your own (modified) version of jME3 in jMonkeyEngine SDK</a>
  879. </li>
  880. <li class="nav-item" data-depth="3">
  881. <a class="nav-link" href="../../../../sdk/increasing_heap_memory.html">Increasing Heap Memory</a>
  882. </li>
  883. <li class="nav-item" data-depth="3">
  884. <a class="nav-link" href="../../../../sdk/log_files.html">Log Files</a>
  885. </li>
  886. </ul>
  887. </li>
  888. <li class="nav-item" data-depth="2">
  889. <button class="nav-item-toggle"></button>
  890. <span class="nav-text">Available external plugins</span>
  891. <ul class="nav-list">
  892. <li class="nav-item" data-depth="3">
  893. <a class="nav-link" href="../../../../contributions/contributions.html">Contributions</a>
  894. </li>
  895. <li class="nav-item" data-depth="3">
  896. <a class="nav-link" href="../../../../sdk/neotexture.html">Neo Texture Editor for procedural textures</a>
  897. </li>
  898. <li class="nav-item" data-depth="3">
  899. <a class="nav-link" href="http://www.youtube.com/watch?v=yS9a9o4WzL8">Video: Mesh Tool &amp; Physics Editor</a>
  900. </li>
  901. </ul>
  902. </li>
  903. <li class="nav-item" data-depth="2">
  904. <button class="nav-item-toggle"></button>
  905. <a class="nav-link" href="../../../../sdk/development.html">Developing plugins for jMonkeyEngine SDK</a>
  906. <ul class="nav-list">
  907. <li class="nav-item" data-depth="3">
  908. <a class="nav-link" href="../../../../sdk/development/setup.html">Creating a plugin</a>
  909. </li>
  910. <li class="nav-item" data-depth="3">
  911. <a class="nav-link" href="../../../../sdk/development/general.html">Creating components</a>
  912. </li>
  913. <li class="nav-item" data-depth="3">
  914. <a class="nav-link" href="../../../../sdk/development/scene.html">The Main Scene</a>
  915. </li>
  916. <li class="nav-item" data-depth="3">
  917. <a class="nav-link" href="../../../../sdk/development/sceneexplorer.html">The Scene Explorer</a>
  918. </li>
  919. <li class="nav-item" data-depth="3">
  920. <a class="nav-link" href="../../../../sdk/development/projects_assets.html">Projects and Assets</a>
  921. </li>
  922. <li class="nav-item" data-depth="3">
  923. <a class="nav-link" href="../../../../sdk/development/extension_library.html">Create a library plugin from a jar file</a>
  924. </li>
  925. <li class="nav-item" data-depth="3">
  926. <a class="nav-link" href="../../../../sdk/development/model_loader.html">Create a new or custom model filetype and loader</a>
  927. </li>
  928. </ul>
  929. </li>
  930. </ul>
  931. </li>
  932. </ul>
  933. </li>
  934. </ul>
  935. </nav>
  936. </div>
  937. <div class="nav-panel-explore" data-panel="explore">
  938. <div class="context">
  939. <span class="title">JME</span>
  940. <span class="version">3.4</span>
  941. </div>
  942. <ul class="components">
  943. <li class="component is-current">
  944. <span class="title">JME</span>
  945. <ul class="versions">
  946. <li class="version">
  947. <a href="../../../../../3.8/documentation.html">3.8</a>
  948. </li>
  949. <li class="version is-current">
  950. <a href="../../../../documentation.html">3.4</a>
  951. </li>
  952. <li class="version">
  953. <a href="../../../../../3.3/documentation.html">3.3</a>
  954. </li>
  955. <li class="version">
  956. <a href="../../../../../3.2/documentation.html">3.2</a>
  957. </li>
  958. </ul>
  959. </li>
  960. <li class="component">
  961. <span class="title">Wiki Contribution</span>
  962. <ul class="versions">
  963. <li class="version">
  964. <a href="../../../../../../docs-wiki/3.8/wiki_contributor.html">3.8</a>
  965. </li>
  966. </ul>
  967. </li>
  968. <li class="component">
  969. <span class="title">Wiki UI</span>
  970. <ul class="versions">
  971. <li class="version">
  972. <a href="../../../../../../wiki-ui/index.html">master</a>
  973. </li>
  974. </ul>
  975. </li>
  976. </ul>
  977. </div>
  978. </div>
  979. </aside>
  980. </div>
  981. <main class="article">
  982. <div class="toolbar" role="navigation">
  983. <button class="nav-toggle"></button>
  984. <nav class="breadcrumbs" aria-label="breadcrumbs">
  985. <ul>
  986. <li><a href="../../../../documentation.html">JME</a></li>
  987. <li>Articles and How-to&#8217;s</li>
  988. <li>How to Model</li>
  989. <li><a href="blender.html">Blender</a></li>
  990. <li><a href="blender_gltf.html">Export as GlTF</a></li>
  991. </ul>
  992. </nav>
  993. <div class="page-versions">
  994. <button class="version-menu-toggle" title="Show other versions of page">3.4</button>
  995. <div class="version-menu">
  996. <a class="version" href="../../../../../3.8/tutorials/how-to/modeling/blender/blender_gltf.html">3.8</a>
  997. <a class="version is-current" href="blender_gltf.html">3.4</a>
  998. <a class="version" href="../../../../../3.3/tutorials/how-to/modeling/blender/blender_gltf.html">3.3</a>
  999. <a class="version" href="../../../../../3.2/tutorials/how-to/modeling/blender/blender_gltf.html">3.2</a>
  1000. </div>
  1001. </div>
  1002. <div class="edit-this-page"><a href="https://github.com/jMonkeyEngine/wiki/edit/v3.4/docs/modules/tutorials/pages/how-to/modeling/blender/blender_gltf.adoc">Edit this Page</a></div>
  1003. </div>
  1004. <div class="content">
  1005. <article class="doc">
  1006. <h1 class="page">Exporting Models as GlTF meshes from Blender</h1>
  1007. <div id="preamble">
  1008. <div class="sectionbody">
  1009. <div class="paragraph">
  1010. <p>This section discusses how to export scenes from Blender (2.8+) in glTF format appropriate for use by <code>AssetManager.loadModel</code>.</p>
  1011. </div>
  1012. </div>
  1013. </div>
  1014. <div class="sect1">
  1015. <h2 id="background"><a class="anchor" href="#background"></a>Background</h2>
  1016. <div class="sectionbody">
  1017. <div class="paragraph">
  1018. <p>glTF (GL Transmission Format) is a specification for transmitting 3D scenes between applications. The specification is owned by Khronos Group but is publicly available and can be used royalty free. It is growing in popularity as a robust and efficient transmission mechanism.</p>
  1019. </div>
  1020. <div class="paragraph">
  1021. <p>jME3 introduced a loader for glTF in 2017 (written by nehon) and it has since been included as a standard part of the <code>jme3-plugins</code> target. There are some limitations of the importer which can be avoided by following the guidelines below.</p>
  1022. </div>
  1023. <div class="paragraph">
  1024. <p>Ultimately all jME projects should use the <code>.j3o</code> format for storing assets. However during development, it&#8217;s required to export scenes from Blender in a format suitable for conversion (either through the SDK or directly through code).</p>
  1025. </div>
  1026. <div class="paragraph">
  1027. <p>Use of glTF (or another standard format) has a significant advantage as new versions of Blender with significant enhancements are released fairly regularly.</p>
  1028. </div>
  1029. <div class="admonitionblock note">
  1030. <table>
  1031. <tr>
  1032. <td class="icon">
  1033. <i class="fa icon-note" title="Note"></i>
  1034. </td>
  1035. <td class="content">
  1036. Blender 2.7 had a number of problems in exporting glTF; these notes refer exclusively to Blender 2.8+
  1037. </td>
  1038. </tr>
  1039. </table>
  1040. </div>
  1041. </div>
  1042. </div>
  1043. <div class="sect1">
  1044. <h2 id="creating-models"><a class="anchor" href="#creating-models"></a>Creating Models</h2>
  1045. <div class="sectionbody">
  1046. <div class="paragraph">
  1047. <p>Details of how to create models in Blender that are compatible with jME are given at <a href="blender.html" class="xref page">Creating assets in Blender3D</a>. Follow all details on that page for creating models before attempting an export.</p>
  1048. </div>
  1049. <div class="paragraph">
  1050. <p>Before exporting a model all transforms need to be applied. This performs the required transforms on the vertices in a mesh to reset the transforms on the object. To apply all transforms in Blender 2.8, select each object (in object mode, not edit mode) then choose from the <code>Object</code> menu <code>Apply/All Transforms</code>.</p>
  1051. </div>
  1052. <div class="paragraph">
  1053. <p>As always, see <a href="../../../concepts/best_practices.html" class="xref page">Best Practices</a> for additional information.</p>
  1054. </div>
  1055. <div class="admonitionblock tip">
  1056. <table>
  1057. <tr>
  1058. <td class="icon">
  1059. <i class="fa icon-tip" title="Tip"></i>
  1060. </td>
  1061. <td class="content">
  1062. <div class="paragraph">
  1063. <p><a href="blender_buffer_clearing.html" class="xref page">Blender Buffer Clearing</a> should be performed prior to exporting any model from Blender.</p>
  1064. </div>
  1065. </td>
  1066. </tr>
  1067. </table>
  1068. </div>
  1069. </div>
  1070. </div>
  1071. <div class="sect1">
  1072. <h2 id="animations"><a class="anchor" href="#animations"></a>Animations</h2>
  1073. <div class="sectionbody">
  1074. <div class="olist arabic">
  1075. <ol class="arabic">
  1076. <li>
  1077. <p>Blender supports non-linear transitions using F-Curves. However the glTF importer only supports linear transitions. There are 2 ways to ensure all transitions are linear:</p>
  1078. <div class="olist loweralpha">
  1079. <ol class="loweralpha" type="a">
  1080. <li>
  1081. <p>In Blender 2.8, go to the graph editor, select all keys (menu select/all) and then change to linear interpolation (menu key/interpolation mode/linear).</p>
  1082. </li>
  1083. <li>
  1084. <p>At export time, force the export to create interpolated keyframes using sampling. This can be done in Python using <code>export_force_sampling=True</code> or selecting <code>Always Sample Animations</code> in the <code>Animation</code> tab of the export function. By default a sample is created from each frame of the animation. This can be changed in Python using <code>export_frame_step=n</code> where n is number of frames between samples or changing the sampling rate in the <code>Animation</code> tab of the export function.</p>
  1085. </li>
  1086. </ol>
  1087. </div>
  1088. </li>
  1089. <li>
  1090. <p>Blender has a powerful tool to allow bones to be posed by just specifying the position of the final bone in a chain and allowing Blender to work out where to position attached bones. This tool is a bone constraint called IK (Inverse Kinematics) and it can save a lot of time in building animations. However jME does not support IK constraints so any use of IK needs to be "baked" before the export. To do this, select the appropriate bone, go to the bone contraints tab and apply the IK constraint. A useful workflow is to save the file, bake the constrain, export to glTF then revert to the saved file to restore the IK constraint.</p>
  1091. </li>
  1092. <li>
  1093. <p>All actions in Blender will be added as animations to the <code>Node</code> corresponding to the armature. In addition, the action last tweaked within Blender will also be added as an animation to the object&#8217;s node. This is just an artifact of the organisation of actions within Blender and should be ignored within jME.</p>
  1094. </li>
  1095. <li>
  1096. <p>glTF models loaded using jME 3.3 will create animations that use the new animation system introduced in jME 3.3.</p>
  1097. <div class="paragraph">
  1098. <p>See <a href="https://hub.jmonkeyengine.org/t/monkanim-v2/39877">https://hub.jmonkeyengine.org/t/monkanim-v2/39877</a> for more info about the new animation system.</p>
  1099. </div>
  1100. </li>
  1101. </ol>
  1102. </div>
  1103. </div>
  1104. </div>
  1105. <div class="sect1">
  1106. <h2 id="materials"><a class="anchor" href="#materials"></a>Materials</h2>
  1107. <div class="sectionbody">
  1108. <div class="paragraph">
  1109. <p>All of the rules associated with defining materials in Blender suitable for use in jME apply when glTF is used as the import/export format.</p>
  1110. </div>
  1111. <div class="olist arabic">
  1112. <ol class="arabic">
  1113. <li>
  1114. <p>Blender supports lots of different types of shaders and complex materials with several different renderers. glTF supports a relatively basic set of PBR attributes. If the primary purpose of the materials is to produce glTF exported models use a simple <code>Principled BSDF</code> node in your materials with the following settings:</p>
  1115. <div class="olist loweralpha">
  1116. <ol class="loweralpha" type="a">
  1117. <li>
  1118. <p>Metalling and roughness values</p>
  1119. </li>
  1120. <li>
  1121. <p>Base color</p>
  1122. </li>
  1123. <li>
  1124. <p>Diffuse and Normal (bump) textures</p>
  1125. </li>
  1126. </ol>
  1127. </div>
  1128. </li>
  1129. </ol>
  1130. </div>
  1131. </div>
  1132. </div>
  1133. <div class="sect1">
  1134. <h2 id="shape-keys"><a class="anchor" href="#shape-keys"></a>Shape Keys</h2>
  1135. <div class="sectionbody">
  1136. <div class="paragraph">
  1137. <p>Shape keys in Blender are used to apply a deformation to a mesh without changing the underlying vertices. The glTF exporter ignores shape keys unless they are part of an animation. To include shape keys in the export, select the <code>Shape Keys</code> option in the <code>Animation</code> tab of the glTF export options.</p>
  1138. </div>
  1139. <div class="admonitionblock note">
  1140. <table>
  1141. <tr>
  1142. <td class="icon">
  1143. <i class="fa icon-note" title="Note"></i>
  1144. </td>
  1145. <td class="content">
  1146. <div class="paragraph">
  1147. <p>Shape keys are supported as of jME version 3.3.0-beta2+. Use the PBRLighting.j3md material definition when doing so.</p>
  1148. </div>
  1149. </td>
  1150. </tr>
  1151. </table>
  1152. </div>
  1153. <div class="imageblock">
  1154. <div class="content">
  1155. <a class="image" href="https://youtu.be/DZQ6HJgUheY"><img src="../../../_images/how-to/modeling/blender/DZQ6HJgUheY.png" alt="youtu.be/DZQ6HJgUheY" width="" height=""></a>
  1156. </div>
  1157. <div class="title">Figure 1. youtube</div>
  1158. </div>
  1159. </div>
  1160. </div>
  1161. <div class="sect1">
  1162. <h2 id="export-options"><a class="anchor" href="#export-options"></a>Export options</h2>
  1163. <div class="sectionbody">
  1164. <div class="paragraph">
  1165. <p>Blender 2.8 supports many options when exporting in glTF format. Most of the default options work fine.</p>
  1166. </div>
  1167. <div class="paragraph">
  1168. <p>You have 3 options of the format to export,
  1169. . <code>GLB</code>: a single file in binary format (the default)
  1170. . <code>GLTF_EMBEDDED</code>: a single file in JSON format
  1171. . <code>GLTF_SEPERATE</code>: multiple files for separate objects, textures etc.</p>
  1172. </div>
  1173. <div class="paragraph">
  1174. <p>The <code>GLB</code> format is the most efficient so use it unless you need to debug the output or edit it prior to import for any reason.</p>
  1175. </div>
  1176. <div class="paragraph">
  1177. <p>The export can be performed manually (File/Export/GLTF 2.0) or via a Python script. If using a script to export, the following command will export the entire scene to the current directory in <code>.glb</code> format with recommended options.</p>
  1178. </div>
  1179. <div class="paragraph">
  1180. <p><code>bpy.ops.export_scene.gltf(filepath=filename, export_materials=False, export_force_sampling=True, check_existing=False)</code></p>
  1181. </div>
  1182. </div>
  1183. </div>
  1184. <div class="sect1">
  1185. <h2 id="import-structure"><a class="anchor" href="#import-structure"></a>Import structure</h2>
  1186. <div class="sectionbody">
  1187. <div class="paragraph">
  1188. <p>The structure of the nodes following import will roughly match their structure in Blender. Note the following exceptions:
  1189. . There is no equivalent in glTF to Blender collections. These will not be represented in the imported structure.
  1190. . If an object has no material, a default material will be created for it.
  1191. . If an object has a single material, the corresponding node in the imported structure will have type <code>Geometry</code> with the object&#8217;s mesh and the associated material.
  1192. . If an object has more than one material, the corresponding node will have type <code>Node</code> with 1 child per material. Each of these children will be a <code>Geometry</code> with the associated material and a mesh containing the vertices assigned to the material.</p>
  1193. </div>
  1194. <div class="paragraph">
  1195. <p>For example, if a blender scene has the following structure</p>
  1196. </div>
  1197. <div class="literalblock">
  1198. <div class="content">
  1199. <pre>Scene collection
  1200. Collection A
  1201. Tree (Object)
  1202. Tree_Mesh (Mesh)
  1203. Car (Object)
  1204. Car_Mesh (Mesh)
  1205. Body (Material)
  1206. House (Object)
  1207. House_Mesh (Mesh)
  1208. Walls (Material)
  1209. Roof (Material)
  1210. Collection B
  1211. Person_Armature (Armature)
  1212. Root (Bone)
  1213. Head (Bone)
  1214. Animations
  1215. Walk (Action)
  1216. NLA Tracks
  1217. NLA Track
  1218. Run (Action)
  1219. Person (Object)
  1220. Animation
  1221. Walk (Action link)
  1222. Person_Mesh</pre>
  1223. </div>
  1224. </div>
  1225. <div class="paragraph">
  1226. <p>Then after export to glTF format and import to jME it will look like:</p>
  1227. </div>
  1228. <div class="literalblock">
  1229. <div class="content">
  1230. <pre>Scene (Node)
  1231. Tree (Geometry)
  1232. Default (Material)
  1233. Car (Geometry)
  1234. Body (Material)
  1235. House (Node)
  1236. House_1 (Geometry)
  1237. Walls (Material)
  1238. House_1 (Geometry)
  1239. Roof (Material)
  1240. Person_Armature (Node)
  1241. Animations (AnimControl)
  1242. Walk (Animation)
  1243. Run (Animation)
  1244. Person (Geometry)
  1245. Animations (AnimControl)
  1246. Walk (Animation)</pre>
  1247. </div>
  1248. </div>
  1249. <div class="paragraph">
  1250. <p>For example, the animated person could be loaded with a custom material assigned as follows:</p>
  1251. </div>
  1252. <div class="listingblock">
  1253. <div class="content">
  1254. <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">ModelKey key = new ModelKey("Models/model.glb");
  1255. Node scene = (Node)assetManager.loadModel(key);
  1256. Node person = scene.getChild("Person_Armature");
  1257. Geometry geometry = (Geometry)person.getChild("Person");
  1258. geometry.setMaterial(customMaterial);
  1259. root.attachChild(person);</code></pre>
  1260. </div>
  1261. </div>
  1262. <div class="paragraph">
  1263. <p>And an animation for the model could be run as follows:</p>
  1264. </div>
  1265. <div class="listingblock">
  1266. <div class="content">
  1267. <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">AnimControl animControl = person.getControl(AnimControl.class);
  1268. AnimChannel animChannel = animControl.createChannel();
  1269. animChannel.setAnim("Run");</code></pre>
  1270. </div>
  1271. </div>
  1272. <div class="paragraph">
  1273. <p>If you use the jME3 SDK, you can explore the scene graph using the <a href="../../../../sdk/scene_explorer.html" class="xref page">Scene Explorer</a>.</p>
  1274. </div>
  1275. <div class="paragraph">
  1276. <p>See <a href="../../../../core/scene/traverse_scenegraph.html" class="xref page">Traverse the SceneGraph</a> for assistance in finding the AnimControl of your models.</p>
  1277. </div>
  1278. <div class="paragraph">
  1279. <p>See <a href="../../../../core/animation/animation.html" class="xref page">Animation in jME3</a> for further details on using animations in your code.</p>
  1280. </div>
  1281. </div>
  1282. </div>
  1283. <div class="sect1">
  1284. <h2 id="additional-reading"><a class="anchor" href="#additional-reading"></a>Additional Reading</h2>
  1285. <div class="sectionbody">
  1286. <div class="paragraph">
  1287. <p>Thread announcing glTF support: <a href="https://hub.jmonkeyengine.org/t/jme-gltf-support/39174">https://hub.jmonkeyengine.org/t/jme-gltf-support/39174</a></p>
  1288. </div>
  1289. <div class="paragraph">
  1290. <p>Documentation for the python export functions: <a href="https://docs.blender.org/api/current/bpy.ops.export_scene.html">https://docs.blender.org/api/current/bpy.ops.export_scene.html</a></p>
  1291. </div>
  1292. <div class="paragraph">
  1293. <p>glTF specification: <a href="https://github.com/KhronosGroup/glTF/tree/master/specification/2.0">https://github.com/KhronosGroup/glTF/tree/master/specification/2.0</a></p>
  1294. </div>
  1295. </div>
  1296. </div>
  1297. <nav class="pagination">
  1298. <span class="prev"><a href="blender_buffer_clearing.html">Buffer Clearing</a></span>
  1299. <span class="next"><a href="blender_ogre_export.html">Export as Ogre XML</a></span>
  1300. </nav>
  1301. </article>
  1302. <aside class="toc sidebar" data-title="Contents" data-levels="2">
  1303. <div class="toc-menu"></div>
  1304. </aside>
  1305. </div>
  1306. </main>
  1307. </div>
  1308. <footer class="footer">
  1309. <p>Copyright 2020 jMonkeyEngine Wiki Contributors. Licensed BSD-3.</p>
  1310. </footer>
  1311. <script src="../../../../../../_/js/vendor/docsearch.min.js"></script>
  1312. <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js -->
  1313. <script>
  1314. var search = docsearch({
  1315. apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
  1316. indexName: 'jmonkeyengine',
  1317. inputSelector: '#search-input',
  1318. autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
  1319. algoliaOptions: { hitsPerPage: 10 }
  1320. }).autocomplete
  1321. search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
  1322. function focusSearchInput () { document.querySelector('#search-input').focus() }
  1323. if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput)
  1324. </script>
  1325. <script src="../../../../../../_/js/site.js"></script>
  1326. <script async src="../../../../../../_/js/vendor/highlight.js"></script>
  1327. </body>
  1328. </html>