T = [1 0 0 0

0 1 0 0

0 0 1 0

P.x, P.y, P.z, 1]

Forward vector (assuming forward means in the direction of positive z-axis) F = normalize(P - L)

Right vector, R = normalize(cross(F, U))

Up vector, U = normalize(cross(R,F))

R = [R.x, R.y, R.z, 0

U.x, U.y, U.z, 0

F.x, F.y, F.u, 0

0 0 0 1]

Finally, camera2world = T * R, therefore world2camera = camera2world.inverse()

is this correct? Perhaps,

yes it is corect, but consider projection matrix- the only matrix that has a value in so called - fourth column base, example :

bla,bla,bla,bla

bla,bla,bla,bla

blabla,bla,bla

0,0,1,0

as you notice, it is not an invertible matrix with 1s on diagonal, carryinyg a strange 1.0 value where it is multipleied with previous transformations, thus

world-view-stuff multipled with **Projection** results in matrix that will transform a 4d vector (x,y,z,1) from the space of world-view into a 4d vector of (x',y',z',z), wherer, if you notice, fourth component iz z coordinate of world-view previous space. This component is crucial to bring the projected vector in perspective deformed (does not apply to orthonormal projection- perspective less) into rasterized normalized device coordinate, as computed (x',y',z',z). where fourth z devides previous cooridnates

just visualize multiplication of standard space transformation with perspective projection one, transform vector by it, and all gpu's- in case of orthonormal projection w is one, but division is still performed- and you can see that fourth component is actualy previous view space z value, used for division to normalize into so called 0.0-1.0 rasterized device coordinates. So view matrix handedness cannot be isolated from projection matrix, but all that matters is realy only the sign of the special "fourth colum/row" constant