jMonkeyEngine Changelog

What's new in jMonkeyEngine 3.7.0 Beta 1

May 10, 2024
  • What's Changed Since 3.7.0-alpha3.1:
  • Gradle build (zip) by @JNightRide in #2235
  • Logic code error (LwjglCanvas - LWJGL3) by @JNightRide in #2238
  • Fix SkeletonDebugger deserializing by @tonihele in #2228
  • #2224 Fix bug where the clipRect would be left in the openGL state by @richardTingle in #2225
  • Logs exception as severe on asset locator instantiation failure by @codex128 in #2232
  • stop building with JDK 8 at GitHub Actions by @stephengold in #2254
  • Remove material cache, some materials seem not work when cloned by @tonihele in #2255
  • solution for issue #2250 (exceptions from Image.setMultiSamples(1)) by @stephengold in #2251
  • main.yml: upgrade the wrapper validation action to v3 by @stephengold in #2257

New in jMonkeyEngine 3.7.0 Alpha 3 (Mar 11, 2024)

  • Changes relative to v3.7.0-alpha2:
  • update Groovy to v3.0.21 by @stephengold in #2212
  • don't code the Gradle version in build.gradle by @stephengold in #2213
  • jme3-examples: add the TestIssue2209 class by @stephengold in #2214
  • Use precision qualifiers only in GL ES shaders by @riccardobl in #2217
  • Added Test Class for SingleLayerInfluenceMask by @codex128 in #2218

New in jMonkeyEngine 3.7.0 Alpha 2 (Mar 4, 2024)

  • VarType: format code by @capdevon in #2199
  • MaterialDebugAppState: format code by @capdevon in #2200
  • MatParam: format code by @capdevon in #2202
  • xxxLightShadowFilter: format code + javadoc by @capdevon in #2204
  • AbstractShadowRenderer.setRenderBackFacesShadows(): Change input type Boolean -> boolean by @capdevon in #2206
  • Vector2f: added final static variables NAN, UNIT_X, UNIT_Y, … by @capdevon in #2198
  • Fix render states merging when additionalState is not set by @riccardobl in #2208
  • build.gradle: update Gradle version to match gradle-wrapper.properties by @stephengold in #2207
  • Fix divide by 0 in shadow utils for some scenes #2209 by @riccardobl in #2210

New in jMonkeyEngine 3.7.0 Alpha 1 (Feb 27, 2024)

  • New features:
  • UBO/SSBO Improvements, Structs, BufferObject and sub data update by @riccardobl in #1782
  • Expand support for GL ES / WebGL compatible formats. by @riccardobl in #2101
  • Lwjgl3 canvas by @tonihele in #1868
  • LwjglCanvas using lwjgl-jawt by @JNightRide in #2153
  • Adds SingleLayerInfluenceMask by @codex128 in #2043
  • Accelerated env baking on the GPU by @riccardobl in #1165
  • Create CompositeAppState.java by @pspeed42 in #2193
  • Bugs and defects addressed:
  • Fix PBR Support for Glow by @codex128 in #2162
  • General improvements:
  • Update the "gson" library to v2.10.1 by @stephengold in #2183
  • Update copyright years in the license by @stephengold in #2182
  • Solve issue #2178 (PBRTerrainTest typo) by @stephengold in #2181
  • Solve issue #2177 (PBRTerrainAdvancedTest typo) by @stephengold in #2180
  • Document issue #2089 (scale factors assumed positive) by @stephengold in #2156
  • #2176 Make LWJGLBufferAllocator use nmemCalloc() instead of nmemAlloc() by @JosiahGoeman in #2179
  • Solve issue #2184 (smart quotes in log messages) by @stephengold in #2185
  • #2174 deprecate key classes in JME3-vr. by @richardTingle in #2175
  • com.jme3.anim.tween.action.Action: basic javadoc by @Scrappers-glitch in #2019
  • com.jme3.anim.tween.action.BaseAction: basic javadoc by @Scrappers-glitch in #2020
  • Move NoiseLib.glslib to more appropriate location by @yaRnMcDonuts in #2189
  • Update GitHub actions: setup-java to v4, wrapper-validation-action to v2 by @stephengold in #2192
  • IBLGLEnvBaker: don't share a logger with IBLHybridEnvBakerLight by @stephengold in #2187
  • BoundingSphereDebug: removed the unused variable radius and its getter method getRadius() by @capdevon in #2196
  • Update the Gradle wrapper to v7.6.4 by @stephengold in #2197
  • #2194 add ClipAction.getAnimClip() method, remove ClipAction.reset() method by @capdevon in #2195

New in jMonkeyEngine 3.6.0 (Mar 20, 2023)

  • New features:
  • Jme3-lwjgl3: add a WindowSizeListener
  • Actions based vr input
  • Separate concept of window size from default framebuffer size
  • Add FOR macro to GLSL preprocessor and J3MD
  • Android: Implemented AndroidNativeBufferAllocator - Deprecated AndroidBufferAllocator
  • Add GL debug capabilities
  • Add java types to VarType and type checks to MatParam
  • Some enhancement to new animation system
  • Added a Loop tween to Tweens factory class. Supports looping by count…
  • Added Tweens.cycle() and Tweens.invert() methods
  • Add instance culling function in InstancedGeometry
  • Implementation of a glTF extension loader for KHR_texture_transform
  • Add the Spatial.addControlAt() method
  • JmeContext: add a getSystemListener() method
  • Add 4 getters to JmeContext for screen position and frame-buffer size
  • Bugs and defects addressed:
  • RenderState: fixed 'backStencilStencilFailOperation' field serializat…
  • LwjglWindow:assign new thread to mainThread field.
  • Chase cam can rotate fix on re-enable
  • Fix and test for issue 1723 (more serialization bugs in RenderState)
  • Fix NullPointerException in AnimLayer.update()
  • AlAudioRenderer: update OpenAL state when dry filter is re-applied
  • Cross-platform fix for issue 1745 (mouse input scaling)
  • Fix error 1280 in MacOS when querying GL_FRAMEBUFFER_SRGB_CAPABLE_EXT
  • Fix issue 1705 (serialize 6 mesh subclasses)
  • Solve issue #1761 (AssertionError in ALAudioRenderer)
  • Solve issue #1780 (built-in matdefs/shaders lack core-profile support)
  • Fix draw/read buffer selection for framebuffers (FrameBuffer.setTargetIndex(int))
  • Add toggleable framebuffer mipmaps generation. Fix #1788
  • work around missing reshape() callbacks from LWJGL v3 (issue #1793)
  • JmeSurfaceView: Fixed duplicate app destruction.
  • Solve issue #1798 (filtered scenes are squeezed)
  • Solve issue #1813 (glTF loader loses keyframes)
  • Refactor to avoid invoking AppSettings.getBoolean() directly
  • JmeSurfaceView: Removed explicit nullifying GlSurfaceView onDestroy
  • Solve issue #1809 (GltfLoader is not thread-safe)
  • Fix issue #1839
  • SettingsDialog: LAF fix
  • Fix #1843 (java.util.zip.ZipException in HttpZipLocator)
  • Fix #1850 (JmeSystem.writeImageFile() throw java.nio.BufferUnderflowE…
  • Fix: make the stencil test functions usable.
  • Fix #1871 (vertex colors not loaded in gltf models)
  • Fix #1867 (LightFilter gets applied even if not needed)
  • Fix #1412 (GltfLoader does not support AO packed in MetallicRoughnessMap)
  • Fix #1882 (J3MLoader always generates mips ignoring MinFilter)
  • Made Gltf extension loaders non-static to avoid concurrency issues
  • Fix #1883 (Image class wrongly setting GL mips flags inside the constructor)
  • Fix #1892 (TestChooser does not show classes list when run with java 8)
  • main.yml: use "temurin" openjdk.
  • Fix #1773 (Wrong particle position when worldSpace flag equals to true)
  • Jme3-niftygui: solve issue #1891 (incorrect fullscreen layout)
  • Jme3-lwjgl:updated to lwjgl v2.9.4 hosted by org.jmonkeyengine.
  • Fix #1890 (crashes attempting to run example apps in fullscreen with LWJGL v2)
  • When in VR attach the debug scene to the two eye's scenes
  • Refactored PBR Terrain to use new for-loops.
  • Refactored Advanced PBR Terrain to use new for-loops
  • Update AfflictionLib.glsllib
  • Common.gradle: set class files compatible with Java 8 using "release" option.
  • Test and fix for #1909 (NPE while generating tangents)
  • Jme3-lwjgl: bump to lwjgl 2.9.5.
  • Fix #1917 (RendererException in ScreenshotAppState: Attempting to upload empty buffer)
  • PBRLighting: fix comment describing packed MetallicRoughnessMap
  • solve issue #1919 (underflow while generating tangents)
  • Main.yml: deploy with jdk17
  • Fix #1923 (OSSRH artifacts are build with different java version)
  • Resolve issue #1926 (unnecessary dependencies)
  • Solve issue #1928 (OutOfMemoryError in FBX importer)
  • Solve issue #1930 (NPE in FbxLayerElement)
  • Solve issue #1932 (class cast exceptions in FBX importer)

New in jMonkeyEngine 3.6.0 Beta 2 (Feb 13, 2023)

  • Bugs and defects addressed:
  • resolve issue #1926 (unnecessary dependencies) by @stephengold in #1927
  • solve issue #1928 (OutOfMemoryError in FBX importer) by @stephengold in #1929
  • solve issue #1930 (NPE in FbxLayerElement) by @stephengold in #1931
  • solve issue #1932 (class cast exceptions in FBX importer) by @stephengold in #1934
  • solve issue #1933 (unsupported operation in FbxNode) by @stephengold in #1936
  • solve issue #1937 (NPE in FbxObject) by @stephengold in #1938
  • solve issue #1939 [NPE in FbxMesh.applyCluster()] by @stephengold in #1940
  • Fix #1945 (IllegalStateException when running TestAWTPanels with LWJGL 3) by @Ali-RS in #1949
  • solve issue #1879 (compile-time error in Skinning.glsllib) by @stephengold in #1942
  • Fix issue #1558 (TestAWTPanels crashes with LWJGL v3 on Linux) by @Ali-RS in #1944
  • solve issue #1806 (global FrameInterpolator violates threading model) by @stephengold in #1943
  • Fix a typo in LwjglWindow by @Ali-RS in #1953
  • General improvements:
  • Update Application.start javadoc by @Ali-RS in #1947
  • Update RenderState.setLineWidth javadoc by @Ali-RS in #1948

New in jMonkeyEngine 3.6.0 Beta 1 (Jan 24, 2023)

  • Bugs and defects addressed:
  • Fix #1917 (RendererException in ScreenshotAppState: Attempting to upload empty buffer) by @Ali-RS in #1918
  • PBRLighting: fix comment describing packed MetallicRoughnessMap by @yaRnMcDonuts in #1921
  • solve issue #1919 (underflow while generating tangents) by @stephengold in #1920
  • main.yml: deploy with jdk17 by @Ali-RS in #1922
  • Fix #1923 (OSSRH artifacts are build with different java version) by @Ali-RS in #1924

New in jMonkeyEngine 3.6.0 Alpha 3 (Jan 15, 2023)

  • Highlights
  • Netbeans 16
  • Pbr Light button in Material Editor
  • Fixed broken Pbr environment in SceneComposer
  • Fixed reopening materials in Material Editor
  • What's Changed:
  • Fixes missing width and height tags by @neph1 in #433
  • #429 FilterExplorer - Disabled Filter icon wrong size and color by @neph1 in #434
  • Preliminary fix for #430 by @neph1 in #431
  • #303 dark app icons by @neph1 in #437
  • Propose to fix #266 by moving installed jar by @neph1 in #438
  • Fix JmeTests project requirement by @neph1 in #440
  • Update to netbeans 16 to fix build by @neph1 in #441
  • Upgrade changed installer files and change version by @neph1 in #442
  • This fixes #418 by adding a button to enable the pbr light probe in t… by @neph1 in #443
  • ExternalChangeScanner bug fixes and improvement by @neph1 in #444
  • Trying to fix build by rolling back to previous release drafter version by @neph1 in #445
  • Reverting workflow change by @neph1 in #446
  • Fixes missing text for tooltip by @neph1 in #447

New in jMonkeyEngine 3.6.0 Alpha 2 (Jan 12, 2023)

  • New features:
  • add the Spatial.addControlAt() method by @stephengold in #1899
  • JmeContext: add a getSystemListener() method by @stephengold in #1894
  • Bugs and defects addressed:
  • Fix #1892 (TestChooser does not show classes list when run with java 8) by @Ali-RS in #1893
  • main.yml: use "temurin" openjdk. Fix #1896 by @Ali-RS in #1897
  • Fix #1773 (Wrong particle position when worldSpace flag equals to true) by @Ali-RS in #1889
  • jme3-niftygui: solve issue #1891 (incorrect fullscreen layout) by @stephengold in #1895
  • jme3-lwjgl:updated to lwjgl v2.9.4 hosted by org.jmonkeyengine. Fix #1247, #1215, #947 by @Ali-RS in #1902
  • Fix #1890 (crashes attempting to run example apps in fullscreen with LWJGL v2) by @Ali-RS in #1898
  • When in VR attach the debug scene to the two eye's scenes. Fix #1795 by @richardTingle in #1888
  • Refactored PBR Terrain to use new for-loops. Fix #1785 by @yaRnMcDonuts in #1901
  • Refactored Advanced PBR Terrain to use new for-loops by @yaRnMcDonuts in #1904
  • Update AfflictionLib.glsllib by @yaRnMcDonuts in #1905

New in jMonkeyEngine 3.6.0 Alpha 1 (Jan 2, 2023)

  • Potential breaking changes:
  • Use OpenGL 3.2 as default by @riccardobl in #1752
  • BlendAction: resolve slow-motion side effect caused by stretching actions by @Ali-RS in #1848
  • move SettingsDialog and ErrorDialog to new jme3-awt-dialogs module by @riccardobl in #1876
  • JmeSurfaceView: Package migration by @Scrappers-glitch in #1819
  • New features:
  • jme3-lwjgl3: add a WindowSizeListener by @Ali-RS in #1711
  • #1734 actions based vr input by @richardTingle in #1735
  • Separate concept of window size from default framebuffer size by @riccardobl in #1750
  • Add FOR macro to GLSL preprocessor and J3MD by @riccardobl in #1758
  • Android: Implemented AndroidNativeBufferAllocator - Deprecated AndroidBufferAllocator by @Scrappers-glitch in #1821
  • Add GL debug capabilities by @riccardobl in #1790
  • Add java types to VarType and type checks to MatParam by @riccardobl in #1797
  • Some enhancement to new animation system by @Ali-RS in #1845
  • Added a Loop tween to Tweens factory class. Supports looping by count… by @Ali-RS in #1846
  • Added Tweens.cycle() and Tweens.invert() methods by @Ali-RS in #1849
  • Add instance culling function in InstancedGeometry by @Ali-RS in #1865
  • Implementation of a glTF extension loader for KHR_texture_transform by @manuelrmo in #1869
  • Bugs and defects addressed:
  • RenderState: fixed 'backStencilStencilFailOperation' field serializat… by @Ali-RS in #1719
  • LwjglWindow:assign new thread to mainThread field. by @Ali-RS in #1722
  • Chase cam can rotate fix on re-enable by @tlf30 in #1692
  • fix and test for issue 1723 (more serialization bugs in RenderState) by @stephengold in #1726
  • Fix NullPointerException in AnimLayer.update() by @capdevon in #1730
  • AlAudioRenderer: update OpenAL state when dry filter is re-applied by @stephengold in #1728
  • Cross-platform fix for issue 1745 (mouse input scaling) by @riccardobl in #1753
  • Fix error 1280 in MacOS when querying GL_FRAMEBUFFER_SRGB_CAPABLE_EXT by @riccardobl in #1749
  • Fix issue 1705 (serialize 6 mesh subclasses) by @stephengold in #1754
  • solve issue #1761 (AssertionError in ALAudioRenderer) by @stephengold in #1762
  • solve issue #1780 (built-in matdefs/shaders lack core-profile support) by @stephengold in #1781
  • Fix draw/read buffer selection for framebuffers (FrameBuffer.setTargetIndex(int)) by @riccardobl in #1786
  • Add toggleable framebuffer mipmaps generation. Fix #1788 by @riccardobl in #1791
  • work around missing reshape() callbacks from LWJGL v3 (issue #1793) by @stephengold in #1794
  • JmeSurfaceView: Fixed duplicate app destruction. by @Scrappers-glitch in #1801
  • solve issue #1798 (filtered scenes are squeezed) by @stephengold in #1812
  • solve issue #1813 (glTF loader loses keyframes) by @stephengold in #1815
  • refactor to avoid invoking AppSettings.getBoolean() directly by @stephengold in #1796
  • JmeSurfaceView: Removed explicit nullifying GlSurfaceView onDestroy by @Scrappers-glitch in #1802
  • solve issue #1809 (GltfLoader is not thread-safe) by @stephengold in #1810
  • Fix issue #1839 by @Lukas-Habring in #1840
  • SettingsDialog: LAF fix by @Scrappers-glitch in #1827
  • Fix #1843 (java.util.zip.ZipException in HttpZipLocator) by @Ali-RS in #1842
  • Fix #1850 (JmeSystem.writeImageFile() throw java.nio.BufferUnderflowE… by @Ali-RS in #1851
  • Fix: make the stencil test functions usable. by @zzuegg in #1866
  • Fix #1871 (vertex colors not loaded in gltf models) by @tonihele in #1873
  • Fix #1867 (LightFilter gets applied even if not needed) by @zzuegg in #1872
  • Fix #1412 (GltfLoader does not support AO packed in MetallicRoughnessMap) by @manuelrmo in #1880
  • Fix #1882 (J3MLoader always generates mips ignoring MinFilter) by @Ali-RS in #1884
  • Made Gltf extension loaders non-static to avoid concurrency issues by @Ali-RS in #1886
  • Fix #1883 (Image class wrongly setting GL mips flags inside the constructor) by @Ali-RS in #1885
  • General improvements:
  • avoid invoking the newly-deprecated BitmapText 2-arg constructor by @stephengold in #1709
  • rename local variables for clarity by @stephengold in #1715
  • clarify some non-javadoc comments by @stephengold in #1712
  • rename method arguments for clarity by @stephengold in #1716
  • downgrade or delete unnecessary library dependencies by @stephengold in #1714
  • Test post water 1699 by @bob0bob in #1707
  • LwjglCanvas: initialize OpenCL for LWJGL2 by @AmiroooTheWalnut in #1720
  • account for world transform in TerrainQuad.setNormalRecalcNeeded() by @yaRnMcDonuts in #1741
  • Vector2f: save 2 trig calculations in rotateAroundOrigin() by @stephengold in #1731
  • Configure circular deps as warning on eclipse by @riccardobl in #1747
  • GlfwMouseInput: scale mouse coords only if Retina AppSetting is true by @stephengold in #1746
  • Add simple math methods to Vector3f by @yaRnMcDonuts in #1744
  • TerrainQuad: publicize fixNormals() by @stephengold in #1738
  • Add simple math methods to Vector4f by @yaRnMcDonuts in #1755
  • Add simple math methods to Vector2f by @yaRnMcDonuts in #1756
  • rename private variables by @stephengold in #1736
  • rename more method arguments for clarity by @stephengold in #1742
  • Add set methods and constructors to ColorRGBA that take in a Vector param by @yaRnMcDonuts in #1757
  • JoyButtonTrigger: clarify that the constructor arg is not an axis ID by @stephengold in #1765
  • jme3-nifty should account for gamma correction by @stephengold in #1764
  • TestPostWater: avoid using the deprecated BitmapText constructor by @stephengold in #1766
  • RenderDeviceJme: CachedTextKey.equals() lacks a type check by @stephengold in #1768
  • Refactoring of the initialization code of the 'particleMesh' variable. by @capdevon in #1769
  • InstancedGeometry: added a field to keep track of all instance data b… by @Ali-RS in #1772
  • avoid use of deprecated methods (mostly Class.newInsta...

New in jMonkeyEngine 3.5.2 (Apr 21, 2022)

  • A production-quality JMonkeyEngine 3.5 patch release with the following changes relative to 3.5.1-stable:
  • solved issue 1710 - can't create windows on armhf platforms by upgrading LWJGL to v3.3.1
  • solved issue 1788 - mipmaps generated for wrong framebuffer by backporting PR 1791

New in jMonkeyEngine 3.5.1 (Mar 21, 2022)

  • Bugs and defects addressed:
  • Various built-in shaders don't support core profile (issue #1780, PR #1781)
  • AssertionError in ALAudioRenderer (issue #1761, PR #1762)
  • General improvements:
  • Enabled native physics for "Apple Silicon" Macs (issue #1528, b40a91d)
  • Added LWJGL v3 natives for "Apple Silicon" Macs (issue #1528, de2e2d3)

New in jMonkeyEngine 3.5.0 (Jan 23, 2022)

  • WIP

New in jMonkeyEngine 3.5.0 Beta 9 (Jan 17, 2022)

  • Noteworthy changes relative to 3.5.0-beta7:
  • Bugs and defects addressed:
  • inaccurate mouse positions on non-Apple systems (issue #1745, PR #1746)

New in jMonkeyEngine 3.5.0 Beta 6 (Jan 11, 2022)

  • Bugs and defects addressed:
  • NullPointerException in AnimLayer.update() (PR #1730)
  • LwjglCanvas doesn't initialize OpenCL for LWJGL2 (PR #1720)
  • ineffective audio filters (issue #1699, PRs #1707 and #1728)
  • more serialization bugs in RenderState (issue #1723, PR #1726)
  • General improvements:
  • javadoc (various PRs and commits)

New in jMonkeyEngine 3.5.0 Beta 5 (Dec 30, 2021)

  • Noteworthy changes relative to 3.5.0-beta4:
  • Bugs and defects addressed:
  • SimpleApplication.stop(true) causes deadlock (issue #1721, PR #1722)
  • ChaseCamera won't rotate after being re-enabled (PR #1692)
  • RenderState is serialized incorrectly (issue #1718, PR #1719)
  • typo in the value returned by LodGenerator.toString() (cfa497d)
  • General improvements:
  • javadoc (various PRs and commits)

New in jMonkeyEngine 3.5.0 Beta 4 (Dec 18, 2021)

  • Upgrade considerations (potential breaking changes):
  • explicitly requires Java 8 or higher (issue #1661)
  • more precise return types for 13 clone() methods (issue #1676, PR #1683)
  • changed the semantics of FastMath.sphericalToCartesianZ() (issue #1349, PR #1573)
  • deleted the Weights class, which was deprecated in v3.4 (issue #1620, PR #1632)
  • protected the no-arg constructor of TransformTrack (PR #1531)
  • New features:
  • enhancements to SurfaceView for Android (PR #1650), including:
  • optional binding to activity lifecycle
  • added listeners for "layout drawn" and "renderer started"
  • new DestructionPolicy applied when exiting an activity
  • add full stack trace and a "copy log" button to the error dialog
  • added settings for "show error dialog", "exit on Esc pressed", and "show Esc exit prompt"
  • added the getGlEsVersion() method
  • determine the maximum supported width for lines (issue #1555, PR #1643)
  • support for additional compressed texture formats (issue #1619, PR #1621)
  • texture flipping for certain RGTC formats (PR #1629)
  • app settings to position the initial window in LWJGL v3 (issue #1668, PR #1670)
  • a color-adjustment filter (issue #781, PR #1665)
  • RectangleMesh class for custom quads (PR #1701)
  • calculateD() and calculateNormal() methods in Rectangle class (PR #1701)
  • CenterQuad mesh in jme3-core (PR #1704)
  • added getNbMorphTargets(), setKeyframesWeight(), and setNbMorphTargets() to the MorphTrack class (PR #1608)
  • made getOffsetTransform() and getAttachmentsNode() accessible to subclasses of Joint (PR #1536)
  • distinguish ARM macOS/Windows from other platforms (issue #1528, PR #1530)
  • convert inner class Layer to a top-level class (issue #1566, PR #1656)
  • Bugs and defects addressed:
  • LWJGL v3 hangs while creating a window (issues #1193, #1514, and #1558, PR #1690)
  • Right-to-Left and cursive fonts displayed incorrectly (issue #1158, PR #1685)
  • incorrect cursor position on macOS with Retina (issue #893, PR #1607)
  • incorrect VirtualIndexBuffer for a LineLoop mesh (issue #1603, PR #1605)
  • sphericalToCartesianZ() doesn't reverse cartesianZToSpherical() (issue #1349, PR #1573)
  • null-pointer exceptions while loading erroneous glTF models:
  • in GltfLoader.findChildren() (PR #1471)
  • in SkinningControl.getAttachmentsNode() (issue #1612, PR #1639)
  • cryptic crash when more than 16 textures are used (issue #37, PR #1574)
  • fromJmeKeyCode() returns garbage for unknown keys (issue #1596, PR #1638)
  • serialization bugs:
  • CartoonEdgeFilter class (issue #1640, PR #1647)
  • ShaderNodeVariable class (PR #1585)
  • Torus class (PR #1586)
  • typos in logger/exception messages (PR #1584, 3beca2b)
  • General improvements:
  • upgraded LWJGL to v3.3.0 (PR #1659)
  • faster asset loading on Android devices (issue #1622, PR #1627)
  • faster writing of MJPEG files (PR #1592)
  • more efficient logging (issues #1672 and #1680, PRs #1673 and #1682)
  • un-deprecate AndroidBufferImageLoader (PR #1660)
  • javadoc (issues #1648 and #1597; PRs #1581, #1599, #1620, #1642, #1646, #1651, #1653, #1650, #1663, #1666, #1684, #1689, #1698, and #1706; 4db02fa, 8075eeb, ac8696e, e79340a, and f40f21a)
  • examples and tests (issues #1290, #1630, and #1687; PRs #1570, #1594, #1610, #1625, #1631, #1635, and #1697; 7c5fe46 and 9d8bd88)
  • New deprecations:
  • Quaternion.negate() (PR #1702)
  • BitmapText(BitmapFont font, boolean rightToLeft) (PR #1685)
  • CenterQuad mesh in jme3-vr (3097f05)

New in jMonkeyEngine 3.4.1 (Dec 6, 2021)

  • Bugs and defects addressed:
  • crashes while deleting native objects (issue #1614, PR #1617)
  • can't recover from a disconnected audio device (PR #1593)
  • Android devices can't load assets whose names start with "/" (issue #352, PR #1577)
  • assertion failure while loading a valid glTF model (issue #1089)
  • General improvements:
  • faster asset loading of AWT-based texture assets (PR #1613)
  • improved performance in Node.java (issue #1672, PR #1673)

New in jMonkeyEngine 3.4.0 (Nov 15, 2021)

  • A production-quality release of JMonkeyEngine with the following changes relative to v3.3.2-stable:
  • Upgrade considerations (a.k.a. potential breaking changes):
  • Gamma correction is enabled by default. In apps that default the setting (don't explicitly enable/disable it), scenes may appear brighter or darker than expected. (discussion, 6ade1a0)
  • Vsync is enabled by default. In apps that default the setting (don't explicitly enable/disable it), the frame rate and CPU/GPU usage may be lower than expected. (discussion, f34e660)
  • Maven artifacts aren't available from JCenter. Obtain them from the Maven Central Repository instead. (issue #1468, discussion)
  • The "jme3-bullet", "jme3-bullet-native", and "jme-bullet-native-android" libraries (physics using native Bullet) were removed from the Engine. For 3-D physics, use "jme3-jbullet" or Minie. (PR #1474)
  • The "jme3-blender" library (Blender importer) was removed from the Engine. To import 3-D models from Blender, use glTF as an intermediate format. (discussion, 221acaa)
  • Setters that had previously been deprecated to no-ops were removed. (PR #1510)
  • Utility classes that previously could be instantiated were made non-instantiable. (420b959, 1031e03, 145cc1b)
  • Protected the no-arg constructors for Camera (issue #1461, PR #1464) and InstancedNode (6402aad).
  • Added range checks to IndexBuffer.put() methods. (issue #1427)
  • The "jme3-jogl" library (JOGL backend) was removed from the Engine. If you must use JOGL instead of LWJGL, contact JogAmp. (discussion, PRs #1339 and #1368)
  • The "jme3tools.navigation" package was removed from the "jme3-desktop" library. If you need this package, it's available from the "jMonkeyEngine-Contributions" project. (issue #1430, PR #1450)
  • New features:
  • material definitions for physically-based rendering (PBR) of terrain (PR #1478)
  • map keys for non-US keyboard layouts when using LWJGL v3 (issue #942)
  • de-saturation for materials based on "Unshaded.j3md" (PR #1449)
  • embed a JME application in a custom UI design on Android devices (PR #1494)
  • extensions to JoystickCompatibilityMappings (PR #1483)
  • flesh out the new animation system:
  • more getters/setters for Action (PR #1489) and AnimComposer (PR #1376)
  • a factory class to generate animations programmatically (issue #1453, PR #1507)
  • incorporate animations into cinematic cutscenes (PR #1508)
  • more methods to create and manipulate armature masks (issue #1499, PR #1504)
  • capability to remove morph targets from a Mesh (PR #1378)
  • enhance the glTF importer:
  • handle "unlit" materials (PR #1463)
  • handle URIs (PR #1396)
  • handle lights defined using the "KHR_lights_punctual" extension (PR #1443)
  • LWJGL v3 support for Linux-on-ARM and 32-bit Windows (discussion, 6711986)
  • more ways to look up appstates by ID (a79be13)
  • LightControl support for spotlights (PR #1466)
  • combine GlowColor and GlowMap in a single Material (PR #1444)
  • add fromRGBA255() and chainable setters to the ColorRGBA class (a057a6d, 37f1e7f)
  • serialize final fields across a network (PR #1505)
  • more getters/setters for Camera (PR #1492), EnvironmentCamera (issue #1447, PR #1481), and Renderer (PR #1482)
  • pack ambient-occlusion (AO) data into the metallic roughness map of a PBR material (PR #1403)
  • handle named groups when importing 3-D models in OBJ format (PR #1369)
  • a unified mechanism to manage the render targets of a FrameBuffer (PR #1401)
  • depth-only copy of a FrameBuffer (PR #1400)
  • performance profiling of render() and postRender() methods (PR #1485)
  • Bugs addressed:
  • no sound on Android devices (issue #1239, PR #1475)
  • inaccurate frame rate when using LWJGL v3 (issue #1455)
  • LWJGL context restart issues (PR #1526, issues #844 and #1445)
  • OGRE importer doesn't set the initial pose (issue #1395)
  • jme3-jbullet depends on unavailable Maven artifacts (PR #1541)
  • cloning a Joint (issue #1469, PR #1470)
  • logic error in Transform.interpolateTransforms() (issue #1394)
  • crashes in TransformTrack.getTranslations() and getRotations() (PR #1532)
  • crashes while compiling shaders (PRs #1456 and #1458)
  • crash while importing from glTF (PR #1442)
  • crash with NegativeArraySizeException (PR #1377)
  • assertion failure in TouchTrigger.touchHash() (PR #1448)
  • wrong center location for a spherical LightProbe (PR #1440)
  • animation uses wrong easing function (PR #1397)
  • material parameter of type IntArray not set (issue #1564, PR #1565)
  • incorrect import of UTF-8 data (issue #1436, PR #1437)
  • unable to locate OpenAL library (issue #1383, PR #1432)
  • multiple issues involving iOS devices (PR #1473)
  • multiple issues involving instanced geometries (PRs #1457 and #1467)
  • gamepad split into 2 input devices (PR #1454)
  • SSAO interferes with transparent unshaded materials (discussion, PR #1512)
  • FXAA filter disables transparency (discussion, PR #1517)
  • can't generate mipmaps for cubemap faces (issue #1222, PR #1409)
  • bounding-sphere merge yields NaN (issue #1459, PR #1465)
  • LOD causes terrain patches to disappear (issue #1382, PR #1418)
  • crash while de-serializing a WireFrustum (issue #1462)
  • crash in LogicalOggStreamImpl (issue #1244, PR #1480)
  • crash while cloning a TerrainPatch (issue #1391)
  • MorphControl doesn't override JmeCloneable/Savable methods (issue #1548, PRs #1549 and #1553)
  • incomplete serialization of TerrainQuad (PR #1476)
  • inaccurate de-serialization of DistanceLodCalculator (issue #1381, PR #1385)
  • checkSetParam() warning while creating sky (issue #1414, PR #1438)
  • General improvements:
  • javadoc (issues #1275, #1366, #1370, #1388, #1428; PRs #1373, #1374, #1386, #1429, #1451, #1493, #1511, #1519, #1521, #1522, and #1550)
  • ported "jme3-examples" apps to the new animation system (issue #1452; PRs #1333, #1487, #1500, #1503, and #1515)
  • New deprecations:
  • LightNode class (issue #1033, PR #1042)
  • com.jme3.anim.Weights class (PR #1523)
  • 15 methods in the FrameBuffer class (PR #1401)

New in jMonkeyEngine 3.5.0 Alpha 1 (Nov 15, 2021)

  • Potential breaking changes:
  • deleted the Weights class (issue #1620, PR #1632)
  • New features:
  • determine the maximum supported width for lines (issue #1555, PR #1643)
  • support for additional compressed texture formats (issue #1619, PR #1621)
  • texture flipping for certain RGTC formats (PR #1629)
  • added getNbMorphTargets(), setKeyframesWeight(), and setNbMorphTargets() to the MorphTrack class (PR #1608)
  • TODO more
  • Bugs and defects addressed:
  • crashes while deleting native objects (issue #1614, PR #1617)
  • incorrect cursor position on macOS with Retina (issue #893, PR #1607)
  • can't recover from a disconnected audio device (PR #1593)
  • Android devices can't load assets whose names start with "/" (PR #1577)
  • incorrect VirtualIndexBuffer for a LineLoop mesh (issue #1603, PR #1605)
  • sphericalToCartesianZ() doesn't reverse cartesianZToSpherical() (issue #1349, PR #1573)
  • null-pointer exceptions while loading erroneous glTF models:
  • in GltfLoader.findChildren() (PR #1471)
  • in SkinningControl.getAttachmentsNode() (issue #1612, PR #1639)
  • cryptic crash when more than 16 textures are used (issue #37, PR #1574)
  • fromJmeKeyCode() returns garbage for unknown keys (issue #1596, PR #1638)
  • serialization bugs:
  • CartoonEdgeFilter class (issue #1640, PR #1647)
  • ShaderNodeVariable class (PR #1585)
  • Torus class (PR #1586)
  • typos in logger/exception messages (PR #1584)
  • TODO more
  • General improvements:
  • faster asset loading:
  • of AWT-based assets (PR #1613)
  • on Android devices (issue #1622, PR #1627)
  • faster writes to MJPEG files (PR #1592)
  • javadoc (issue #1648; PRs #1581, #1599, #1620, #1642, #1646, and #1651; 4db02fa, 8075eeb, ac8696e, and f40f21a)
  • examples and tests (issues #1290, #1630; PRs #1570, #1594, #1610, #1631, and #1635; 7c5fe46 and 9d8bd88)
  • TODO more

New in jMonkeyEngine 3.3.2 (Dec 10, 2020)

  • A production-quality JMonkeyEngine 3.3 patch release with the following changes relative to 3.3.0-stable:
  • low-risk bugfixes in the libraries
  • Issue 1304, PR 1321, Issue 1340: PBR shader fails to compile
  • Issue 1347: ClassCastException in TerrainPath.reIndexGeometry()
  • PR 1338: AndroidNativeImageLoader attempts to open stream 2x
  • Issue 1341: indirect audio buffer causes OpenAL to crash
  • Issue 995: unclosed query in DetailedProfiler
  • Issue 1272: renderer mistakenly believes it is on mobile
  • Issue 1319: deadlock if context initialization fails
  • PR 1322: GL_INVALID_ENUM in debug mode
  • Issue 1360: ArmatureDebugAppState causes OpenGLException
  • improvements to tests and examples
  • improvements to javadoc and code formatting

New in jMonkeyEngine 3.3.2 SDK Preview 1 (Oct 8, 2020)

  • This is NOT a release version. Everyone using it keep in mind:
  • There are still bugs, some might be known, others might be not, please compare to the issues and be careful when using it on production projects (i.e. have backups).
  • We also have an auto update nightlies system again, but due to a few issues, it is not yet enabled.

New in jMonkeyEngine 3.3.0 Beta 1 (Apr 7, 2020)

  • Upgrade Source Versions to Java 10, as we did that for the Core Module and thus all dependent modules need that as well.

New in jMonkeyEngine 3.2.1 Build 06.03.2018 (Mar 7, 2018)

  • Fixes #57, Fixes #108 - Upgrading an existing installation should be possible now. Also the warnings should disappear when doing a clean install. In theory during the installation one should be prompted whether one wants to add a desktop shortcut for blender

New in jMonkeyEngine 3.2.1 (Jan 30, 2018)

  • Update the genfiles

New in jMonkeyEngine 3.2.0 Preview (Nov 10, 2017)

  • Version Naming:
  • From this release on we have changed our naming scheme to be more obvious. The reason is that the old scheme wasn't made for releasing multiple sdk versions for the same engine version, slowing down sdk release cycles.
  • v3.2-beta1-sdk10 would mean Engine Version v3.2-beta1 and the 10th sdk build thereof. Each Release will have the -sdk appendix and the first build will always be sdk1 so no sdk or sdk0.
  • We dropped the appendixes -SNAPSHOT and -FINAL though since technically most of the time final was just the latest snapshot.
  • There are no release notes yet but this version comes with all the new features the engine introduces in 3.2 like the App Profiler and PBR.
  • Along with that there were many bugfixes in the SDK.