JME3 + openGL1 =?

I noticed recently that I was able to change the renderer in jME to the LWJGL openGL1 renderer (LwjglGL1Renderer) by changing the renderer of my AppSettings to LWJGL_OPENGL_ANY.



I was wondering what kinds of limitations there might be by running on openGL1 (excluding shaders), and the overall completeness of this renderer. I remember reading somewhere on the forums about dropping openGL1 support entirely. Can someone please enlighten me?



The reason I ask, is because I have a netbook that I would like to be able to develop a game on when I’m out and about, and it’d be nice to know in advance what functionality I can expect to work, and what not to work



A bit of testing shows that the following are not supported:

  • shadows
  • filters (blank screen, or really funky stuff in the case of the water filter…)
  • some textures (specifically on some of the demos involving teapot geometry)
  • render to texture (I never thought this was going to work anyway)
  • if the nifty render to mesh demo is supposed to have text on the cube or something, then that doesn’t quite fully work either

Basically nothing but textured unlit models.

I’m interested in this as well. So how does the OpenGL1 renderer works? Does it rework the shaders code into fixed pipeline? Is this as simple as just changing of the AppSettings?



Thanks!

Yes, just change the AppSettings and everything that does not work will be omitted (hence filters and post processors look funny)

I have tested a few more things and changed my original post to reflect that.

So let me see if I get this right, setting renderer to LWJGL_OPENGL_ANY will basically use whatever that is available to the current system – which will basically have no effect on my development machine as it is opengl2 compatible.



I try setting the renderer to LWJGL_OPENGL1, and a few things do not seem to work:


  1. Lighting on models loaded with the obj loader
  2. Skybox



    Thanks

@batkid: after reading through some of the code, this seems to be the case.



also, I think the textures may be drawn upside down. I have a Quad with some text on it, and the text is the wrong way up XD

Hey, i’m curious about the future of OpenGL1 rendering.



Is there a plan to extend the OpenGL1 features currently available?

Not really as far as I know. I think its really deprecated in a global sense, even all the phones / pads that come out now have GPU’s that support shaders… What would be the features you’d like to see? There is not much OpenGL1 can do in terms of the effects shaders we use afaik… So textured models is basically it anyway I guess…?

There are plans to add skybox and lighting which are the two mentioned above. As of right now its low priority however. Advanced features such as bump mapping or post processing will never be supported by OpenGL1

It’s really good that fixed pipeline gets lighting, because our project will need to support low-end machines.

Agree. Good to hear there ‘will be light’.

Even if all new machines support open gl 2+, there’s still probably a couple of 100 million old pcs, and a game dev want to target as many players as possible :wink:



Say, is it all in the shaders, or is it “core” stuff?

You mean with all lighting bumpmapping ect? Thats all done by the shaders in jme3 (though with some work a motivated person could get much of that working on opengl 1 as well)

We had lighting working in OpenGL1 before however over time the renderer got outdated as changes were being made in the core. The new OpenGL1 renderer was written from scratch by me as I needed it for one of my projects, however lighting was not a priority for me so I didn’t add it back then

I would like to vote for OpenGL 1 support as well. Some of my students have older computers and this will make life much easier for them. I’m glad that it is somewhat working – I will be able to help test it and fix bugs for sure.