The Coons Mesh generator provides the user with a simple yet effective tool to enable free-form mesh development by defining the four side-curves enclosing a region in space.
Usually found in CAD software, Coons Mesh is based on the Coons surface definition (Wikipedia) which requires four curves to meet at their reciprocal end points and defining the mesh vertex positions by bi-linearly interpolating the discrete positions across the curves.
To adapt to user’s individual workflow the Coons Mesh generator can operate using the standard approach pinning input curves as generator’s children or to populate the proper curve’s link in the Attribute Manager.
- S-steps: Number of mesh subdivisions in the “S” direction.
- T-steps: Number of mesh subdivisions in the “T”direction.
- Junction Type: Type of junction check to operate on the curves’ start/end points [Tight/Loose]. “Tight” mode forces the ending points of the curves to meet with the tolerance specified by the “Junction Tolerance” (see below). “Loose” mode permits the mesh to be created even if the four curves don’t match at ending points (“Junction Tolerance” is ignored).
- Junction Tol.: Junction check tolerance value (used also to auto-flip curves’ direction).
- Flip Normals: Invert mesh normals for coherent mesh connections.
N-th curve parameters:
- Link: Link to the n-th input curve (disabled if children pinned under the generator).
- Sampling: Sampling mode used to sample curve to define point positions [Natural/Uniform]. “Natural” mode samples the curve based on its slope variation. “Uniform” mode samples the curve applying a constant step.
- Cleanup: Enables curve clean-up to remove redundant points found within the specified tolerance.
- Tol.: Curve clean-up tolerance.
- Keep the curves as simple as possible to avoid awkward point distribution in the final mesh.
- Avoid using splines with multiple segments. Please favour single segment splines with more points rather than splines featuring multiple segments with less points.
- When possible explode multi-segment splines to obtain single-segment splines.
- Start using low values for S/T steps in order to refine the model later on with other operators (Subdivision Surface, Connect object, Symmetry, etc.).
- Use open curves/splines. Closed splines may (and will) lead to unexpected results.
- All of Cinema 4D’s open procedural splines are supported (Arc, Cycloid, …).
- Prefer “Tight” junction connection type over “Loose”. Although “Loose” might be helpful in certain situations (i.e. when using splines obtained by deformers or other generators which could hardly be controlled to meet at a specific point), “Tight” provides you with the most coherent results creating a mesh whose shape and final appearance properly matches the expected result.
- Using the link-fields instead of child splines to define the generative curves, enables mutual updates when a curve is used on two or more Coons Mesh generators. Very useful to create connected patches of Coons Meshes (use Connect object as parent to get smooth seams).
The four curves enclosing the region can be specified following a CW or CCW order. Preferring the first to the second mode has no influence except for the orientation of the polygons’ normals.
The following orders for the input curves are allowed (1st ->2nd -> 3rd ->4th):
- Red -> Yellow -> Blue -> Green
- Yellow -> Blue -> Green -> Red
- Blue -> Green -> Red -> Yellow
- Green -> Red -> Yellow -> Blue
- Green -> Blue -> Yellow -> Red
- Blue -> Yellow -> Red -> Green
- Yellow -> Red -> Green -> Blue
- Red -> Green -> Blue -> Yellow
It might happen that during curve sketching multiple control points get positioned very close to each other, resulting in a very dense or degenerated curve. By activating “Cleanup” for a specific curve, the curve will be checked and if multiple points are found in a range specified by tolerance parameter only one is considered during the mesh creation time, leading to a cleaner and more evenly distributed mesh.
Although the Coons Mesh has been designed to work with a set of curves forming a closed loop, it might be useful, when input splines are generated procedurally by other tools, to let the Coons Mesh compute a result even if the splines’ end points are not matching. It’s relevant to note that final mesh extension depends on the position of curves 2 and 4 endpoints and is not influenced by the moving endpoints of curves 1 and 3.
Cinema 4D R17 and higher (binaries notarized to work on macOS 10.15.x)
coonsmesh_1.04.zip (1.5 MiB)
Coons Mesh C4D example scene (774.0 KiB)
Unzip the downloaded archive to Cinema 4D’s default plugin folder.
Provide your bug reports, test scenes or ideas by writing an email to labs-at-maxon-dot-net