If you are looking for a free 3D Engine, i suggest you to take a look to Ogre.
If i am correct, Unity 3D it's free for non commercial project (but i'm not sure).
I installed Ogre3d last week but I can't hold it to work.
I'm looking to integrate my own collision and physics (which I know how to do but I don't implemented yet). Just what i'm looking for is: keyboard input (later would try to X360 controller), texturing and basic shadowing.
Anithing more.
Do you think that it is hard to implement with a standard C++ knowledge?