is possible to split just the indices?

I want to draw a lot of vertices (50k - 5000k) with drawElements. the problem is indices buffer only allow 16-bit numbers.

is possible to split just the indices? so i just have one vertices buffer, and more than one indices buffer to draw the vertices.

if possible, how to draw a lot of vertices with many indices?

if not, what is the better way to draw that? i am currently do is splitting the vertices into a smaller vertices buffer, so the total of elements less than 36k, then re-index.

You definitively can split your mesh into separate small segments.

You can also considering using drawArray instead of drawElement for large amount of triangles, as drawArray does not have a limit. It is also very easy to transform indexed triangles to un-indexed triangle, but it does requires you to go through some nasty Javascript loop. But so far, my 3D objects with 65k can still be processed very fast without any noticeable delay.

I had noticed that you mentioned 5000k, are you working on museum’s object? Why do you need that much triangles? Loading 5000k in a native 3D application is also pretty challenging.

As far as I know, Firefox will failed to render anything above approx 500k of triangles (tested having 650k, Firefox just stopped working), it’ll simply run out of memory. But to keep in mind I’m also using Web worker to process the mesh.

Woops, my bad for not reading the question clearly, You can seperate an objects to multiple segment but I believe that they are required to store the vertices for every segment as well.

But if you are loading only 1 or 2 3D objects, the delay in spliting indexes and vertices shouldn’t be too noticeable. Or you can also try drawArray that I had suggested previously for anything below 500k of triangles.