Fix 8 bone weights in glTF2

Don't spam in glTF2 import either.

Clear() in SurfaceTool does not keep 8 weights.
This commit is contained in:
K. S. Ernest (iFire) Lee 2021-06-07 12:30:07 -07:00
parent a19439734e
commit 291e735972
2 changed files with 12 additions and 4 deletions

View file

@ -2653,10 +2653,10 @@ Error GLTFDocument::_parse_meshes(Ref<GLTFState> state) {
//must generate mikktspace tangents.. ergh..
Ref<SurfaceTool> st;
st.instance();
st->create_from_triangle_arrays(array);
if (a.has("JOINTS_0") && a.has("JOINTS_1")) {
st->set_skin_weight_count(SurfaceTool::SKIN_8_WEIGHTS);
}
st->create_from_triangle_arrays(array);
st->generate_tangents();
array = st->commit_to_arrays();
}
@ -2772,10 +2772,10 @@ Error GLTFDocument::_parse_meshes(Ref<GLTFState> state) {
if (generate_tangents) {
Ref<SurfaceTool> st;
st.instance();
st->create_from_triangle_arrays(array_copy);
if (a.has("JOINTS_0") && a.has("JOINTS_1")) {
st->set_skin_weight_count(SurfaceTool::SKIN_8_WEIGHTS);
}
st->create_from_triangle_arrays(array_copy);
st->deindex();
st->generate_tangents();
array_copy = st->commit_to_arrays();