This change allows for an arbitrary number skinning weights per vertex.
The number of weights allowed is controlled by the command line parameter --skinning-weights.
This defaults to 4 so as to not change the current behavior.
Normalization now also has a command line parameter --normalize-weights which also defaults to the current behavior of normalizing.
The entire pipeline has been upgraded to be agnostic to the number of weights per vertex. The Vec4 structures are populated at the end. Any remainder of weight/index space in the Vec4 structures are zeroed, again as the previous behavior. The code also determines the minimum set of Vec4s are globally for the mesh, and the command line parameter so as to not bloat with all zero structures. All vertices have the same number of Vec4s in the end, which I believe is what the spec requires.
This change allows for an arbitrary number skinning weights per vertex. The number of weights allowed is controlled by the command line parameter --skinning-weights. This defaults to 4 so as to not change the current behavior. Normalization now also has a command line parameter --normalize-weights which also defaults to the current behavior of normalizing.
The entire pipeline has been upgraded to be agnostic to the number of weights per vertex. The Vec4 structures are populated at the end. Any remainder of weight/index space in the Vec4 structures are zeroed, again as the previous behavior. The code also determines the minimum set of Vec4s are globally for the mesh, and the command line parameter so as to not bloat with all zero structures. All vertices have the same number of Vec4s in the end, which I believe is what the spec requires.