| … | … | @@ -520,19 +520,23 @@ void BlenderBridge::import_changes(Node *root) { |
| 520 | 520 | } |
| 521 | 521 | } |
| 522 | 522 | |
| 523 | | // Rebuild mesh surface (scene-level, not RS-level — RS method is broken) |
| 523 | // Rebuild mesh surface — convert to ArrayMesh if needed |
| 524 | 524 | Ref<ArrayMesh> arr_mesh = Object::cast_to<ArrayMesh>(mesh_inst->get_mesh().ptr()); |
| 525 | | if (arr_mesh.is_valid()) { |
| 526 | | Array arrays; |
| 527 | | arrays.resize(Mesh::ARRAY_MAX); |
| 528 | | arrays[Mesh::ARRAY_VERTEX] = positions; |
| 529 | | if (normals.size() > 0) { |
| 530 | | arrays[Mesh::ARRAY_NORMAL] = normals; |
| 531 | | } |
| 525 | if (!arr_mesh.is_valid()) { |
| 526 | // Procedural mesh (BoxMesh, etc.) — replace with ArrayMesh |
| 527 | arr_mesh.instantiate(); |
| 528 | mesh_inst->set_mesh(arr_mesh); |
| 529 | } |
| 532 | 530 | |
| 533 | | arr_mesh->clear_surfaces(); |
| 534 | | arr_mesh->add_surface_from_arrays(Mesh::PRIMITIVE_TRIANGLES, arrays); |
| 531 | Array arrays; |
| 532 | arrays.resize(Mesh::ARRAY_MAX); |
| 533 | arrays[Mesh::ARRAY_VERTEX] = positions; |
| 534 | if (normals.size() > 0) { |
| 535 | arrays[Mesh::ARRAY_NORMAL] = normals; |
| 535 | 536 | } |
| 537 | |
| 538 | arr_mesh->clear_surfaces(); |
| 539 | arr_mesh->add_surface_from_arrays(Mesh::PRIMITIVE_TRIANGLES, arrays); |
| 536 | 540 | } |
| 537 | 541 | } |
| 538 | 542 | |