Strange shadow problems

Hi again…
Working with JME 3.1 I have a very strange problem, not sure if I can solve it:
On the PC I usually work on shadows are working without problems. On the laptop that I use from time to time shadows are not visible. No matter if I start my project in the SDK or use the exported build. Shadows not visible on the laptop.

My usual PC:
Intel i7 4790, 4GB RAM, Geforce GTX 960

The laptop:
Intel i5 2450m, 6GB Ram, Geforce GT 630M

I guess that problem mgiht be hardware related, if you need any code, let me know.

Here is how I implement the shadow filter:

//Light
        DirectionalLight light = new DirectionalLight();
        light.setDirection(new Vector3f(0.5f, -1, 0.5f));
        FilterPostProcessor fpp = new FilterPostProcessor(mainApp.getAssetManager());
        DirectionalLightShadowFilter dlsf = new DirectionalLightShadowFilter(mainApp.getAssetManager(), 1024, 4);
        dlsf.setLight(light);
        dlsf.setEnabled(true);
        fpp.addFilter(dlsf);
        mainApp.getViewPort().addProcessor(fpp);
        game.addLight(light);

I really much hope you guys can help me :wink:

EDIT:
Using the DirectionalLightShadowRenderer instead of the DirectionalLightShadowFilter it works… I don’t really get the difference between them. Can someone explain me please? Is there a reason to use one of them or does it make no difference which one of them I use?

It might help if you showed us the JME app log for running your app on this computer that shows all the GPU caps, versions, etc…

Will do next time I am using this computer. Do you mean the log in the SDK console when I run the app or is there another log?

Yes. That’s what I mean.

Running on jMonkeyEngine 3.1-alpha1
 * Branch: master
 * Git Hash: c5c893f
 * Build Date: 2015-08-17
LWJGL 2.9.3 context running on thread jME3 Main
 * Graphics Adapter: igdumd64
 * Driver Version: 9.17.10.4229
 * Scaling Factor: 1
OpenGL Renderer Information
 * Vendor: Intel
 * Renderer: Intel(R) HD Graphics 3000
 * OpenGL Version: 3.1.0 - Build 9.17.10.4229
 * GLSL Version: 1.40 - Intel Build 9.17.10.4229
 * Profile: Compatibility
Driver claims that default framebuffer is not sRGB capable. Enabling anyway.
Audio Device: OpenAL Soft
Audio Vendor: OpenAL Community
Audio Renderer: OpenAL Soft
Audio Version: 1.1 ALSOFT 1.15.1
ALC extensions: ALC_ENUMERATE_ALL_EXT ALC_ENUMERATION_EXT ALC_EXT_CAPTURE ALC_EXT_DEDICATED ALC_EXT_disconnect ALC_EXT_EFX ALC_EXT_thread_local_context ALC_SOFT_loopback
AL extensions: AL_EXT_ALAW AL_EXT_DOUBLE AL_EXT_EXPONENT_DISTANCE AL_EXT_FLOAT32 AL_EXT_IMA4 AL_EXT_LINEAR_DISTANCE AL_EXT_MCFORMATS AL_EXT_MULAW AL_EXT_MULAW_MCFORMATS AL_EXT_OFFSET AL_EXT_source_distance_model AL_LOKI_quadriphonic AL_SOFT_buffer_samples AL_SOFT_buffer_sub_data AL_SOFTX_deferred_updates AL_SOFT_direct_channels AL_SOFT_loop_points AL_SOFT_source_latency
AudioRenderer supports 64 channels
Pausing audio device not supported.
Audio effect extension version: 1.0
Audio max auxilary sends: 4
org.lwjgl.opengl.OpenGLException: Invalid enum (1280)
    at org.lwjgl.opengl.Util.checkGLError(Util.java:59)
    at com.jme3.system.lwjgl.LwjglOffscreenBuffer.checkGLError(LwjglOffscreenBuffer.java:98)
    at com.jme3.system.lwjgl.LwjglOffscreenBuffer.runLoop(LwjglOffscreenBuffer.java:126)
    at com.jme3.system.lwjgl.LwjglOffscreenBuffer.run(LwjglOffscreenBuffer.java:156)
    at java.lang.Thread.run(Thread.java:745)
Returning hash code of content
Checking page id 1.387.040.574 vs stored id 1.387.040.574

I guess it might have to do something with the OpenGLException, but this exception occurs when I launch the SDK (even before the game is started) and the ShadowRenderer works even with this exception. Unfortunately I am not deep enough in the engine to understand what’s the reason for that…

There was a regression in 3.1 which had to do with framebuffers. It has been fixed in master but the update has not yet been published. Since many people can’t even run the SDK we may need to repackage the installers from scratch as opposed to publishing the updates in the update center.

I will also point out… and it’s the reason I asked for a log on the laptop… that you think your laptop has an nvidia card but JME thinks it has an intel card. It is likely that it has both but that the laptop is not running your JME app on the nvidia GPU. You should look at your nVidia settings to make sure it uses it.

Okay, thank you :slight_smile: I will have a look on that and will also wait for the update.