Converting 2d points to 3d

Converting 2d points to 3d.

Most of us know the standard tutorial method of converting 3d points to 2d, given a “roughly-set” focal length. However, let’s say we don’t know the focal length, and we have a set of artist-drawn 2d points on a perspective plane. How do we map those 2d points to 3d, especially if those 2d points are found on a two-point perspective-drawn picture?

The picture is basically a flat piece of land with a constant y physical height elevation value. We know this altitude value (or we can assume it). We also know the pixel screen distance between 2 vanishing points if we trace out the perspective lines to form 2 vanishing points at the horizon.

Not sure if this assumption is correct, but if we first set the origin along the midpoint between 2 vanishing points and rotate the camera 45 degrees left or right, we’ll end up with that single center vanishing point splitting into 2 seperaate vanishing points (2 seperate pairs of parallel lines, 45 degrees in either direction forming a 90 degree arc). We also know how much pixels have been shifted horizontally based on the screen distance between midpoint to adjacient vanishing point as a result of that 45 degree turn. So, we know that by rotating the camera 45 degrees, a horizontal shift of x pixels SHOULD occur on that horizon (let’s call this sx) to finally match the final result in the artist’s picture. Could we perhaps then find out the correct focal length, and from there make mapping of all other points in 2d to 3d always match that picture/photo?

So, here’s some tryouts:
(x, y, and z coordinates are in 3d)

scaleRatio = focalLength * z;
sx = x * scaleRatio;
sx/x= scaleRatio;
sx/x = focalLength * z;

THe problem is, we don’t know focalLength, z and x. However, x might be:
cos45 * radius
and z might be:
sin45* radius

assuming that both x position and camera x position were initially at 0 and the camera z position also at zero, before the 45 degree turn.

However, we introduce another unknown variable here, the radius distance, which can only be found out if we normally knew the final x and z 3d coorinate from which we can retrieve the hypotenuse. However, x and z is unknown too.
Can one assume then that:
arctan2(z,x) = 45;
???
But even that doesn’t help. Any ideas?