Procedural Mesh Splitting

This is now open source!
Get it here:

This project began as a fun idea and ended up as my master thesis. It is currently in development and this page will contain the latest progress on the project. This project is being developed in Unity3D and will be optimized for usage in this engine together with it’s objects and components.

Gladiator Tailes
Prototype game with PMS, splitting animated characters consisting of several convex shapes.
Slicing Tech Demo
Tech demo made to show of the convex mesh splitting with different meshes and materials. This is the first prototype of mesh splitting which has been improved severely since then.

The Goal
To create a middleware package that can split a 3D Mesh, both convex and concave, into multiple meshes. The primary focus will be on splitting a mesh with a plane.
Texture mapping algorithms will also be a part of this project mapping newly created geometry onto textures in a meaningfull way.
When an object is split it is important to keep properties tied to the original game object containing the mesh.
All of these parts contains a lot of different algorithms and it’s important for all of these to be as optimized as possible for use in game development.

Current State
At this point mesh splitting for convex meshes is fully functional and optimized. Bone animation is supported but can cause problems when mesh is animated into a non-convex shape. Most properties are transfered, but cases like physics joints needs special handling. I’ve scratched the surface of texture mapping as seen in the Slicing Tech Demo, but there is still a lot of work to be done in this area.