The release that will live in infamy… probably.
We have just pushed the jMonkeyEngine 3.1 alpha 4 tag and the new jars are available on jcenter.
Highlights:
- Breaking change converting Application class to an interface
- New cloning system
- Some shadow enhancements
- A few other bug fixes.
THERE ARE SOME BREAKING CHANGES IN THIS RELEASE!!!
Now that I have your attention. At the very least, you will need to clean build your applications and any dependencies that refer to the Application class.
And for those who just skim, let me make that clearer:
“But why is that, Paul?”
Well, I’m glad you asked.
Sometime back it was decided that we should really refactor the Application class. SimpleApplication especially is a mess of ‘magic’ protected fields that on the one hand makes it really easy to slam some simple one-class application together, but on the other hand does new users no favors because they have no idea with ‘cam’ and ‘assetManager’ come from.
Unfortunately, lots of code refers to Application and it’s tough to change… especially the app states. Oh… the app states.
So, we hatched a plan to convert the Application class to an interface. This would give us some freedom to iterate on a new set of application base classes. The old Application concrete class becomes “LegacyApplication” as a big red sign that it’s soon to be replaced in some future version.
This means that anyone extending Application directly (hopefully very few of you) will have to change to LegacyApplication.
It also means that all applications will need to clean build because Java treats interfaces and classes differently at runtime and will complain.
“But why are you just getting to it now instead of a year ago?”
That is a very good question.
Before we had regular versions pumping out, it was nearly impossible for dependent libraries (like Lemur, etc.) to manage a change like this. Trying to depend on 3.1 anything was hard enough. So we had to wait for a few stable alphas to go out as maven dependencies to make it easier for the libraries to nail down theirs.
(For example, Lemur just pushed a 1.7.1 which is the last alpha3 compatible release and 1.8.1 which is the first alpha4+ compatible release… this would have been impossible before.)
“But why not wait until 3.2?”
For similar reasons, this kind of change would likely prevent anyone from ever trying out 3.2 while in development. The change is a relatively minor one now. Apps need only recompile. The dependent libraries will also need to recompile. But then everyone is on stable footing and new base application classes can evolve in 3.2 nicely. People looking forward to that can dip their toes in without any additional pain.
Also, we had a few breaking changes like this planned for 3.1 and alphas are the time to get those out. This is the last one planned (well, except the one I’m about to talk about that’s also in this release that ‘might’ be a breaking change.)
For 99.999% of you, a clean build is all you will need when you upgrade.
The New Cloning System
On the path to getting rid of the ugly that is cloneForSpatial(), we have implemented a new cloning system. All of the Spatial (and subclasses) and controls have been modified to use this new cloning system. It is similar to how objects are serialized by Java in that once an object is cloned it will not be cloned again. Therefore, shared references are automatically fixed-up and it even handles circular references. This makes the logic in cloneForSpatial() obsolete.
If you implement custom controls then you might care about this. 90% of controls probably already just extended AbstractControl and got cloning for free (or could have). If your control keeps references to other things or simply has fields it wants to clone, it can now override the new cloneFields() method and call the Cloner to clone its fields. Most use cases will then be handled automatically. I can follow-up separately for anyone curious.
So, this might be a breaking change for you if you rely on cloneForSpatial() for specific behavior in your clone subclasses. The good news is that you probably don’t have to do that anymore. The bad news is that until you fix it then cloning your control will be broken. Probably most of you don’t clone your custom controls anyway.
Note: I changed a LOT of classes and it’s quite likely I broke something even in the regular cases. I’ve tested animation and some other troublesome bits already but we may find issues and fixes will be rapidly forthcoming.
What’s next?!?
These should be the last of the breaking changes as they were the last two major to-do items on the list. From here, we are on the road to beta. Barring major complications, I’d like to have one more alpha before we branch and make beta. (I haven’t really discussed this with the team directly but this was sort of the sentiment in recent conversations.)
If there are bugs related to cloning, we may do an alpha5 sooner than two weeks. Else, I will push alpha 5 in another two weeks and we can create the 3.1 branch to prepare for betas.
Once the 3.1 branch is created master will become 3.2. At least that’s MY plan.
Anyway, here is the full changelog for alpha4 for those who care:
commit + 3c56afeae6b568d6047e59eed82fc8b3c203d4b1
Author: Paul Speed <pspeed42@users.noreply.github.com>
Date: Mon Mar 28 01:47:33 2016 -0400
Converted Application to an interface and renamed the old Application to
LegacyApplication. This is a breaking change for any class extending Application
directly.
And regardless, if you refer to Application then you will need to clean build
your app... and any of your dependencies that also refer to Application. Basically,
anything using an AppState will need to be clean built against the next alpha.
M jme3-android/src/main/java/com/jme3/app/AndroidHarness.java
M jme3-android/src/main/java/com/jme3/app/AndroidHarnessFragment.java
M jme3-core/src/main/java/com/jme3/app/Application.java
A jme3-core/src/main/java/com/jme3/app/LegacyApplication.java
M jme3-core/src/main/java/com/jme3/app/SimpleApplication.java
M jme3-core/src/main/java/com/jme3/app/StatsAppState.java
M jme3-desktop/src/main/java/com/jme3/app/AppletHarness.java
M jme3-examples/src/main/java/jme3test/app/TestApplication.java
M jme3-examples/src/main/java/jme3test/app/TestBareBonesApp.java
M jme3-examples/src/main/java/jme3test/app/TestContextRestart.java
M jme3-examples/src/main/java/jme3test/app/state/TestAppStates.java
M jme3-examples/src/main/java/jme3test/awt/AppHarness.java
M jme3-examples/src/main/java/jme3test/awt/TestApplet.java
M jme3-examples/src/main/java/jme3test/awt/TestCanvas.java
commit + ab6fb03171589820c9b899ee77a93b0aca6da190
Author: Paul Speed <pspeed42@users.noreply.github.com>
Date: Sun Mar 27 06:14:52 2016 -0400
Converted spatial over to use Cloner to do its various
deep and semi-shallow cloning. I'd be very surprised if nothing
is broken as there is only so much testing I can easily do.
Also various fixes for places I forgot to call super.cloneFields().
M jme3-core/src/main/java/com/jme3/animation/EffectTrack.java
M jme3-core/src/main/java/com/jme3/audio/AudioNode.java
M jme3-core/src/main/java/com/jme3/effect/ParticleEmitter.java
M jme3-core/src/main/java/com/jme3/effect/influencers/RadialParticleInfluencer.java
M jme3-core/src/main/java/com/jme3/font/BitmapText.java
M jme3-core/src/main/java/com/jme3/scene/AssetLinkNode.java
M jme3-core/src/main/java/com/jme3/scene/BatchNode.java
M jme3-core/src/main/java/com/jme3/scene/CameraNode.java
M jme3-core/src/main/java/com/jme3/scene/Geometry.java
M jme3-core/src/main/java/com/jme3/scene/LightNode.java
M jme3-core/src/main/java/com/jme3/scene/Mesh.java
M jme3-core/src/main/java/com/jme3/scene/Node.java
M jme3-core/src/main/java/com/jme3/scene/Spatial.java
M jme3-core/src/main/java/com/jme3/scene/instancing/InstancedGeometry.java
M jme3-core/src/main/java/com/jme3/scene/instancing/InstancedNode.java
M jme3-terrain/src/main/java/com/jme3/terrain/geomipmap/NormalRecalcControl.java
M jme3-terrain/src/main/java/com/jme3/terrain/geomipmap/TerrainLodControl.java
M jme3-terrain/src/main/java/com/jme3/terrain/geomipmap/TerrainPatch.java
M jme3-terrain/src/main/java/com/jme3/terrain/geomipmap/TerrainQuad.java
commit + 0a876b04d21af0c5ebd40a805d3a9f433fcd8784
Author: Paul Speed <pspeed42@users.noreply.github.com>
Date: Sun Mar 27 06:11:41 2016 -0400
Added a TestCloneSpatial example to do some basic clone testing.
A jme3-examples/src/main/java/jme3test/app/TestCloneSpatial.java
commit + 95d5f58d68b76adff6305effd624eeebde1c2e60
Author: Paul Speed <pspeed42@users.noreply.github.com>
Date: Sun Mar 27 06:10:50 2016 -0400
Modified the run task to pass through the log configurion
settings system property.
M jme3-examples/build.gradle
commit + f7c16e878ea5350efb8ac369a1b07116c7a88bf4
Author: Paul Speed <pspeed42@users.noreply.github.com>
Date: Sun Mar 27 05:38:43 2016 -0400
Modified the clone function lookup to support inheritence.
It's just too useful for things like Mesh which has a dozen
or more subclasses... more useful than the limitations.
M jme3-core/src/main/java/com/jme3/util/clone/Cloner.java
commit + 2028f3b3f864884d03d4ee9bf2b86f87688ee691
Author: Paul Speed <pspeed42@users.noreply.github.com>
Date: Sun Mar 27 04:53:12 2016 -0400
Added 'finer' logging for the clone() method to provide visibility for
debugging.
Added a setClonedValue() method to force uncloned or precloned references
in some specific use-cases.
Added an isCloned() method to tell if an object has already been cloned
in this cloner's 'session'.
M jme3-core/src/main/java/com/jme3/util/clone/Cloner.java
commit + c6aac78f426886b7e71e7cc819678c6deae5ed8e
Author: Paul Speed <pspeed42@users.noreply.github.com>
Date: Sun Mar 27 04:51:31 2016 -0400
Added a clone() method and implement Cloneable.
Removed whitespace from the ends of lines.
M jme3-core/src/main/java/com/jme3/util/SafeArrayList.java
commit + 7b29c58fe075ef0127ecb976d96d6e3e22655b64
Author: Paul Speed <pspeed42@users.noreply.github.com>
Date: Sat Mar 26 05:29:22 2016 -0400
JmeCloneable related changes to TerrainQuad and TerrainPatch. Fixed
something I missed in NormalRecalcControl.
M jme3-terrain/src/main/java/com/jme3/terrain/geomipmap/NormalRecalcControl.java
M jme3-terrain/src/main/java/com/jme3/terrain/geomipmap/TerrainPatch.java
M jme3-terrain/src/main/java/com/jme3/terrain/geomipmap/TerrainQuad.java
commit + eda92656dd3f16992b7d551322514a874033e06e
Author: Paul Speed <pspeed42@users.noreply.github.com>
Date: Sat Mar 26 04:19:59 2016 -0400
Updated AudioNode with a JmeCloneable cloneFields() method
to clone its fields. Some small change in behavior since the new
methods will clone the filters, too, to avoid 'user surprise'.
M jme3-core/src/main/java/com/jme3/audio/AudioNode.java
commit + 2f246b25bbd5648d9d343f75a98847695a3a3226
Author: Paul Speed <pspeed42@users.noreply.github.com>
Date: Sat Mar 26 04:08:51 2016 -0400
Added cloneFields() method to BitmapText thought it's probably
fruitless since BitmapText isn't even properly saveable and couldn't
possibly have worked for any dynamic text with the old clone()
method.
Also a bunch of white space changes removing spaces at the ends of
lines.
M jme3-core/src/main/java/com/jme3/font/BitmapText.java
M jme3-core/src/main/java/com/jme3/font/Letters.java
commit + 3f1c696e2674f132fe989ec171c5c041d56380e1
Author: Paul Speed <pspeed42@users.noreply.github.com>
Date: Sat Mar 26 03:55:58 2016 -0400
Adding a comment about the strange shared fields in BitmapTextPage
that I'm not going to touch with a ten foot pole.
M jme3-core/src/main/java/com/jme3/font/BitmapTextPage.java
commit + 7665fef2dede5703c928ec9bef0a962c44324f47
Author: Paul Speed <pspeed42@users.noreply.github.com>
Date: Sat Mar 26 03:46:48 2016 -0400
ParticleEmitter and related classes (ugh) now implement JmeCloneable.
It hasn't replaced the old clone() method yet and is still untested.
M jme3-core/src/main/java/com/jme3/effect/ParticleEmitter.java
M jme3-core/src/main/java/com/jme3/effect/influencers/DefaultParticleInfluencer.java
M jme3-core/src/main/java/com/jme3/effect/influencers/EmptyParticleInfluencer.java
M jme3-core/src/main/java/com/jme3/effect/influencers/NewtonianParticleInfluencer.java
M jme3-core/src/main/java/com/jme3/effect/influencers/ParticleInfluencer.java
M jme3-core/src/main/java/com/jme3/effect/influencers/RadialParticleInfluencer.java
M jme3-core/src/main/java/com/jme3/effect/shapes/EmitterBoxShape.java
M jme3-core/src/main/java/com/jme3/effect/shapes/EmitterMeshVertexShape.java
M jme3-core/src/main/java/com/jme3/effect/shapes/EmitterPointShape.java
M jme3-core/src/main/java/com/jme3/effect/shapes/EmitterShape.java
M jme3-core/src/main/java/com/jme3/effect/shapes/EmitterSphereShape.java
commit + 6e999aa79bf3fc37e8a1d7836b0b1933db3ced81
Author: Paul Speed <pspeed42@users.noreply.github.com>
Date: Sat Mar 26 03:45:34 2016 -0400
Tired of committing around the generated version.prpoerties
file... so I'm remove it and fixing it with a .gitignore.
A jme3-core/src/main/resources/com/jme3/system/.gitignore
D jme3-core/src/main/resources/com/jme3/system/version.properties
commit + 07088452ffac45278fdd49abab1f8f30574fc931
Author: Nehon <remy.bouquet@gmail.com>
Date: Fri Mar 25 23:49:07 2016 +0100
Fixed binormal calculation in Single pass lighting
M jme3-core/src/main/resources/Common/MatDefs/Light/SPLighting.frag
M jme3-core/src/main/resources/Common/MatDefs/Light/SPLighting.vert
A jme3-examples/src/main/java/jme3test/light/TestTangentSpace.java
A jme3-testdata/src/main/resources/Models/Test/BasicCubeLow.obj
A jme3-testdata/src/main/resources/Models/Test/Normal_pixel.png
commit + 2bdb3de2f5ff26d34219664e21398064aedd2cce
Author: Paul Speed <pspeed42@users.noreply.github.com>
Date: Fri Mar 25 04:31:10 2016 -0400
Started implementing the JmeCloneable stuff for Spatial
and Mesh. Still need to catch some of the outer subclasses of
Node and Geometry. Nothing is hooked up or tested yet.
M jme3-core/src/main/java/com/jme3/app/StatsView.java
M jme3-core/src/main/java/com/jme3/light/LightList.java
M jme3-core/src/main/java/com/jme3/scene/AssetLinkNode.java
M jme3-core/src/main/java/com/jme3/scene/BatchNode.java
M jme3-core/src/main/java/com/jme3/scene/CameraNode.java
M jme3-core/src/main/java/com/jme3/scene/Geometry.java
M jme3-core/src/main/java/com/jme3/scene/LightNode.java
M jme3-core/src/main/java/com/jme3/scene/Mesh.java
M jme3-core/src/main/java/com/jme3/scene/Node.java
M jme3-core/src/main/java/com/jme3/scene/Spatial.java
M jme3-core/src/main/java/com/jme3/scene/instancing/InstancedGeometry.java
M jme3-core/src/main/java/com/jme3/scene/instancing/InstancedNode.java
M jme3-core/src/main/java/com/jme3/util/IntMap.java
M jme3-core/src/main/resources/com/jme3/system/version.properties
commit + 665908cdeef516307ff124f69d001d53e60bfb3c
Author: MeFisto94 <MeFisto94@users.noreply.github.com>
Date: Thu Mar 24 20:52:17 2016 +0100
Improved the MotionEvent Cloning to not throw an NPE or edit constant Vectors
M jme3-core/src/main/java/com/jme3/cinematic/events/MotionEvent.java
commit + 5970444b9c906fcdc64db38be356df869334f80b
Author: Nehon <remy.bouquet@gmail.com>
Date: Tue Mar 22 18:07:58 2016 +0100
Fixed an issue with previous commit on shadows, in the glsl100 shader
M jme3-core/src/main/resources/Common/MatDefs/Shadow/PostShadowFilter.frag
commit + 493855bac96e20af7ec3895e40dfb5b0f99d56ec
Author: Nehon <remy.bouquet@gmail.com>
Date: Sun Mar 20 21:36:28 2016 +0100
LineWidth is now a RenderState parameter, One can change the lineWidth used to render a mesh wireframe or a mesh in Lines mode by using material.getAdditionalRenderState().setLineWidth(value)
M jme3-core/src/main/java/com/jme3/material/RenderState.java
M jme3-core/src/main/java/com/jme3/renderer/RenderContext.java
M jme3-core/src/main/java/com/jme3/renderer/opengl/GLRenderer.java
M jme3-core/src/main/java/com/jme3/scene/BatchNode.java
M jme3-core/src/main/java/com/jme3/scene/Mesh.java
M jme3-core/src/plugins/java/com/jme3/material/plugins/J3MLoader.java
M jme3-examples/src/main/java/jme3test/collision/TestMousePick.java
M jme3-examples/src/main/java/jme3test/light/TestTangentGenBadModels.java
M jme3-examples/src/main/java/jme3test/model/shape/TestDebugShapes.java
A jme3-examples/src/main/java/jme3test/scene/TestLineWidthRenderState.java
M jme3-plugins/src/main/java/com/jme3/material/plugin/export/material/J3MRenderStateOutputCapsule.java
M jme3-plugins/src/test/java/com/jme3/material/plugin/TestMaterialWrite.java
commit + 8477fa781b210c847e0f2845d48cb46bc518569d
Author: MeFisto94 <MeFisto94@users.noreply.github.com>
Date: Sun Mar 20 20:25:39 2016 +0100
Fixed another NPE when missing serialized waypoints and fixed having different names for write/read
M jme3-core/src/main/java/com/jme3/math/Spline.java
commit + c4525aa5506a4cc74d82d264a0b077ec896035c4
Author: Nehon <remy.bouquet@gmail.com>
Date: Sun Mar 20 18:56:19 2016 +0100
Fixed MotionEvent clone for Spatial as it was resulting in controls added twice to the spatial. Also removed a useless line in all the constructors.
M jme3-core/src/main/java/com/jme3/cinematic/events/MotionEvent.java
commit + 23fe0658a61df8f3fad302ae11561bf9b741a5f8
Author: MeFisto94 <MeFisto94@users.noreply.github.com>
Date: Sun Mar 20 12:45:19 2016 +0100
Fixed a NPE when Serializing a Spline without points. Also fixed a Typo.
M jme3-core/src/main/java/com/jme3/math/Spline.java
commit + 15c9c083cd14b99e0460a2a8930701ff053dfac1
Author: MeFisto94 <MeFisto94@users.noreply.github.com>
Date: Sun Mar 20 10:11:04 2016 +0100
Allow MotionEvents to be cloned
M jme3-core/src/main/java/com/jme3/cinematic/events/MotionEvent.java
commit + 8b1ddbe60fadb8955efbcd8cef38090d20b1bdea
Author: Paul Speed <pspeed42@users.noreply.github.com>
Date: Sun Mar 20 02:47:16 2016 -0400
First round of getting JmeCloneable implemented... added
support for Cloner to the controls that implemented cloneForSpatial().
Unused until spatial cloning is implemented.
M jme3-bullet/src/common/java/com/jme3/bullet/control/AbstractPhysicsControl.java
M jme3-bullet/src/common/java/com/jme3/bullet/control/BetterCharacterControl.java
M jme3-bullet/src/common/java/com/jme3/bullet/control/CharacterControl.java
M jme3-bullet/src/common/java/com/jme3/bullet/control/GhostControl.java
M jme3-bullet/src/common/java/com/jme3/bullet/control/KinematicRagdollControl.java
M jme3-bullet/src/common/java/com/jme3/bullet/control/RigidBodyControl.java
M jme3-bullet/src/common/java/com/jme3/bullet/control/VehicleControl.java
M jme3-core/src/main/java/com/jme3/animation/AnimControl.java
M jme3-core/src/main/java/com/jme3/animation/Animation.java
M jme3-core/src/main/java/com/jme3/animation/AudioTrack.java
M jme3-core/src/main/java/com/jme3/animation/ClonableTrack.java
M jme3-core/src/main/java/com/jme3/animation/EffectTrack.java
M jme3-core/src/main/java/com/jme3/animation/Skeleton.java
M jme3-core/src/main/java/com/jme3/animation/SkeletonControl.java
M jme3-core/src/main/java/com/jme3/animation/TrackInfo.java
M jme3-core/src/main/java/com/jme3/app/StatsView.java
M jme3-core/src/main/java/com/jme3/cinematic/events/MotionEvent.java
M jme3-core/src/main/java/com/jme3/effect/ParticleEmitter.java
M jme3-core/src/main/java/com/jme3/input/ChaseCamera.java
M jme3-core/src/main/java/com/jme3/scene/control/AbstractControl.java
M jme3-core/src/main/java/com/jme3/scene/control/LodControl.java
M jme3-core/src/main/java/com/jme3/scene/control/UpdateControl.java
M jme3-core/src/main/java/com/jme3/scene/instancing/InstancedNode.java
M jme3-examples/src/main/java/jme3test/bullet/PhysicsHoverControl.java
M jme3-examples/src/main/java/jme3test/light/TestPssmShadow.java
M jme3-terrain/src/main/java/com/jme3/terrain/geomipmap/NormalRecalcControl.java
M jme3-terrain/src/main/java/com/jme3/terrain/geomipmap/TerrainLodControl.java
commit + b218f4104e6cb0579931d2664f114bd72ff9abd8
Author: Nehon <remy.bouquet@gmail.com>
Date: Thu Mar 17 18:05:53 2016 +0100
Forgot to commit the change in the Cornell box model
M jme3-examples/src/main/java/jme3test/light/TestPointLightShadows.java
M jme3-testdata/src/main/resources/Models/Test/CornellBox.j3o
commit + be3dc06e28b1d2418cb902ac653d635c0e0c86e6
Author: jmekaelthas <mroguski@poczta.fm>
Date: Thu Mar 17 18:05:27 2016 +0100
Bugfix: fixed a bug that caused NPE during vertex groups loading when
mesh block was saved without its parent.
M jme3-blender/src/main/java/com/jme3/scene/plugins/blender/meshes/MeshHelper.java
commit + dff4befafb3ea75f57fadb18c94f4fd3b8edb6d1
Author: Nehon <remy.bouquet@gmail.com>
Date: Thu Mar 17 17:58:41 2016 +0100
Added an option to not render backfaces shadows with the shadow renderer and the shadow filter. It's the default for the renderer but not for the filter as it may have some edges artifacts.
M jme3-core/src/main/java/com/jme3/shadow/AbstractShadowFilter.java
M jme3-core/src/main/java/com/jme3/shadow/AbstractShadowRenderer.java
M jme3-core/src/main/java/com/jme3/shadow/DirectionalLightShadowRenderer.java
M jme3-core/src/main/resources/Common/MatDefs/Light/Lighting.j3md
M jme3-core/src/main/resources/Common/MatDefs/Misc/Unshaded.j3md
M jme3-core/src/main/resources/Common/MatDefs/Shadow/PostShadow.frag
M jme3-core/src/main/resources/Common/MatDefs/Shadow/PostShadow.j3md
M jme3-core/src/main/resources/Common/MatDefs/Shadow/PostShadow.vert
M jme3-core/src/main/resources/Common/MatDefs/Shadow/PostShadowFilter.frag
M jme3-core/src/main/resources/Common/MatDefs/Shadow/PostShadowFilter.j3md
M jme3-core/src/main/resources/Common/MatDefs/Shadow/PostShadowFilter15.frag
M jme3-examples/src/main/java/jme3test/light/TestDirectionalLightShadow.java
M jme3-examples/src/main/java/jme3test/light/TestPointLightShadows.java
commit + 32be69f3e6221cf3c9f0955b5e5cb0079b695bca
Author: Nehon <remy.bouquet@gmail.com>
Date: Thu Mar 17 14:34:18 2016 +0100
Remove a lot of duplicate code for shadows
M jme3-core/src/main/java/com/jme3/shadow/AbstractShadowRenderer.java
M jme3-core/src/main/resources/Common/MatDefs/Light/Lighting.j3md
M jme3-core/src/main/resources/Common/MatDefs/Misc/Unshaded.j3md
M jme3-core/src/main/resources/Common/MatDefs/Shadow/PostShadow.frag
M jme3-core/src/main/resources/Common/MatDefs/Shadow/PostShadow.j3md
M jme3-core/src/main/resources/Common/MatDefs/Shadow/PostShadow.vert
D jme3-core/src/main/resources/Common/MatDefs/Shadow/PostShadow15.frag
D jme3-core/src/main/resources/Common/MatDefs/Shadow/PostShadow15.vert
M jme3-core/src/main/resources/Common/MatDefs/Shadow/PostShadowFilter15.frag
M jme3-core/src/main/resources/Common/ShaderLib/Shadows.glsllib
D jme3-core/src/main/resources/Common/ShaderLib/Shadows15.glsllib
M jme3-examples/src/main/java/jme3test/light/TestSpotLightShadows.java
commit + 107123820bed1fd215566d3e3edad7cb84e1d304
Author: Nehon <remy.bouquet@gmail.com>
Date: Thu Mar 17 14:02:12 2016 +0100
Fixed material exporting NPE when the additionalRenderState is null
M jme3-plugins/src/main/java/com/jme3/material/plugin/export/material/J3MRootOutputCapsule.java
commit + ef35af958b157a93b1379400706b74259a124f98
Author: iwgeric <iwgeric@gmail.com>
Date: Thu Mar 17 08:57:21 2016 -0400
Remove logging on touch events
M jme3-android/src/main/java/com/jme3/input/android/AndroidTouchInput.java
commit + 13f68c623cedb7b3f8f254e4cf00741a83d9757b
Author: jmekaelthas <mroguski@poczta.fm>
Date: Tue Mar 15 17:24:23 2016 +0100
Bugfix: fixed small bug in face triangulation and several computations
in the Edge class.
M jme3-blender/src/main/java/com/jme3/scene/plugins/blender/meshes/Edge.java
M jme3-blender/src/main/java/com/jme3/scene/plugins/blender/meshes/Face.java
commit + 26719e004709010d3ee220bf82395c0bd70bcb0c
Author: Nehon <remy.bouquet@gmail.com>
Date: Mon Mar 14 20:29:58 2016 +0100
Fixed sign post material and adjusted ambient lights for the spot lights tests
M jme3-examples/src/main/java/jme3test/light/TestSpotLight.java
M jme3-examples/src/main/java/jme3test/light/TestSpotLightShadows.java
M jme3-examples/src/main/java/jme3test/light/TestSpotLightTerrain.java
M jme3-testdata/src/main/resources/Models/Sign Post/Sign Post.j3m
commit + d9f489d8ddedde9620b7c9d0d773322d099598ec
Author: Dokthar <jmaselbas@gmail.com>
Date: Sat Mar 12 13:55:39 2016 +0100
removed unnecessary changes
M jme3-examples/src/main/java/jme3test/bullet/PhysicsHoverControl.java
M jme3-examples/src/main/java/jme3test/bullet/TestHoveringTank.java
commit + 3e0b838324586f123d81404924b68a728b2ddf73
Author: Dokthar <jmaselbas@gmail.com>
Date: Sat Mar 12 13:50:26 2016 +0100
fix NPE when launching the hovering test with native bullet
M jme3-examples/src/main/java/jme3test/bullet/PhysicsHoverControl.java
M jme3-examples/src/main/java/jme3test/bullet/TestHoveringTank.java
commit + 947904b71d35c45192955cbba0abc5937ec60eea
Author: InShadow <tomo.cesnik@gmail.com>
Date: Wed Mar 9 07:49:07 2016 -0800
Added public method getGeometry on Batch class.
M jme3-core/src/main/java/com/jme3/scene/BatchNode.java