As we all know, we can set a lot of triangles no more than 65536 faces in one mesh. Now, I want to draw a lot of lines(more than 10000). When I call SetIndices(int[ ] indices, MeshTopology.LineStrip, int submesh), I only can set one line in one mesh. If I need to draw 10000 lines, do I need to use 10000 meshes? It’s crazy!
It’s really appreciate if anyone could give me some advice!

If I use MeshTopology.Lines, there will be a lot of duplicate vertices. Because I need to draw curves actually.
For example, If I have 10 points in each curve, I will add perhaps 2 times vertices than using Line_Strip. Does it influence the performance? I think it’s still not efficient.

If you use an index buffer with MeshTopology.Lines, it will be fine.
Alternatively, use a line strip, and insert degenerates to break the line (add 2 vertices at the same location to end a line strip, and add 2 vertices at the same location to start the new line strip).

Still, the first suggestion (use an index buffer) is probably the most efficient. (Google for “post transform cache” to learn about how the GPU will re-use vertices with the same index, instead of re-running the vertex shader, on many platforms)

Just chipping in but if your drawing a lot of lines then are you aware of this Unity - Scripting API: LineRenderer.Simplify?
It will simply lines for you so you can save on those verts

OK. You mean I need to preprocess the vertices data before rendering.

But for public static void Simplify(List points, float tolerance, List pointsToKeep), the input points must be a list of line_strip points? If I want to simplify a lot of lines, could I finish it in one simplify command?

Do you know if there are some tools to simplify the lines before put it into Unity3d?

The input needs to be a list of points that form the line, not a line strip. E.g a straight line from a to b would be 2 points. Most 3d modelling programs can simplify lines, I know blender can.

But the simplify function will think the input data is a continuous line. E.g a line from a to b to c would be 3 points. it’s the same as line strip.
So each simplify function can only deal with 1 continuous line. I need to call a lot of times simplify functions to preprocess my lines. Right?

Yes it expects that the points will form one continuous line. So if you have lots of lines then you need to call it multiple times as you said. How complex are these lines? How many points do they have?