Quote: "He said he considered updating to support 32bit indices but a lot of things would need changing and he decided not to do it."
My point is that 16 bit indices only limit the number of vertices, not the number of indices. (Each index stores the number of a vertex) so any limit DBPro enforces on the number of indices could safely be lifted.
Converting to a triangle fan or strip will not be possible for anything more than specific simple objects as they simply cannot be represented that way. In both cases every triangle in the mesh must share two vertices with the previous triangle, and those vertices must be specific ones, it can't be any two.
You can separate it into multiple objects but it's a little complicated:
- Divide the indices into N blocks making sure you divide on a multiple of 3 so triangles are kept intact.
For each block:
- make a list of all the unique vertices that block references. (Basically add all the index values into an array but excluding duplicates)
- Renumber the indices in that block. Eg. if the index has a value 3, find where 3 is in your array and use the position as the new value for the index.
- Copy all the vertices referenced by the array into a new object. Eg. if array(1) = 3, then copy vertex 3 into a new object as vertex 1.
- Add the previously adjusted indices to this new object.
Now you have a new object for each block. As long as you specified a large enough value for N it should not exceed DBPro's limits.
[b]
