Oops, sorry for not answering this. I guess I missed your post.
The topic author couldn't justify floats, he had no benchmarks.
I see you claimed your OSG fork actually speeds things up and HAS benchmarks?
I'd like to hear more on that particular issue. I want to help you in arguing with Robert Osfield to make the changes to upstream.
As far as I know OSG doesn't use Quaternions in any performance critical code. The speed up in our case came from the way OpenMW uses them for animation code.
I vaguely suggested making a PR
here and didn't get a reply so maybe that should be taken as a no.
Scrawl, can you please summarize how your OSG fork differs from vanilla OSG?
I have updated the
readme, maybe that will help. As far as I remember the changes that make the largest difference are:
- Using float matrices (already an option in upstream osg, used by default in the fork)
- Culling nodes with an empty/invalid bounding box. You will have many such nodes if you use skeletal animation. Rejection link:
http://forum.openscenegraph.org/viewtopic.php?t=15412
- Improvements to callback speed (OpenMW uses thousands of callback in a typical scene, I'm sure that's a lot compared to other users)
The other changes are relatively minor, but I saw they had an impact in the profiler and the fix was easy so why not.
It should be noted that all the improvements are CPU only and won't help you with a GPU-limited application (which most modern games probably are)