tom said:
You have to use display lists in a way that makes sense. Just because it is possible to compile in shaders inside the lists, don't mean you have to. Store static geometry in DL and manage the state the usual way. If it makes sense to add state to the list you have to option to do that.
Setting the shader outside of DL does not work. From the OGL forum post, it seems that setting it inside does.
Just because you can not compile branches don't mean display lists are useless. Display lists can greatly reduce the number of gl calls and it can optimize static geometry. So the benifit can be great even if you have to set up the multitexturing outside the lists.
I didn't say they are useless for every application, i said that DL-s can be supplemented. If DL were able to compile branches, then they could not be supplemented, but they cant compile branches. Removing them makes the engine more clean, because special render paths for handling DL-s are not needed. And, since those paths are not not needed, the engine can be better extended with other, more up-to-date functionality. If DL-s are kept, then every new functionality must be tested, as how does that go with DL-s.
Instancing? Or something else?
I know of instancing by passing the transforms in vertex attributes, and so avoiding the slow glMatrix calls.
Spent about an hour on the opengl forum and I could anyone mentioning any bugs or compatibility problems. The example you mentioned was simply caused by wrong use.
Its not DL-s that have incompatibility issues, its the issues in general, that affect the engine, make it more complicated, and adding DL-s just makes it more complicated. There are posts saying that mixing VBO and DL rendering leads to slowdown, so that does qualify as a bug or at least as a quirck which needs to be taken into account.
DL-s have been around for quite a long of time, but they are obsolete. We should make the next version of the engine (the jME 3.0 branch) for today and tomorrow not for 6-7 year old graphics cards. I don't mind if VA+FF+DL support is added after the engine has been optimized for VBO+shader support.
Quote from Leadwerks:
"We don't even use vertex arrays or display lists, as that technology has been obsolete for at least five years."
Sorry, i just wont reply to this issue any more. If i cant convince you, then simply google on the issue, and read some more. Commercial engines are working with deferred lighting, and we are here discussing what? The ages old display lists.