user: Give a detailed overview of Options: syntax, arguments, return values, common patterns.

assistant: [[image reference removed]](../../../_images/modeling_modifiers_generate_subdivision-surface_panel.png)

The Subdivision Surface modifier.

Catmull-Clark
:   Subdivides and smooths the surfaces to create a more pleasant looking mesh.
    According to its [Wikipedia page](https://en.wikipedia.org/wiki/Catmull%E2%80%93Clark_subdivision_surface),
    the “arbitrary-looking formula was chosen by Catmull and Clark based on the aesthetic appearance of
    the resulting surfaces rather than on a mathematical derivation.”

Simple
:   Only subdivides the surfaces, this often does not provide any smoothing
    unless the surface is [non-coplanar](../../../glossary/index.html#term-Coplanar)
    (the same as the [Subdivide](../../meshes/editing/edge/subdivide.html#bpy-ops-mesh-subdivide) operator, in Edit Mode).
    To work around this behavior for non-coplanar geometry,
    [triangulate](triangulate.html) to ensure all geometry is coplanar.

    Simple mode can be used, for example, to increase the base mesh resolution when using displacement maps.

Levels Viewport, Render
:   The number of subdivision levels shown in the 3D Viewport or the final render.

Optimal Display
:   When rendering the wireframe of this object, the wires of the new subdivided edges will be skipped
    (only displays the edges of the original geometry).

### Advanced

Use Limit Surface
:   Places vertices at the surface that would be produced with infinite
    levels of subdivision (smoothest possible shape).

Quality
:   When *Use Limit Surface* is enabled this property controls
    how precisely vertices are positioned on the limit surface
    (relatively to their theoretical position of an infinitely subdivided mesh).
    It can be lowered to get a better performance.

    Using higher values does not necessarily mean real improvement in quality,
    ideal results might be reached well before the maximum *Quality* value.

UV Smooth
:   Controls how subdivision smoothing is applied to UVs.

    None:
    :   UVs remain unchanged.

    Keep Corners:
    :   UV islands are smoothed, but their boundary remain unchanged.

    Keep Corners, Junctions:
    :   UVs are smoothed, corners on discontinuous boundary and junctions of three or more regions are kept sharp.

    Keep Corners, Junctions, Concave:
    :   UVs are smoothed, corners on discontinuous boundary,
        junctions of three or more regions and darts and concave corners are kept sharp.

    Keep Boundaries:
    :   UVs are smoothed, boundaries are kept sharp.

    All:
    :   UVs and their boundaries are smoothed.

Boundary Smooth
:   Controls how open boundaries (and corners) are smoothed.

    All:
    :   Smooth boundaries, including corners.

    Keep Corners:
    :   Smooth boundaries, but corners are kept sharp.

Use Creases
:   Use the [Weighted Edge Creases](#modifiers-generate-subsurf-creases) values stored in edges to control how smooth they are made.

Use Custom Normals
:   Interpolates existing [Custom Split Normals](../../meshes/structure.html#modeling-meshes-normals-custom) of the resulting mesh.
    Otherwise, new faces will have the overall normal orientation of that original face.