   How to convert 3D point to 2D
  hi i have got a projection matrix sorted i think and im trying to transform a vector 3 with the projection matrix and then draw it on screen with the new x and y but how do i get the transformed 3D point into 2D?This is the projection matrix methodMatrix4X4 SoftwareCanvas::ProjectionMatrix(float FOV_horiz, float FOV_vert, float nearplane, float farplane, Matrix4X4 &m){float h,w,q;w= (float)1/tan(FOV_horiz*0.5);h= (float)1/tan(FOV_vert*0.5);q= farplane/(farplane-nearplane);m.m11=w;m.m22=h;m.m33=q;m.m34=1;m.m43=-q*nearplane;return m;};and this is the method for transformationPoint3D SoftwareCanvas::MatVec(Point3D v, Matrix4X4 m){Point3D transvec(0,0,0,1);transvec.x= v.x*m.m11+v.y*m.m21+v.z*m.m31+v.w*m.m41;transvec.y= v.x*m.m12+v.y*m.m22+v.z*m.m32+v.w*m.m42;transvec.z= v.x*m.m13+v.y*m.m23+v.z*m.m33+v.w*m.m43;transvec.w= v.x*m.m14+v.y*m.m24+v.z*m.m34+v.w*m.m44;return transvec;};has anyone got any ideas how i can do this?   
  I'm not positive on this, but I think you just need to divide all 4 components of transvec by transvec.w in order to normalize the vector. Then your transvec.x and transvec.y would be your screen coords, and the transvec.z would serve as your z-order in the 2d plane.Again, I'm not positive, but the way I understand it is this. If you've got a projection matrix:w, 0, 0,00, h, 0,00, 0, q,10, 0, -q(z_near), 0... then doing this matrix multiplication:  w, 0, 0,0  0, h, 0,0[x, y, z, 1]  *  0, 0, q,1  0, 0, -q(z_near), 0...should yield this:[wx, hy, qz-q(z_near), z]But as far as I know, the 4th component ("z" in the above example, but transvec.w in your code) should be == 1 in order for the other 3 components to represent Cartesian coordinates. Thus, in my example, we need to divide by "z", giving us:[wx/z, hy/z, q(1-(z_near/z)), 1]So now wx/z is your 2D x-value, hy/z is your 2D y-value, and q(1-(z_near/z)) is your z-order.Hope I am not botching that horribly, and hopefully it will set you on the right track. [smile]   ;  I wrote up a thorough, friendly (I think) explanation of all the math.  The series starts with vector-matrix multiplication, then goes into homogeneous coordinates, and finally perspective projection.  Link goes to the perspective projection part, which has links back to the introductory material:perspective projection;  nice one thanks alot for the help   