Я бы согласился с использованием xna способом, подобным образцу winforms.
Я думаю, что вы могли бы получить наилучший внешний вид и производительность для линий не рендерингом растрового изображения или использованием SpriteBatch, а созданиемдинамический буфер вершин, содержащий все конечные точки всех линий.Затем используйте DrawUserPrimitives () и укажите для параметра primitiveType значение PrimitiveType.LineList.
Это отправляет все эти точки в графический процессор, где вы можете создавать всевозможные эффекты (шейдеры) на линиях, в то время как графический процессор выполняет всю тяжелую работу.
Некоторые из примеров в образовательныхВ разделе приложения-концентратора этот вид рендеринга используется для создания сеток.На ум приходит образец perPixelLighting .Вам может (или не может) работать в трехмерном пространстве.