Damocles, thank you for describing this pathfinding method. Actually I've never thought about something that, even though it's pretty straightforward.
Saturnus, I like your first aproach (projecting onto the "field of view" and then deciding where to go from there) the most so far. Problem with this is that
a) I don't know the maths behind it, I'm just done with school and haven't studied maths (yet) and so my knowledge is somewhat limited there and
b) I don't see how it will find gaps between asteroids if they overlap. My approach here would be: project it onto the sphere and then see if there's "gaps" in the array and then fly through them. But if two asteroids overlap here (and so there's no gap in the array), I'd still need to check if there's a gap between them somehow... I'd have to do reading up on this one. Do you know what the method's called?
You could do a search for "vector field histogram". However you'll most likely find articles about robotics then. I don't know whether or how it's used or called in game AI development.
The math behind it shouldn't be that complicated as it may seem at a first glance. I'm definitely not much of a mathematician, so I must know. : )
For projecting the obstacles (I assume a 2D world to make it more simple) I would treat each obstacle as a spherical bounding volume. I then would compute the two tangents to each bounding volume through the ship's center. The tangents define the light brown areas depicted in the image of my previous post. Depending on their angles, the tangents can be assigned to corresponding array indices. The distance to the obstacles can be stored in the array indices accordingly.
For your space game you would most probably want to add a third dimension to this method, of course. This could be a bit trickier, though, as simply computing two tangents for each obstacle wouldn't be sufficient anymore. Perhaps you could just project the bounding volumes onto a plane that is orthogonal to the ship's viewing direction instead. In order to find the most promising direction for avoidance you could (for example) rasterize the plane to get a two-dimensional array and then apply the clearance algorithm to it (as shown in the previous post). Just as an example. Perhaps this is too overkill or unnecessarily complicated. ; )
I'm not sure whether I understood your problem b) correctly. But maybe it was already addressed above?
To dwell a little bit on the potential field method that was already mentioned in this thread, you also could influence your ship's velocity by adding attracting and repulsing forces (which is probably very similar to your original idea?). Asteroids would naturally repulse all ships while nodes placed between the asteroids would attract them. However, a ship would only be attracted by a node whose range is at least as large as the ship itself.
Note, that these forces should only
influence a ship's velocity. Nodes behind a ship can be ignored.
Presumably it requires some trial and error for tweaking the forces. It also requires a method for placing the attractor nodes properly (perhaps by placing a node between each pair of asteroids?). Each asteroid could store pointers to the adjacent nodes. So whenever a ship encounters an asteroid on its way, it could check whether it gets attracted by one of the nodes in the asteroid's node list.
Edit: Of course you could also connect each pair of nodes with line of sight to generate a small waypoint graph. Then you could go without the attracting/repulsion forces and a ship would never be steered into a dead end.