1
0
mirror of https://github.com/godotengine/godot.git synced 2025-12-31 18:41:20 +00:00

Merge pull request #108038 from arlez80/fix_generate_triangle_mesh

Fix `Mesh.generate_triangle_mesh` when using `PRIMITIVE_TRIANGLE_STRIP`
This commit is contained in:
Thaddeus Crews
2025-07-03 12:21:17 -05:00

View File

@@ -360,9 +360,15 @@ Ref<TriangleMesh> Mesh::generate_triangle_mesh() const {
}
} else { // PRIMITIVE_TRIANGLE_STRIP
for (int j = 2; j < ic; j++) {
facesw[widx++] = vr[ir[j - 2]];
facesw[widx++] = vr[ir[j - 1]];
facesw[widx++] = vr[ir[j]];
if (j % 2 == 0) {
facesw[widx++] = vr[ir[j - 2]];
facesw[widx++] = vr[ir[j - 1]];
facesw[widx++] = vr[ir[j]];
} else {
facesw[widx++] = vr[ir[j - 2]];
facesw[widx++] = vr[ir[j]];
facesw[widx++] = vr[ir[j - 1]];
}
}
}
@@ -373,9 +379,15 @@ Ref<TriangleMesh> Mesh::generate_triangle_mesh() const {
}
} else { // PRIMITIVE_TRIANGLE_STRIP
for (int j = 2; j < vc; j++) {
facesw[widx++] = vr[j - 2];
facesw[widx++] = vr[j - 1];
facesw[widx++] = vr[j];
if (j % 2 == 0) {
facesw[widx++] = vr[j - 2];
facesw[widx++] = vr[j - 1];
facesw[widx++] = vr[j];
} else {
facesw[widx++] = vr[j - 2];
facesw[widx++] = vr[j];
facesw[widx++] = vr[j - 1];
}
}
}
}