Cinema 4D Cinema 4D Prime Create Menu Generators Subdivision Surfaces
Function available in CINEMA 4D Prime, Visualize, Broadcast, Studio & BodyPaint 3D
Subdivision Surface

Basic Coord. Object

Object Properties

Type

You will find several modes. These are:

Subdivision Surfaces

Catmull-Clark

N-gons will first be triangulated internally before being subdivided. Point, edge and polygon weighting is supported. Since Catmull-Clark is so widely used and generates an equally smooth surface, it should be used when exporting Subdivision Surface objects (i.e. LowPoly models) to other applications.

Catmull-Clark (N-Gons)

Example:

From left to right: Initial object; type: Catmull-Clark, Catmull-Clark (N-Gons).

Function available in CINEMA 4D Prime, Visualize, Broadcast, Studio & BodyPaint 3D

RELEASE 18

OpenSubdiv

Several new Subdivision Surface algorithms were integrated into Cinema 4D R18. Subdivision Surfaces is a technique that has been around since the late 70s. It has been implemented in various ways in different software packages over the years and has also been expanded, e.g., with the addition of vertex, edge and polygon weighting. This can, however, lead to compatibility issues between various applications, which is why Pixar made its Subdivision Surface implementation public for reasons of compatibility. The corresponding open-source libraries are available under the name OpenSubdiv.

The following 3 types have been integrated into Cinema 4D.

Using graphics cards-supported tessellation (breaking down of polygons into smaller triangles; in the following referred to as GPU Tessellation, implemented using the Type (OpenSubdiv Catmull Clark (Adaptive) setting), highly subdivided objects can be displayed faster than before in the Viewport. For example, a character animation with high subdivision can be displayed more fluidly than before. However, the GPU tessellation cannot be rendered.

Note the following points:

  • Modeling with OpenSubdiv types is slower than with previous types
  • Weighting affects OpenSubdiv differently in some aspects. For the most part, the effect is similar but nevertheless different. The most major difference is produced by the vertex weighting, which, in extreme cases, does not end in peaks:

Vertices are weighted differently with OpenSubdiv Catmull-Clark.

The edge weighting is somewhat more precise than the older types. It can be fine-tuned more precisely for larger weighting (i.e., just under 100%).

OpenSubdiv Catmull-Clark

This type represents the old Catmull-Clark type in the Pixar implementation with the aforementioned differences. If no weighting is defined or no OpenSubdiv-specific functions are used, the result will precisely represent Catlmull-Clark. Only four-sided polygons will be generated in contrast to the next type.

OpenSubdiv Loop

This type is for use in special pipelines (e.g., game development). It is designed for processing triangles; if quads are present, they will be triangulated before smoothing. The subdivided, smooth object is only made up of triangles. The subdivision process differs from the normal Catmull-Clark types:

Catmull-Clark subdivision (top) and OpenSubdiv Loop (bottom) with different subdivision of objects.

Vertex, edge and polygon weighting also work in this mode.

OpenSubdiv Bilinear

This type principally works the same way as the Subdivide … command with a disabled Smooth Subdivision option. It subdivides but does not smooth. It creates a type of non-destructive subdivision (which can be reversed at any time).

OpenSubdiv Catmull-Clark (Adaptive)

This option enables a special type of tessellation that is calculated by the GPU (the shaping is similar to OpenSubdiv Catmull-Clark). Since internal OpenGL shaders are used, Hardware OpenGL must be enabled in the Preferences menu. Otherwise only the un-subdivided cage object will be displayed.

A reminder: the GPU tessellation visible in the Viewport is not available as geometry for rendering.

Tip:
If you render the scene, Cinema 4D will automatically switch to OpenSubdiv Catmull-Clark internally, which can produce differing results.

Deformers and Generators also cannot use GPU tessellation: The Deformers that are, for example, used for character animation affect the low-subdivided cage object, which will be subsequently subdivided in a second step so it can be displayed with a high resolution in the Viewport. The Deformers cannot directly affect the highly-subdivided Subdivision Surface in conjunction with GPU tessellation.

As the name already suggests, GPU tessellation uses an adaptive subdivision, i.e., greater subdivision takes place where necessary - at corners, edges, etc. - and less subdivision takes place on flat surfaces.

Left normal subdivision, right additional GPU tessellation.

To achieve this, the viewport subdivision must be set fairly high and the GPU Tessellation Level should have a very low value. The faster your graphics card is (don’t forget to update your graphics card drivers), the more fluid the display will be in the Viewport.

Currently, this mode cannot display displacement.

Subdivision Editor [0..6]
Subdivision Renderer [0..6]

Use this page to specify the subdivision level for shading within the editor (i.e. the viewport) and for the renderer. The higher you set the resolution, the smoother the object becomes, but the more memory it uses and the slower it renders.

Figure 1. From left to right: source object, Subdivisions set to 1, 2 and 3.

Subdivide UVs

The Subdivide UVs setting resolves the problem of texture seams along the edges of adjoining small and large polygons. The Standard mode corresponds to the normal functionality. The Boundary and Edge modes apply Subdivision Surface algorithms to the UV mesh of non-OpenSubdiv types and subdivide it accordingly.

When Subdivide UVs is set to Boundary or Edge, the UV mesh will be altered and may cause parts of the texture to be hidden.

Example:

Suppose you have textured a low-poly cube 1. using the Checkerboard shader 2.. After hours of creative work, you Drag & drop the cube into a Subdivision Surface object and notice that the texture is stretched out of shape 3..

Here’s where the Boundary and Edge functions come into play (experiment to find out which function works best for you). For this example, the Edge mode was chosen 4., which preserves the original outer edges of the UV mesh.

RELEASE 18

Subdivide UVs

OpenSubdiv types have their own settings that define how UV coordinates should be handled. The settings refer to UV islands and how inner and outer UV corners are dealt with. The following options are available in the respective areas (Linear means linear interpolation (= no smoothing, no subdivision))):

  • Linear, None: No linear interpolation will take place, everything will be smoothed
  • Linear, Corners Only: The linear interpolation is restricted to corners (UV vertices that are only part of a UV polygon)
  • Linear, Boundaries: Linear interpolation will only take place along the edge of UV islands, the outline is maintained, the inside will be smoothed
  • Linear, All: A strict inner and outer linear interpolation will take place, absolutely nothing will be smoothed, the UV islands’ outlines will remain constant

Boundary Interpolation

Use this setting to define whether or not corners should be smoothed. What are corners? Corners are vertices that belong only to a single polygon. Note in the image above how the corners are not smoothed if Edges and Corners is selected.

Edge

All corners will be smoothed.

Edge and Corner

Corners will not be smoothed.

Triangle Subdivision

This setting only applies to the cage object’s triangles. Catmark is the usual smoothing type, which can look somewhat angular, whereas Smooth produces a more rounded and harmonious result.

Edge Crease

The edge weighting listed on the left and their smoothed results.

This setting can be used to affect the transition between two edges with different weighting. If Uniform is selected, the smoothing will be fairly constant along a single edge, which makes the transition between differently weighted edges more abrupt; if Chaikin is selected, an attempt will be made to create a more homogenous transition.

Adaptive (GPU) Tessellation Level [1..10]

Use this setting to adjust the tessellation strength. The initial viewport subdivision will be used as a base that will further subdivide the GPU tessellation. Due to the adaptive functionality, the subdivision can be reduced in certain non-critical (surface) areas in comparison to the aforementioned subdivision (see image above for OpenSubdiv Catmull-Clark (Adaptive)).

The values that can be defined here are not restricted. However, subdivision will only take place to a level that your graphics card can handle. If higher values than this are defined, no additional subdivision will take place.

R12 Compatibility

With the introduction of R13, Cinema 4D offers improved point and edge weighting. When loading older scenes with corresponding weighting, this option ensures compatibility. The Subdivision Surface object will smooth as usual.