Hello
I am trying to add a water effect to my StandardGame. I have a GameState which handles the rendering of terrain, fog, sky, and water. The problem is that when I try and instantiate the WaterRenderPass I get a NullPointerException:
Exception in thread "main" java.lang.NullPointerException
at com.jme.scene.state.lwjgl.LWJGLShaderObjectsState.isSupported(Unknown Source)
at com.jme.scene.state.lwjgl.LWJGLShaderObjectsState.<init>(Unknown Source)
at com.jme.renderer.lwjgl.LWJGLRenderer.createGLSLShaderObjectsState(Unknown Source)
at com.jmex.effects.water.WaterRenderPass.initialize(Unknown Source)
at com.jmex.effects.water.WaterRenderPass.<init>(Unknown Source)
at com.eldertale.states.LoginSceneState.createWaterReflection(LoginSceneState.java:92)
at com.eldertale.states.LoginSceneState.<init>(LoginSceneState.java:55)
at com.eldertale.ElderTaleClient.<init>(ElderTaleClient.java:34)
at com.eldertale.ElderTaleClient.main(ElderTaleClient.java:50)
I think, that is strange. I test it in the SimpleWaterTest in jmetest and it shows the water BUT I did notice it threw an error and caught it which looks like this:
Jun 9, 2008 8:38:27 PM com.jme.renderer.lwjgl.LWJGLTextureRenderer <init>
WARNING: FBO not supported.
Jun 9, 2008 8:38:27 PM com.jme.renderer.lwjgl.LWJGLPbufferTextureRenderer setMultipleTargets
INFO: Render to Texture Pbuffer supported!
Jun 9, 2008 8:38:27 PM class com.jme.renderer.lwjgl.LWJGLPbufferTextureRenderer initPbuffer()
SEVERE: Exception
org.lwjgl.LWJGLException: Could not find a valid pixel format
at org.lwjgl.opengl.WindowsPbufferPeerInfo.nCreate(Native Method)
at org.lwjgl.opengl.WindowsPbufferPeerInfo.<init>(WindowsPbufferPeerInfo.java:47)
at org.lwjgl.opengl.WindowsDisplay.createPbuffer(WindowsDisplay.java:524)
at org.lwjgl.opengl.Pbuffer.createPbuffer(Pbuffer.java:224)
at org.lwjgl.opengl.Pbuffer.<init>(Pbuffer.java:204)
at com.jme.renderer.lwjgl.LWJGLPbufferTextureRenderer.initPbuffer(LWJGLPbufferTextureRenderer.java:495)
at com.jme.renderer.lwjgl.LWJGLPbufferTextureRenderer.<init>(LWJGLPbufferTextureRenderer.java:150)
at com.jme.renderer.lwjgl.LWJGLPbufferTextureRenderer.<init>(LWJGLPbufferTextureRenderer.java:109)
at com.jme.system.lwjgl.LWJGLDisplaySystem.createTextureRenderer(LWJGLDisplaySystem.java:344)
at com.jmex.effects.water.WaterRenderPass.initialize(WaterRenderPass.java:201)
at com.jmex.effects.water.WaterRenderPass.<init>(WaterRenderPass.java:175)
at jmetest.effects.water.TestSimpleQuadWater.simpleInitGame(TestSimpleQuadWater.java:137)
at com.jme.app.BaseSimpleGame.initGame(BaseSimpleGame.java:503)
at com.jme.app.SimplePassGame.initGame(SimplePassGame.java:100)
at com.jme.app.BaseGame.start(BaseGame.java:69)
at jmetest.effects.water.TestSimpleQuadWater.main(TestSimpleQuadWater.java:80)
Jun 9, 2008 8:38:27 PM com.jme.renderer.lwjgl.LWJGLPbufferTextureRenderer initPbuffer
WARNING: LWJGL reports this card supports Render to Texture, but fails to enact it. Please report this to the LWJGL team.
Jun 9, 2008 8:38:27 PM com.jme.renderer.lwjgl.LWJGLPbufferTextureRenderer initPbuffer
WARNING: Attempting to fall back to Copy Texture.
Jun 9, 2008 8:38:27 PM com.jme.renderer.AbstractCamera <init>
INFO: Camera created.
Jun 9, 2008 8:38:28 PM com.jme.renderer.lwjgl.LWJGLPbufferTextureRenderer setupTexture
INFO: setup tex8: 256,256
Jun 9, 2008 8:38:28 PM com.jme.renderer.lwjgl.LWJGLPbufferTextureRenderer setupTexture
INFO: setup tex9: 256,256
Jun 9, 2008 8:38:28 PM com.jme.renderer.lwjgl.LWJGLPbufferTextureRenderer setupTexture
INFO: setup tex10: 256,256
Jun 9, 2008 8:38:28 PM com.jmex.effects.water.WaterRenderPass reloadShader
INFO: Shader reloaded...
What could I do to make my GameState render water the same as TestSimpleQuadWater?