just a note to self really…
Utils3D.projectVectors(matrix, vertices, projected, uvt);
vector1 = Utils3D.projectVector(vector0);
vector2 = matrix.transformVector(vector0);
projected == vector2.x/vector2.w ≈≈ vector1.x
projected == vector2.y/vector2.w ≈≈ vector1.y
uvt == 1/vector2.w == 1/vector1.w
not sure why projectVector != projectVectors result but its close enough… wasted too much time trying to find out why they are not the same so any ideas on why that is – let me know!