Let's try and tackle this thing:

In the basics part 3, I covered a technique for finding vanishing points on the horizon. Here's a recap:
To find a vanishing point you simply need to position your eye at the station point, and look at an angle that is parallel to the lines you want to find a vanishing point for. If you want to find a vanishing point for lines that move straight up, you look straight up. If you want to find a vanishing point for lines that move straight forwards, you look straight forwards, and so on. Whatever point you are looking at on the canvas when you do this is where that vanishing point should be. However, this requires us to measure angles in 3d space above our canvas, which can be a bit difficult. So to make it easier we can rotate the station point around the horizon until it is flat with the canvas. allowing us to easily draw and measure angles from it.

I originally mentioned that it only works when the horizon line crosses the center of vision, but I didn't explain why because I thought it would take too long. The truth is that you can, it's just that the distances wont line up. If you look at a side view you'll see why.

When the horizon line does not cross the center of vision then we can no longer use the distance between the station point and the canvas to find how far below the horizon our station point will be when rotated. The distance and therefore our vanishing points will always be off. There are two ways to solve this. The first one is to use the pythagorean theorem. The second one is to do some more rotating. If we take the picture above and rotate it to the side first, basically rotating the station point twice, then we can easily measure the distance between the station point and the horizon on our canvas.

(note: It doesn't matter which direction you rotate the station point. It won't change the location of the vanishing points. Which direction I rotate them in depends on whether I want to prioritize saving space or reducing clutter.)
Once we've done this we can also use this vertical station point to find the third vanishing point. The third vanishing point is always perpendicular to the ground so all we need to do is add a line that is perpendicular to the line moving towards the horizon to our vertical station point.

And that's really most of it. As long as the initial station point you rotate is rotated around the center of vision, and the distance between them is the same, then any vanishing point you find using them will always feel like they are in the same 3d space.

However, when most people use this type of setup they will usually want to find diagonal vanishing points for vertical surfaces. And to do that we’ll need to do some more rotating.
First you'll need to find the horizons for these vertical surfaces. That's the easy part, you just need to draw straight lines through all vanishing points.

Now we’ll need to rotate the station point around them. The best way I can describe how to do that is to first rotate the canvas so that one of these new horizons is horizontal, and then do the same things you did with the first horizon.

The first step in doing this is to add what I've heard some people refer to as the gravity line. It is the line that you draw from the horizon that the station point will be on after being rotated. I think the best way to understand it is to imagine the gravity line as the shadow of the station point as it is being rotated.

This gives it two properties that you'll need to keep when drawing it for other horizons in order to keep everything consistent: It will always start on top of the center of vision, and it will always be perpendicular to the horizon it is being rotated around.
Luckily these are pretty easy to maintain due to an interesting phenomenon that occurs when all vanishing points are set up properly. That being that the center of vision will always be in the orthocenter of the three vanishing points.

This means that to set up the gravity lines, all you need to do is draw a line from a vanishing point through the center of vision, and it will always cross the horizon opposite to it at a 90 degree angle.
Next you'll need to find where in the gravity line the station point is. There are multiple ways of doing this. One comes from remembering that all vanishing points we currently have are 90 degrees apart from each other. So you'll just need to find where on the gravity line two lines drawn from each vanishing point on that horizon meet at 90 degrees. You can either mess around with a set square for a while, or you could draw some circles. Turns out that if you draw two lines from opposite ends of a circle towards any point on its edge then they will always meet at 90 degrees.

If you use the halfway point between the two vanishing points as a center, and the distance between it and the vanishing points as a radius, and draw a circle, then that circle will always intersect the gravity line where the station points should be.
However, the easier and more common technique comes from remembering that as the station point is rotated around different axes, so are the lines connecting it to vanishing points. All lines that connect different station points to the same vanishing point will always be the same length. So instead of finding the halfway point between two vanishing points, you can just find a vanishing point, take the distance between it and any station point it is connected to, and draw a circle with that radius around the vanishing point.

When done correctly with all three horizons, you should be able to rotate every station point around their horizon, and have all of them meet at the same point directly above the center of vision.

So the steps for drawing a full perspective setup is as follows:

- Rotate the station point to the side and use that to figure out how to rotate the station point around the horizon.
- Add the other horizons and their gravity lines.
- Find where on the gravity lines the station points are (rotating the line that goes between the vertical station point and the third vanishing point is the easiest way).
- Use all rotated station points to find diagonal vanishing points.
- Draw.

Realistically, you probably won't draw this too often. At least not a full one. Perfect perspective is not something people tend to look for in art nowadays, making this level of precision unnecessary. The method I described at the top of this post for how to eyeball the locations of vanishing points will probably be enough for most drawings. Unless you are trying to show off some advanced perspective then close enough is good enough. I barely draw this in full. However, I do often draw it in parts. Whether it's just the two first station points to set up three point perspective, or if it's just rotating the station point around one horizon for a wall so I can find some diagonals. You technically don't even need to find all three diagonal vanishing points to draw a perfect cube, you just need two of them, and the rest will kinda just fall into place. I want people to understand the theory because that is more useful than just memorizing what lines to draw where. I don't want you to view this as a bunch of steps to get one final setup. I want you to look at each step as its own technique that you can use when you need it, because it is by taking this apart that you'll get most use out of it.