Open ohlidalp opened 6 years ago
I'm removing this from v0.4.8 milestone - the immediate problems are resolved and the rest is a low-priority architectural matter between us and OGRE.
Wow! I've just found a link to my OGRE forum post in the OGRE newsletter: http://www.ogre3d.org/2017/11/07/ogre-ecosystem-roundup. Turns out my suggestion was actually implemented in latest OGRE 1.10.x. Neat!
I'll keep this issue open until we port to OGRE 1.10. I'll try to make it sooner than later.
Warning: Long and rant-ish post ahead! 😆 Try TL;DR below
Derp! I just discovered that my knowledge on OGRE's scene managers was false, or at least incomplete. I'm not really sure, I have to ask on OGRE forums.
From my early days with OGRE, I had a faint memory that the most effective general-purpose one is "OctreeSceneManager" and it's also the default, so we're using it in RoR. But I just re-read OGRE's wikipage SceneManagersFAQ and found out we may have not:
Update: Apparently there are 2 methods to create OGRE scenemanager:
Update2: More complaints towards OGRE:
Conclusion (long version)
It turns out I didn't really know how RoR used OGRE all this time. RoR creates it's scene manager as "ST_EXTERIOR_CLOSE" ( code ). In this case, OGRE will list all the available plugins in reverse order of definition in 'Plugins.cfg' and pick the first suitable one. Ever since we're using https://github.com/RigsOfRods/ror-dependencies, we're using 'plugins.cfg' generated by the build, which, by chance, has always "OctreeSceneManager" below "PCZSceneManager". So even though both were enabled in our build, we always ended up with OctreeSceneManager. Whew! 😌
However, due to a misunderstanding between me and AnotherFoxGuy, the OctreeSceneManager was recently disabled in our dependencies: https://github.com/RigsOfRods/ror-dependencies/commit/5f3589c00012e36c9712fa525a3c68aef7a1459e. Must be fixed ASAP. Origin of the problem: I suggested disabling "OctreeZone" plugin, which is in fact unrelated to "OctreeSceneManager" and actually builds along with "PCZSceneManager" (just to 'avoid confusion' 🙄 ).
TL; DR