Greetings!
Now I've started using GLSLShaders I've come across a problem:
SEVERE: Exception in game loop
org.lwjgl.opengl.OpenGLException: Cannot use Buffers when Array Buffer Object is enabled
at org.lwjgl.opengl.GLChecks.ensureArrayVBOdisabled(GLChecks.java:96)
at org.lwjgl.opengl.ARBVertexProgram.glVertexAttribPointerARB(ARBVertexProgram.java:174)
at com.jme.scene.state.lwjgl.shader.LWJGLShaderUtil.updateShaderAttribute(LWJGLShaderUtil.java:249)
at com.jme.scene.state.lwjgl.shader.LWJGLShaderUtil.updateShaderAttribute(LWJGLShaderUtil.java:233)
at com.jme.scene.state.lwjgl.LWJGLShaderObjectsState.apply(LWJGLShaderObjectsState.java:340)
at com.jme.renderer.lwjgl.LWJGLRenderer.applyStates(LWJGLRenderer.java:1743)
at com.jme.renderer.lwjgl.LWJGLRenderer.draw(LWJGLRenderer.java:979)
at com.jme.scene.TriMesh.draw(TriMesh.java:240)
I figured that the cause of this is that VBO are being used and so are GLSLShaders (as per http://www.jmonkeyengine.com/forum/index.php?topic=13686.0).
What I'm unclear on is:
1) Is the choice really Vertex Buffer Objects
OR Shaders?
2) Is this a limit of OpenGL, or a jME2 specific deal?
Any input on points 1 & 2 would be appreciated, as I'm not having much joy with this one :?
Thanks
Chris
This is a known issue, jME1/2 will crash when trying to combine generic vertex attributes and VBO.
Fair enough,
Momoko_Fan wrote:
jME1/2 will crash when trying to combine generic vertex attributes and VBO
I can't help but notice you didn't mention jME3 there, so does that mean this issue not an issue there? or is that feature current untested / not yet implemented?
jME3 doesn't have this issue, it uses generic attributes internally which don't appear to be generic to the user.
Momoko_Fan wrote:
it uses generic attributes internally which don't appear to be generic to the user.
I see.
Can't say I entirely understand, but after doing some research about this on the LWJGL & GameDev forums - I've got a bit of an idea, and it looks like there is a way to get both working with jME2, but it's a time / value equation (value != time to do it).
Hopefully by the time I'll need to optimise performance jME3 will be stable enough to
'convert' to ;) ...amen
Well actually jme3 is really stable, and most is working so far. Only very few core features are really missing, and if you do not depend on use the JME2 ray, you could probably already convert to it, and use the benfetis from the new material system 
Empire Phoenix wrote:
Well actually jme3 is really stable, and most is working so far.
Thanks, it's good to know :)
Empire Phoenix wrote:
if you do not depend on use the JME2 ray
Ah, I believe the ray may be used in the AI code (someone else developing) to determine AI line of sight, which would cause a problem.
jME3 conversion sounds like a good idea, as it seems to have many benefits. I'll have to seriously look into it, one day ...soon(ish) ;)