Releases: jMonkeyEngine/jmonkeyengine
jMonkeyEngine 3.6.0-stable
A production-quality release of JMonkeyEngine with the following noteworthy changes relative to
v3.5.2-stable:
-
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
- add the Spatial.addControlAt() method by @stephengold in #1899
- JmeContext: add a getSystemListener() method by @stephengold in #1894
- add 4 getters to JmeContext for screen position and frame-buffer size by @stephengold in #1911
-
Bugs and defects addressed:
- Fix draw/read buffer selection for framebuffers (FrameBuffer.setTargetIndex(int)) by @riccardobl in #1786
- 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
- 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
- common.gradle: set class files compatible with Java 8 using "release" option. Fix #1896 by @Ali-RS in #1907
- test and fix for #1909 (NPE while generating tangents) by @stephengold in #1910
- jme3-lwjgl: bump to lwjgl 2.9.5. Fix #1908 by @Ali-RS in #1914
- 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
- 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
- resolve issue #1955 (Can not play vorbis audio on Android API 31+) by @Scrappers-glitch in #1956
- jme3-jogg: remove dependency on Java Media Framework by @stephengold in #1962
- solve issue #1960 (use jme3-jogg for loading ogg files on android) and #1972 (Cannot load ogg audio from classpath in Android) by @Ali-RS in #1961
- solve issue #1963 (TestMusicPlayer fails to load AL library on lwjgl2) by @Ali-RS in https://gi...
jMonkeyEngine 3.6.0-beta3
A non-production release for development and testing, which will hopefully lead to a "stable" release.
Noteworthy changes relative to 3.6.0-beta2:
-
Bugs and defects addressed:
- resolve issue #1955 (Can not play vorbis audio on Android API 31+) by @Scrappers-glitch in #1956
- jme3-jogg: remove dependency on Java Media Framework by @stephengold in #1962
- solve issue #1960 (use jme3-jogg for loading ogg files on android) and #1972 (Cannot load ogg audio from classpath in Android) by @Ali-RS in #1961
- solve issue #1963 (TestMusicPlayer fails to load AL library on lwjgl2) by @Ali-RS in #1964
- Replace Exception with warning in TerrainPatch by @yaRnMcDonuts in #1966
- solve issue #1969: missing check in GLRenderer.clearVertexAttribs() by @stephengold in #1970
- solve issue #1975: TestAttachDriver doesn't reset properly by @stephengold in #1976
Full Changelog: v3.6.0-beta2...v3.6.0-beta3
jMonkeyEngine 3.6.0-beta2
A non-production release for development and testing, which will hopefully lead to a "stable" release.
Noteworthy changes relative to 3.6.0-beta1:
-
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:
Full Changelog: v3.6.0-beta1...v3.6.0-beta2
jMonkeyEngine 3.6.0-beta1
A non-production release for development and testing, which will hopefully lead to a "stable" release.
Noteworthy changes relative to 3.6.0-alpha3:
-
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
Full Changelog: v3.6.0-alpha3...v3.6.0-beta1
jMonkeyEngine 3.6.0-alpha3
A non-production release, for development and testing only, not intended to be used in any product. Largely untested, without complete/reliable documentation, and without SDK support. Vital features may be missing. The feature set, API, and serialization format might change before the next release.
Noteworthy changes relative to v3.6.0-alpha2:
-
New features:
- add 4 getters to JmeContext for screen position and frame-buffer size by @stephengold in #1911
-
Bugs and defects addressed:
-
General improvements:
Full Changelog: v3.6.0-alpha2...v3.6.0-alpha3
jMonkeyEngine 3.6.0-alpha2
A non-production release, for development and testing only, not intended to be used in any product. Largely untested, without complete/reliable documentation, and without SDK support. Vital features may be missing. The feature set, API, and serialization format might change before the next release.
Noteworthy changes relative to v3.6.0-alpha1:
-
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
Full Changelog: v3.6.0-alpha1...v3.6.0-alpha2
jMonkeyEngine 3.6.0-alpha1
A non-production release, for development and testing only, not intended to be used in any product. Largely untested, without complete/reliable documentation, and without SDK support. Vital features may be missing. The feature set, API, and serialization format might change before the next release.
Changes relative to v3.5.2-stable:
-
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...
jMonkeyEngine 3.5.2-stable
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
jMonkeyEngine 3.5.1-stable
A production-quality JMonkeyEngine 3.5 patch release with the following changes relative to 3.5.0-stable:
-
Bugs and defects addressed:
-
General improvements:
jMonkeyEngine 3.5.0-stable
A production-quality release of JMonkeyEngine with the following noteworthy changes relative to v3.4.1-stable:
-
Upgrade considerations (potential breaking changes):
- explicitly requires Java v8 or higher (issue #1661)
- cannot create a GL window on armhf (issue #1710)
- to use the "jme3-lwjgl3" library in a Gradle build, you'll need Gradle v6.3 or later
- 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, a9e88b0)
RectangleMesh
class for custom quads (PR #1701)calculateD()
andcalculateNormal()
methods inRectangle
class (PR #1701)CenterQuad
mesh in jme3-core (PR #1704)- added
getNbMorphTargets()
,setKeyframesWeight()
, andsetNbMorphTargets()
to theMorphTrack
class (PR #1608) - made
getOffsetTransform()
andgetAttachmentsNode()
accessible to subclasses ofJoint
(PR #1536) - distinguish ARM macOS/Windows from other platforms (issue #1528, PR #1530)
Platform.getOs()
to determine the generic OS name (cc75352)- convert inner class
Layer
to a top-level class (issue #1566, PRs #1656 and #1730)
- enhancements to
-
Bugs and defects addressed:
- LWJGL v3 hangs while creating a window (issues #1193, #1514, and #1558; PRs #1690 and #1722)
- incorrect cursor position on macOS with Retina (issue #893, PRs #1607, #1746, and #1753; c44d74b)
- Right-to-Left and cursive fonts displayed incorrectly (issue #1158, PR #1685)
- incorrect
VirtualIndexBuffer
for aLineLoop
mesh (issue #1603, PR #1605) ChaseCamera
won't rotate after being re-enabled (PR #1692)- ineffective audio filters (issue #1699, PRs #1707 and #1728)
NullPointerException
inreloadJoysticks()
when joystick lacks buttons (issue #1739, PR #1740)LwjglCanvas
doesn't initialize OpenCL for LWJGL v2 (PR #1720)sphericalToCartesianZ()
doesn't reversecartesianZToSpherical()
(issue #1349, PR #1573)- null-pointer exceptions while loading erroneous glTF models:
- cryptic crash when more than 16 textures are used (issue #37, PR #1574)
- error 1280 in macOS querying
GL_FRAMEBUFFER_SRGB_CAPABLE_EXT
(PR #1749) fromJmeKeyCode()
returns garbage for unknown keys (issue #1596, PR #1638)- serialization bugs:
- typo in the value returned by
LodGenerator.toString()
(cfa497d) - typos in logger/exception messages (PRs #1584 and #1737, 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) - numerous javadoc improvements
- improvements to examples and tests
-
New deprecations: