Are the lines dynamically changing, or are they static?
As far as I see on the image, you are already doing some king of projection, the lines' geometry seems to follow the terrain. If you are calculating these projected lines "precisely" so without any simplification, then probably you only have to apply some depth bias to the lines, because no matter how precisely you calculate the lines, lines and triangles are rasterized differently + some floating point errors.
Add the bias (try different values untill the result looks okay) to the lines in your fragment shader.
Maybe you can render the lines with some shader magic, I don't know the capabilities of shaders. Maybe you could store the original lines' parameters in a texture and perform the projection in the fragment shader.
Something like:
calculate the fragment's x and y coordinates in world coordinates, and if the x and y coordinates are near to a line, color the fragment differently. You could even have anti aliased lines this way. This could be very expensive though, maybe you can speed it up with checking against a texture first, which contains the rendered lines. If this test passes, you can go to the more precise check.
Dunno, maybe it's stupid...
Edited by szecs, 13 June 2012 - 08:19 AM.