So, it seems I've bitten the bullet - being so close to the core (working straight from DirectX, and using no wrapper libraries besides what I create myself) has finally done me in. While I know can get the project working continuing on with my current engine, it doesn't seem very efficient for me to do so.

For example, for me to get shadows working on my project, it took several days of coding (I was trying out an omni-directional shadow mapping technique). To get it working in Ogre 3D, it took 5secs - a call to setShadowTechnique, and then a call setCastShadows(true) for each node I want to cast a shadow. Simple! Time saving!

So in order to be able to get results in the project in a timely fashion, I'll be porting all my code over to another engine. At the moment, I'm erring towards Ogre3D - the only drawback is it's graphics only, not sound/input/network/physics as well. But it has a nice plugin system, and can apparently support things like PhysX quite nicely. I was going to use Torque, but it costs money, and I don't too much of that lying around for something that I don't even have example code for to see how good it is...