Solid color shaders

Hey guys,



I just started playing around with the jme3 to see if it could be integrated with an AR system we are working on. I started with tutorials in jme3test.helloworld and noticed that solid colors are not rendered correctly.



I attached two screenshots from the HelloNode example that displays two boxes, one on top of the other, colored blue and red. You will notice that


  1. colors are completely ignored (everything is white)
  2. the material of the "first" box in the scene always get scrambled (as you can see in the first screenshot, the bottom box has strange material, but in the second, where I looked up a bit, the top box lost its material as well).



    The last screenshot is a closeup of the "texture" it appears instead of the actual solid color. I tested this on an old MacBook with Intel graphics and on MacBook Pro with NVidia graphic card.



    Using the material directly (e.g., RedColor.j3m) does not change the behavior.



    Does anyone have a clue what I might be doing wrong (I am using JOGL, current trunk, r5498). Could it be a hardware issue?



    Thanks in advance for your help,



    Gregor

The jogl renderer is currently broken due to its ogl1 limitation afaik.

Yeah, it hasn't been maintained for a while, so bugs cultivated :stuck_out_tongue:

Just use the LWJGL renderer if you can, should work on all NVIDIA/ATI cards and most of the newer intel cards.

Thanks. Running same tests on MBP with LWJGL works as expected. Using LWJGL on my macbook throws obvious exception "Function is not supported" in org.lwjgl.opengl.GL20.



SEVERE Application 5:26:27 AM Uncaught exception thrown in Thread[LWJGL Renderer Thread,5,main]
java.lang.IllegalStateException: Function is not supported
        at org.lwjgl.BufferChecks.checkFunctionAddress(BufferChecks.java:64)
        at org.lwjgl.opengl.GL20.glCreateProgram(GL20.java:253)
        at com.jme3.renderer.lwjgl.LwjglRenderer.updateShaderData(LwjglRenderer.java:767)
        at com.jme3.renderer.lwjgl.LwjglRenderer.setShader(LwjglRenderer.java:853)
        at com.jme3.material.Material.render(Material.java:530)
        at com.jme3.renderer.RenderManager.renderGeometry(RenderManager.java:265)
        at com.jme3.renderer.queue.RenderQueue.renderGeometryList(RenderQueue.java:100)
        at com.jme3.renderer.queue.RenderQueue.renderQueue(RenderQueue.java:147)
        at com.jme3.renderer.queue.RenderQueue.renderQueue(RenderQueue.java:138)
        at com.jme3.renderer.RenderManager.flushQueue(RenderManager.java:377)
        at com.jme3.renderer.RenderManager.renderViewPort(RenderManager.java:508)
        at com.jme3.renderer.RenderManager.render(RenderManager.java:522)
        at com.jme3.app.SimpleApplication.update(SimpleApplication.java:179)
        at com.jme3.system.lwjgl.LwjglAbstractDisplay.runLoop(LwjglAbstractDisplay.java:112)
        at com.jme3.system.lwjgl.LwjglAbstractDisplay.run(LwjglAbstractDisplay.java:162)
        at java.lang.Thread.run(Thread.java:637)



Do you plan to support JOGL again in the future or should it be considered deprecated? Alternatively, should I be able to use LWJGL with OpenGL1.x? At the moment, this is pretty important for us as the current solution does not limit us to using only OpenGL >= 2.0.

I am sorry about that. It is planned to support lower versions than OpenGL2.0, its just has been rather low priority at this point. It is especially crucial for android support so it will definitely get reconsidered in the near future.

Thanks for the info! Android is also interesting for us so I will definitively stick with the project - especially after seeing all the demos, videos and tutorials!



If this requires working on MacBook Pro for the moment, so be it  ;). I'll see if I can help with this issue in any way.