Hi devs!
OpenGL 3 is broken in JME RC2. I tested on 2 different machines with different video cards. And I tested different test classes. All shaders do not work in OpenGL3 (Sky, Unshaded, Lighting).
I add these lines to main() method:
[java]
AppSettings aps = new AppSettings(true);
aps.setRenderer(AppSettings.LWJGL_OPENGL3);
app.setSettings(aps);
[/java]
If I set “LWJGL_OPENGL2”, so everything works ok.
JME Beta worked ok with OpenGL 3.
Tested with official JME test classes:
http://code.google.com/p/jmonkeyengine/source/browse/branches/jme3/src/test/jme3test/texture/TestSkyLoading.java?r=6396
http://code.google.com/p/jmonkeyengine/source/browse/branches/jme3/src/test/jme3test/material/TestSimpleBumps.java?r=6396
http://code.google.com/p/jmonkeyengine/source/search?q=testunshaded&origq=testunshaded&btnG=Search+Trunk
If i set “LWJGL_OPENGL3” so i’ll have only black screen.
LOG OF TestUnshadedModel.java with “LWJGL_OPENGL3”:
окт 13, 2012 12:02:48 PM com.jme3.system.JmeDesktopSystem initialize
INFO: Running on jMonkeyEngine 3.0.0 Beta
окт 13, 2012 12:02:48 PM com.jme3.system.Natives extractNativeLibs
INFO: Extraction Directory: /home/mifth/jMonkeyProjects/JmeTests3
окт 13, 2012 12:02:48 PM com.jme3.system.lwjgl.LwjglAbstractDisplay run
INFO: Using LWJGL 2.8.4
окт 13, 2012 12:02:48 PM com.jme3.system.lwjgl.LwjglDisplay createContext
INFO: Selected display mode: 640 x 480 x 0 @0Hz
окт 13, 2012 12:02:48 PM com.jme3.system.lwjgl.LwjglContext printContextInitInfo
INFO: Adapter: null
окт 13, 2012 12:02:48 PM com.jme3.system.lwjgl.LwjglContext printContextInitInfo
INFO: Driver Version: null
окт 13, 2012 12:02:48 PM com.jme3.system.lwjgl.LwjglContext printContextInitInfo
INFO: Vendor: NVIDIA Corporation
окт 13, 2012 12:02:48 PM com.jme3.system.lwjgl.LwjglContext printContextInitInfo
INFO: OpenGL Version: 3.3.0 NVIDIA 295.49
окт 13, 2012 12:02:48 PM com.jme3.system.lwjgl.LwjglContext printContextInitInfo
INFO: Renderer: GeForce GTS 250/PCIe/SSE2
окт 13, 2012 12:02:48 PM com.jme3.system.lwjgl.LwjglContext printContextInitInfo
INFO: GLSL Ver: 3.30 NVIDIA via Cg compiler
окт 13, 2012 12:02:48 PM com.jme3.system.lwjgl.LwjglTimer
INFO: Timer resolution: 1 000 ticks per second
окт 13, 2012 12:02:48 PM com.jme3.renderer.lwjgl.LwjglRenderer initialize
INFO: Caps: [FrameBuffer, FrameBufferMRT, FrameBufferMultisample, TextureMultisample, OpenGL20, OpenGL21, OpenGL30, OpenGL31, OpenGL32, ARBprogram, GLSL100, GLSL110, GLSL120, GLSL130, GLSL140, GLSL150, VertexTextureFetch, TextureArray, TextureBuffer, FloatTexture, FloatColorBuffer, FloatDepthBuffer, PackedFloatTexture, SharedExponentTexture, PackedFloatColorBuffer, TextureCompressionLATC, NonPowerOfTwoTextures, MeshInstancing, VertexBufferArray, Multisample, PackedDepthStencilBuffer]
окт 13, 2012 12:02:48 PM com.jme3.asset.DesktopAssetManager
INFO: DesktopAssetManager created.
окт 13, 2012 12:02:48 PM com.jme3.renderer.Camera
INFO: Camera created (W: 640, H: 480)
окт 13, 2012 12:02:48 PM com.jme3.renderer.Camera
INFO: Camera created (W: 640, H: 480)
окт 13, 2012 12:02:48 PM com.jme3.input.lwjgl.LwjglMouseInput initialize
INFO: Mouse created.
окт 13, 2012 12:02:48 PM com.jme3.input.lwjgl.LwjglKeyInput initialize
INFO: Keyboard created.
окт 13, 2012 12:02:48 PM com.jme3.audio.lwjgl.LwjglAudioRenderer initInThread
INFO: AudioRenderer supports 64 channels
окт 13, 2012 12:02:48 PM com.jme3.audio.lwjgl.LwjglAudioRenderer initInThread
INFO: Audio effect extension version: 1.0
окт 13, 2012 12:02:48 PM com.jme3.audio.lwjgl.LwjglAudioRenderer initInThread
INFO: Audio max auxilary sends: 4
окт 13, 2012 12:02:48 PM com.jme3.material.MaterialDef
INFO: Loaded material definition: Unshaded
окт 13, 2012 12:02:49 PM com.jme3.scene.Node attachChild
INFO: Child (BitmapFont) attached to this node (null)
окт 13, 2012 12:02:49 PM com.jme3.util.TangentBinormalGenerator processTriangleData
WARNING: Angle between tangents exceeds tolerance for vertex 990.
окт 13, 2012 12:02:49 PM com.jme3.util.TangentBinormalGenerator processTriangleData
WARNING: Angle between tangents exceeds tolerance for vertex 991.
окт 13, 2012 12:02:49 PM com.jme3.material.MaterialDef
INFO: Loaded material definition: Phong Lighting
окт 13, 2012 12:02:49 PM com.jme3.scene.Node attachChild
INFO: Child (Rock Ball) attached to this node (Root Node)
окт 13, 2012 12:02:49 PM com.jme3.scene.Node attachChild
INFO: Child (null) attached to this node (Gui Node)
окт 13, 2012 12:02:49 PM com.jme3.scene.Node attachChild
INFO: Child (BitmapFont) attached to this node (null)
окт 13, 2012 12:02:49 PM com.jme3.scene.Node attachChild
INFO: Child (null) attached to this node (Statistics View)
окт 13, 2012 12:02:49 PM com.jme3.scene.Node attachChild
INFO: Child (BitmapFont) attached to this node (null)
окт 13, 2012 12:02:49 PM com.jme3.scene.Node attachChild
INFO: Child (null) attached to this node (Statistics View)
окт 13, 2012 12:02:49 PM com.jme3.scene.Node attachChild
INFO: Child (BitmapFont) attached to this node (null)
окт 13, 2012 12:02:49 PM com.jme3.scene.Node attachChild
INFO: Child (null) attached to this node (Statistics View)
окт 13, 2012 12:02:49 PM com.jme3.scene.Node attachChild
INFO: Child (BitmapFont) attached to this node (null)
окт 13, 2012 12:02:49 PM com.jme3.scene.Node attachChild
INFO: Child (null) attached to this node (Statistics View)
окт 13, 2012 12:02:49 PM com.jme3.scene.Node attachChild
INFO: Child (BitmapFont) attached to this node (null)
окт 13, 2012 12:02:49 PM com.jme3.scene.Node attachChild
INFO: Child (null) attached to this node (Statistics View)
окт 13, 2012 12:02:49 PM com.jme3.scene.Node attachChild
INFO: Child (BitmapFont) attached to this node (null)
окт 13, 2012 12:02:49 PM com.jme3.scene.Node attachChild
INFO: Child (null) attached to this node (Statistics View)
окт 13, 2012 12:02:49 PM com.jme3.scene.Node attachChild
INFO: Child (BitmapFont) attached to this node (null)
окт 13, 2012 12:02:49 PM com.jme3.scene.Node attachChild
INFO: Child (null) attached to this node (Statistics View)
окт 13, 2012 12:02:49 PM com.jme3.scene.Node attachChild
INFO: Child (BitmapFont) attached to this node (null)
окт 13, 2012 12:02:49 PM com.jme3.scene.Node attachChild
INFO: Child (null) attached to this node (Statistics View)
окт 13, 2012 12:02:49 PM com.jme3.scene.Node attachChild
INFO: Child (BitmapFont) attached to this node (null)
окт 13, 2012 12:02:49 PM com.jme3.scene.Node attachChild
INFO: Child (null) attached to this node (Statistics View)
окт 13, 2012 12:02:49 PM com.jme3.scene.Node attachChild
INFO: Child (BitmapFont) attached to this node (null)
окт 13, 2012 12:02:49 PM com.jme3.scene.Node attachChild
INFO: Child (null) attached to this node (Statistics View)
окт 13, 2012 12:02:49 PM com.jme3.scene.Node attachChild
INFO: Child (BitmapFont) attached to this node (null)
окт 13, 2012 12:02:49 PM com.jme3.scene.Node attachChild
INFO: Child (null) attached to this node (Statistics View)
окт 13, 2012 12:02:49 PM com.jme3.scene.Node attachChild
INFO: Child (BitmapFont) attached to this node (null)
окт 13, 2012 12:02:49 PM com.jme3.scene.Node attachChild
INFO: Child (null) attached to this node (Statistics View)
окт 13, 2012 12:02:49 PM com.jme3.scene.Node attachChild
INFO: Child (BitmapFont) attached to this node (null)
окт 13, 2012 12:02:49 PM com.jme3.scene.Node attachChild
INFO: Child (null) attached to this node (Statistics View)
окт 13, 2012 12:02:49 PM com.jme3.scene.Node attachChild
INFO: Child (Statistics View) attached to this node (Gui Node)
окт 13, 2012 12:02:49 PM com.jme3.renderer.lwjgl.LwjglRenderer updateUniformLocation
INFO: Uniform g_CameraPosition is not declared in shader [ShaderSource[name=Common/MatDefs/Light/Lighting.vert, defines, type=Vertex, language=GLSL100], ShaderSource[name=Common/MatDefs/Light/Lighting.frag, defines, type=Fragment, language=GLSL100]].
окт 13, 2012 12:02:49 PM com.jme3.renderer.lwjgl.LwjglRenderer updateUniformLocation
INFO: Uniform g_WorldMatrix is not declared in shader [ShaderSource[name=Common/MatDefs/Light/Lighting.vert, defines, type=Vertex, language=GLSL100], ShaderSource[name=Common/MatDefs/Light/Lighting.frag, defines, type=Fragment, language=GLSL100]].
окт 13, 2012 12:02:49 PM com.jme3.renderer.lwjgl.LwjglRenderer updateUniformLocation
INFO: Uniform m_ParallaxHeight is not declared in shader [ShaderSource[name=Common/MatDefs/Light/Lighting.vert, defines, type=Vertex, language=GLSL100], ShaderSource[name=Common/MatDefs/Light/Lighting.frag, defines, type=Fragment, language=GLSL100]].
окт 13, 2012 12:02:49 PM com.jme3.renderer.lwjgl.LwjglRenderer updateUniformLocation
INFO: Uniform m_UseMaterialColors is not declared in shader [ShaderSource[name=Common/MatDefs/Light/Lighting.vert, defines, type=Vertex, language=GLSL100], ShaderSource[name=Common/MatDefs/Light/Lighting.frag, defines, type=Fragment, language=GLSL100]].
окт 13, 2012 12:02:49 PM com.jme3.renderer.lwjgl.LwjglRenderer updateUniformLocation
INFO: Uniform m_VertexColor is not declared in shader [ShaderSource[name=Common/MatDefs/Misc/Unshaded.vert, defines, type=Vertex, language=GLSL100], ShaderSource[name=Common/MatDefs/Misc/Unshaded.frag, defines, type=Fragment, language=GLSL100]].
Sure you don’t have a driver issue?
@nehon said:
Sure you don't have a driver issue?
I tried 2 different nVidia drivers. Issue is with both.
Driver versions:
INFO: OpenGL Version: 3.3.0 NVIDIA 295.49
and
INFO: OpenGL Version: 3.3.0 NVIDIA 295.40
Bump! Can anybody confirm the issue about OpenGL 3?
Just try to add this to the “main()” method:
[java]AppSettings aps = new AppSettings(true);
aps.setRenderer(AppSettings.LWJGL_OPENGL3);
app.setSettings(aps);[/java]
@nehon , I have the same problem on 2 linux machines. Shaders do not work with OpenGL3 (Gui, Unshaded, Lighting). Can you test it on your machine?
Please don’t bump.
I’ll test it
Actually, it is supposed to crash. None of the jME3 shaders are OpenGL3 compatible.
@Momoko_Fan said:
Actually, it is supposed to crash. None of the jME3 shaders are OpenGL3 compatible.
Strange that Beta loaded shaders with enabled OpenGL3. It was fake?
I will try to make GLSL150 shader and test it tomorrow for compatibility.
Ok, I tried to test simple OpenGL3 shader (based on Unshaded) but i failed. It seems the render should bind some parameters like: glBindFragDataLocation().
I see empty screen. Something is failed…
Shader:
http://dl.dropbox.com/u/26887202/JME/OpenGL3/Unshaded2.frag
http://dl.dropbox.com/u/26887202/JME/OpenGL3/Unshaded2.j3md
http://dl.dropbox.com/u/26887202/JME/OpenGL3/Unshaded2.vert
Code:
[java]
public static void main(String[] args) {
Main app = new Main();
AppSettings aps = new AppSettings(true);
aps.setRenderer(AppSettings.LWJGL_OPENGL3);
app.setSettings(aps);
app.start();
}
@Override
public void simpleInitApp() {
Box b = new Box(Vector3f.ZERO, 1, 1, 1);
Geometry char_boy1 = new Geometry("Box", b);
Material mat1 = new Material(assetManager, "Unshaded2.j3md");
char_boy1.setMaterial(mat1);
char_boy1.setLocalTranslation(0,0,0);
TangentBinormalGenerator.generate(char_boy1);
rootNode.attachChild(char_boy1);
}
[/java]
Is it possible to load OpenGL3 shader to the JME? Did i make something wrong?
You must have an error in the log.
@nehon said:
You must have an error in the log.
No any error. Shader is loaded. I had problems with in/out in fragment/vertex. But i fixed it.
"16.10.2012 16:21:42 com.jme3.material.MaterialDef
INFO: Loaded material definition: Unshaded2"
I see only empty OpenGL window... (no guiFont with stats, no models).
Entire log:
run-single:
16.10.2012 16:21:41 com.jme3.system.JmeDesktopSystem initialize
INFO: Running on jMonkeyEngine 3.0.0 Beta
16.10.2012 16:21:41 com.jme3.system.Natives extractNativeLibs
INFO: Extraction Directory: /home/mifth/jMonkeyProjects/jme-glsl-shaders
16.10.2012 16:21:41 com.jme3.system.lwjgl.LwjglAbstractDisplay run
INFO: Using LWJGL 2.8.4
16.10.2012 16:21:41 com.jme3.system.lwjgl.LwjglDisplay createContext
INFO: Selected display mode: 640 x 480 x 0 @0Hz
16.10.2012 16:21:42 com.jme3.system.lwjgl.LwjglContext printContextInitInfo
INFO: Adapter: null
16.10.2012 16:21:42 com.jme3.system.lwjgl.LwjglContext printContextInitInfo
INFO: Driver Version: null
16.10.2012 16:21:42 com.jme3.system.lwjgl.LwjglContext printContextInitInfo
INFO: Vendor: NVIDIA Corporation
16.10.2012 16:21:42 com.jme3.system.lwjgl.LwjglContext printContextInitInfo
INFO: OpenGL Version: 3.3.0 NVIDIA 295.40
16.10.2012 16:21:42 com.jme3.system.lwjgl.LwjglContext printContextInitInfo
INFO: Renderer: GeForce GTX 560/PCIe/SSE2
16.10.2012 16:21:42 com.jme3.system.lwjgl.LwjglContext printContextInitInfo
INFO: GLSL Ver: 3.30 NVIDIA via Cg compiler
16.10.2012 16:21:42 com.jme3.system.lwjgl.LwjglTimer
INFO: Timer resolution: 1 000 ticks per second
16.10.2012 16:21:42 com.jme3.renderer.lwjgl.LwjglRenderer initialize
INFO: Caps: [FrameBuffer, FrameBufferMRT, FrameBufferMultisample, TextureMultisample, OpenGL20, OpenGL21, OpenGL30, OpenGL31, OpenGL32, ARBprogram, GLSL100, GLSL110, GLSL120, GLSL130, GLSL140, GLSL150, VertexTextureFetch, TextureArray, TextureBuffer, FloatTexture, FloatColorBuffer, FloatDepthBuffer, PackedFloatTexture, SharedExponentTexture, PackedFloatColorBuffer, TextureCompressionLATC, NonPowerOfTwoTextures, MeshInstancing, VertexBufferArray, Multisample, PackedDepthStencilBuffer]
16.10.2012 16:21:42 com.jme3.asset.DesktopAssetManager
INFO: DesktopAssetManager created.
16.10.2012 16:21:42 com.jme3.renderer.Camera
INFO: Camera created (W: 640, H: 480)
16.10.2012 16:21:42 com.jme3.renderer.Camera
INFO: Camera created (W: 640, H: 480)
16.10.2012 16:21:42 com.jme3.input.lwjgl.LwjglMouseInput initialize
INFO: Mouse created.
16.10.2012 16:21:42 com.jme3.input.lwjgl.LwjglKeyInput initialize
INFO: Keyboard created.
16.10.2012 16:21:42 com.jme3.audio.lwjgl.LwjglAudioRenderer initInThread
INFO: AudioRenderer supports 64 channels
16.10.2012 16:21:42 com.jme3.audio.lwjgl.LwjglAudioRenderer initInThread
INFO: Audio effect extension version: 1.0
16.10.2012 16:21:42 com.jme3.audio.lwjgl.LwjglAudioRenderer initInThread
INFO: Audio max auxilary sends: 4
16.10.2012 16:21:42 com.jme3.material.MaterialDef
INFO: Loaded material definition: Unshaded
16.10.2012 16:21:42 com.jme3.scene.Node attachChild
INFO: Child (BitmapFont) attached to this node (null)
16.10.2012 16:21:42 com.jme3.material.MaterialDef
INFO: Loaded material definition: Unshaded2
16.10.2012 16:21:42 com.jme3.scene.Node attachChild
INFO: Child (Box) attached to this node (Root Node)
16.10.2012 16:21:42 com.jme3.scene.Node attachChild
INFO: Child (null) attached to this node (Gui Node)
16.10.2012 16:21:42 com.jme3.scene.Node attachChild
INFO: Child (BitmapFont) attached to this node (null)
16.10.2012 16:21:42 com.jme3.scene.Node attachChild
INFO: Child (null) attached to this node (Statistics View)
16.10.2012 16:21:42 com.jme3.scene.Node attachChild
INFO: Child (BitmapFont) attached to this node (null)
16.10.2012 16:21:42 com.jme3.scene.Node attachChild
INFO: Child (null) attached to this node (Statistics View)
16.10.2012 16:21:42 com.jme3.scene.Node attachChild
INFO: Child (BitmapFont) attached to this node (null)
16.10.2012 16:21:42 com.jme3.scene.Node attachChild
INFO: Child (null) attached to this node (Statistics View)
16.10.2012 16:21:42 com.jme3.scene.Node attachChild
INFO: Child (BitmapFont) attached to this node (null)
16.10.2012 16:21:42 com.jme3.scene.Node attachChild
INFO: Child (null) attached to this node (Statistics View)
16.10.2012 16:21:42 com.jme3.scene.Node attachChild
INFO: Child (BitmapFont) attached to this node (null)
16.10.2012 16:21:42 com.jme3.scene.Node attachChild
INFO: Child (null) attached to this node (Statistics View)
16.10.2012 16:21:42 com.jme3.scene.Node attachChild
INFO: Child (BitmapFont) attached to this node (null)
16.10.2012 16:21:42 com.jme3.scene.Node attachChild
INFO: Child (null) attached to this node (Statistics View)
16.10.2012 16:21:42 com.jme3.scene.Node attachChild
INFO: Child (BitmapFont) attached to this node (null)
16.10.2012 16:21:42 com.jme3.scene.Node attachChild
INFO: Child (null) attached to this node (Statistics View)
16.10.2012 16:21:42 com.jme3.scene.Node attachChild
INFO: Child (BitmapFont) attached to this node (null)
16.10.2012 16:21:42 com.jme3.scene.Node attachChild
INFO: Child (null) attached to this node (Statistics View)
16.10.2012 16:21:42 com.jme3.scene.Node attachChild
INFO: Child (BitmapFont) attached to this node (null)
16.10.2012 16:21:42 com.jme3.scene.Node attachChild
INFO: Child (null) attached to this node (Statistics View)
16.10.2012 16:21:42 com.jme3.scene.Node attachChild
INFO: Child (BitmapFont) attached to this node (null)
16.10.2012 16:21:42 com.jme3.scene.Node attachChild
INFO: Child (null) attached to this node (Statistics View)
16.10.2012 16:21:42 com.jme3.scene.Node attachChild
INFO: Child (BitmapFont) attached to this node (null)
16.10.2012 16:21:42 com.jme3.scene.Node attachChild
INFO: Child (null) attached to this node (Statistics View)
16.10.2012 16:21:42 com.jme3.scene.Node attachChild
INFO: Child (BitmapFont) attached to this node (null)
16.10.2012 16:21:42 com.jme3.scene.Node attachChild
INFO: Child (null) attached to this node (Statistics View)
16.10.2012 16:21:42 com.jme3.scene.Node attachChild
INFO: Child (BitmapFont) attached to this node (null)
16.10.2012 16:21:42 com.jme3.scene.Node attachChild
INFO: Child (null) attached to this node (Statistics View)
16.10.2012 16:21:42 com.jme3.scene.Node attachChild
INFO: Child (Statistics View) attached to this node (Gui Node)
16.10.2012 16:21:42 com.jme3.renderer.lwjgl.LwjglRenderer updateUniformLocation
INFO: Uniform m_VertexColor is not declared in shader [ShaderSource[name=Common/MatDefs/Misc/Unshaded.vert, defines, type=Vertex, language=GLSL100], ShaderSource[name=Common/MatDefs/Misc/Unshaded.frag, defines, type=Fragment, language=GLSL100]].
Sorry for being a necromancer here, but I also tried to activate the opengl 3 context and got a black screen instead. I think that the problem is in context creation as the procedure disables the compatibility profile. Enabling it brings all back to normal
@T.E.O said: Sorry for being a necromancer here, but I also tried to activate the opengl 3 context and got a black screen instead. I think that the problem is in context creation as the procedure disables the compatibility profile. Enabling it brings all back to normal
I hope it’s possible to fix…
Beta1 and Beta2 worked ok with OpenGL3. RC2 has really the issue.
Actually why you need it? the opengl2 profile is forward compatible as far as i remmber, and you are able to use features that are higher with it.
@Empire Phoenix said: Actually why you need it? the opengl2 profile is forward compatible as far as i remmber, and you are able to use features that are higher with it.
Man, nowadays opengl5 will be soon… OpenGL3 is smarter and faster. It has many optimizations and instances support (for the future feature of JME).
To me this looks like:
-using non-backwards compatible profile
-using shaders that require backwards compatible profile.
-wondering why you can’t see anything.
I don’t see what the issue is.
My understanding is limited in this area but JME shaders are not written for OpenGL3. You can write your own and they should work but none of the default ones will if you turn off backwards compatibility mode.
…and my understanding is that OpenGL3, 4, 5, 97, 957 would all work anyway if your card supports it and they are properly setup and marked to require it. With or without setting OpenGL 3 specifically (which I thought was only there to turn OFF backwards compatibility mode).
I could be wrong but that’s how I interpret everything I’ve read so far.
@pspeed said: To me this looks like: -using non-backwards compatible profile -using shaders that require backwards compatible profile. -wondering why you can't see anything.I don’t see what the issue is.
My understanding is limited in this area but JME shaders are not written for OpenGL3. You can write your own and they should work but none of the default ones will if you turn off backwards compatibility mode.
…and my understanding is that OpenGL3, 4, 5, 97, 957 would all work anyway if your card supports it and they are properly setup and marked to require it. With or without setting OpenGL 3 specifically (which I thought was only there to turn OFF backwards compatibility mode).
I could be wrong but that’s how I interpret everything I’ve read so far.
I already tried to use OpenGL3 shaders. Just read entire discussion.
Shader OpenGL3 (The same effect):
http://dl.dropbox.com/u/26887202/JME/OpenGL3/Unshaded2.frag
http://dl.dropbox.com/u/26887202/JME/OpenGL3/Unshaded2.j3md
http://dl.dropbox.com/u/26887202/JME/OpenGL3/Unshaded2.vert
And you should also know that Opengl2 shaders should work in Opengl3… Some things are deprecated but they still work for OpenGL3. Issue is in JME.
And as i already said JME Beta1 and Beta2 worked ok with OpenGL3… At least, objects were seen.
@mifth said: Man, nowadays opengl5 will be soon... OpenGL3 is smarter and faster. It has many optimizations and instances support (for the future feature of JME).
This.
Also, more recent version of GLSL have more functionality (texture projection w/o offset…), are easier to write/comprehend, the rest of the API is thinner and more generic and it lets you use better the GPU (particles with geometry shader / transform feedback), etc.
Back on topic, if you have the source of jme resolving this issue is as easy as switching a boolean value. Now I don’t have the code at hand but it’s quite easy to find following the initialization steps