Skip to content

PartOps Slice B — Split segmented groups into real submeshes #861

Description

@fernandotonon

Goal

Convert accepted segmentation groups into actual Ogre submeshes.

Parent epic: #859

Scope

  • Add shared helper SubMeshOps::splitByFaceGroups.
  • Create one submesh per accepted part group.
  • Preserve material by default; optionally assign generated part materials.
  • Duplicate boundary vertices so split submeshes are independent.
  • Preserve normals, UVs, vertex colors, tangents, bone weights, n-gon face cache, and UV seam bindings where applicable.
  • Add a mesh-replacement undo command because current EditMeshTopologyCommand requires unchanged submesh count.

Acceptance Criteria

  • A single-submesh humanoid can become Body.head, Body.torso, Body.left_arm, etc.
  • Undo restores the original submesh layout.
  • FBX/glTF export preserves new submesh boundaries.
  • Skinned fixtures retain valid bone assignments.

Tests

  • Split fixture by synthetic face labels.
  • Attribute preservation test.
  • Boundary vertex duplication test.
  • Skinned mesh bone assignment test.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    ai-assistLocal-AI-assisted 3D workflows (epic prefix: AI:)editorenhancementNew feature or requestscene-treeScene tree, submeshes, hierarchy operations

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions