today got a short break from the usual work items, and had time to do
some reviewing of a rather old issue of why Ogre rendering performance is
not exactly what we'd expect. Instead of writing a wall of text here, I
put up the report on the github issue tracker:
https://github.com/realXtend/naali/issues/440
For tl;dr:
Ogre looks like this:
http://dl.dropbox.com/u/40949268/Ogre/OpenGLRenderSystem.png
It should look like this:
http://dl.dropbox.com/u/40949268/Asteroids/GLStateChanges.png
Big problems:
- legacy OpenGL 2, not modern OpenGL 3 or newer.
- naive, and does a lot of redundant work.
- dumb, and does not do tricks to optimize rendering objects which share
state.
Possible future strategies:
- rewrite Ogre OpenGL rendersystem.
- new Ogre GLES 2 rendersystem is the hope?
- scrap Ogre.
jj
I agree with the sentiment that ogre 1.9 should be used in the next big version. 1.9 has a lot of nice new stuff besides just gl3 support. I should also note that in the next version or two, it would be prudent to consider enabling double precision in both bullet and ogre. That's for another ticket however.
Since I found this from a Google search, I just want to add that - in preparation for the 1.9 release - the Ogre developers are concentrating on OpenGL3, and that should be what you want from Ogre.I think it will be out in a couple of weeks.Of course, I have an interest in seeing ogre-safe-no-crashes being brought up to date with current Ogre (which is going to be 1.9 soon) because it could be useful for Ogitor (Ogre scene editor). :)
The 2.0 redesign is supposed to fix a lot of the performance problems, but that will likely be a year or two away before it's back to feature parity with 1.9. Gl3 shouldn't be required in my opinion, but should be optional. It's also worth noting that 1.9 has at least some of gl4 support.