Merge 3D Branch

Current unsolved issue: when w=0, vectors will project to infinity. Made a bad patch so things don't blow up, but everything will look messed up. I need to fix ASAP.