diff --git a/tutorials/3d/csg_tools.rst b/tutorials/3d/csg_tools.rst index 2fdb6ec2785..630385a9f0f 100644 --- a/tutorials/3d/csg_tools.rst +++ b/tutorials/3d/csg_tools.rst @@ -91,15 +91,26 @@ The :ref:`CSGPolygon3D ` node extrude along a Polygon drawn Custom meshes ~~~~~~~~~~~~~ -Any mesh can be used for :ref:`CSGMesh3D `; the mesh can be -modeled in other software and imported into Godot. Multiple materials are -supported. There are some restrictions for geometry: +Custom meshes can be used for :ref:`CSGMesh3D ` as long as the +mesh is *manifold*. The mesh can be modeled in other software and imported into +Godot. Multiple materials are supported. A manifold mesh has some restrictions +for geometry: - it must be closed, - it must not self-intersect, - it must not contain internal faces, - every edge must connect to only two other faces. +Godot uses the `manifold `__ library to +implement CSG meshes. The technical definition of "manifold" used by Godot is +the following, adapted from that library's `definition of "manifold" +`__: + + Every edge of every triangle must contain the same two vertices (by index) as + exactly one other triangle edge, and the start and end vertices must switch + places between these two edges. The triangle vertices must appear in clockwise + order when viewed from the outside of the Godot Engine manifold mesh. + .. image:: img/csg_custom_mesh.png CSGCombiner3D