WOLFRAM

Enable JavaScript to interact with content and submit forms on Wolfram websites. Learn how
Wolfram Language & System Documentation Center

SubdivisionRegion [mesh]

represents the limit region of applying a subdivision scheme to the mesh region mesh.

SubdivisionRegion [mesh,n]

gives the n^(th) subdivision level of mesh.

SubdivisionRegion [,proc]

uses the subdivision refinement scheme proc.

Details and Options
Details and Options Details and Options
Examples  
Basic Examples  
Scope  
Basic Uses  
Presentation  
Specification  
Applications  
Basic Applications  
Modeling  
Level of Detail Generation  
Interpolation  
Properties & Relations  
Possible Issues  
See Also
Related Guides
History
Cite this Page

SubdivisionRegion [mesh]

represents the limit region of applying a subdivision scheme to the mesh region mesh.

SubdivisionRegion [mesh,n]

gives the n^(th) subdivision level of mesh.

SubdivisionRegion [,proc]

uses the subdivision refinement scheme proc.

Details and Options

  • SubdivisionRegion is also known as subdivision surface and subdivision curve.
  • SubdivisionRegion is typically used to create smoother and more detailed regions by splitting faces and lines of a mesh region into smaller parts.
  • SubdivisionRegion [mesh] represents the limit of the iterative process of refining the mesh region mesh.
  • SubdivisionRegion [mesh,n] gives the mesh region obtained after applying a subdivision n times to mesh.
  • SubdivisionRegion works on mesh regions in 2D and 3D, including lines, polygons, surfaces and solids.
  • SubdivisionRegion [mesh,n,proc] uses the specified subdivision refinement scheme proc.
  • Possible subdivision refinement schemes proc for 3D mesh regions include:
  • "CatmullClark" quadrilateral-based subdivision scheme
    "Loop" triangle-based subdivision scheme
    "QuadTri" hybrid subdivison scheme
  • Possible subdivision refinement schemes proc for 2D mesh regions include:
  • "Chaikin" corner-cutting scheme
  • SubdivisionRegion takes the same options as Region .

Examples

open all close all

Basic Examples  (2)

Subdivide a Spikey:

Wolfram Language code: SubdivisionRegion[[image]]

Get subdivision levels:

Wolfram Language code: Table[SubdivisionRegion[[image], i], {i, 3}]

A subdivided 2D polygon:

Wolfram Language code: SubdivisionRegion[Polygon[{{0.23511410091698925, 0.323606797749979}, {0, 1}, {-0.23511410091698923, 0.323606797749979}, {-Sqrt[5/8 + Sqrt[5]/8], (-1 + Sqrt[5])/4}, {-0.3804226065180615, -0.12360679774997892}, {-Sqrt[5/8 - Sqrt[5]/8], (-1 - Sqrt[5])/4}, {-7.347880794884119*^-17, -0.4}, {Sqrt[5/8 - Sqrt[5]/8], (-1 - Sqrt[5])/4}, {0.3804226065180614, -0.12360679774997907}, {Sqrt[5/8 + Sqrt[5]/8], (-1 + Sqrt[5])/4}}]]

Find its area:

Wolfram Language code: Area[%]

Scope  (8)

Basic Uses  (2)

SubdivisionRegion works on curves:

Wolfram Language code: SubdivisionRegion[[image]]

Surfaces:

Wolfram Language code: SubdivisionRegion[[image]]

Solids:

Wolfram Language code: SubdivisionRegion[[image]]

SubdivisionRegion works on regions in 2D:

Wolfram Language code: SubdivisionRegion[Rectangle[]]

3D:

Wolfram Language code: SubdivisionRegion[Cuboid[]]

Presentation  (3)

Specify the styling of a SubdivisionRegion in 2D:

Wolfram Language code: SubdivisionRegion[Rectangle[], BaseStyle -> {EdgeForm[{Gray, Thick}], FaceForm[LightRed]}]

3D:

Wolfram Language code: SubdivisionRegion[Cuboid[], BaseStyle -> Hue[0, 0.23, 1.]]

Specify graphics options for SubdivisionRegion in 2D:

Wolfram Language code: SubdivisionRegion[Rectangle[], Background -> LightGreen, PlotRangePadding -> 1 / 2]

3D:

Wolfram Language code: SubdivisionRegion[Cuboid[], Background -> GrayLevel[0.4], Lighting -> "ThreePoint"]

Styling applies to finite subdivision levels:

Wolfram Language code: SubdivisionRegion[Cuboid[], 2, Background -> GrayLevel[0.2], Lighting -> "ThreePoint", BaseStyle -> {EdgeForm[], White}]

Specification  (3)

By default, SubdivisionRegion gives the limit region as the subdivision level approaches infinity:

Wolfram Language code: SubdivisionRegion[Tetrahedron[]]

This is equivalent to specifying a level of Infinity :

Wolfram Language code: SubdivisionRegion[Tetrahedron[], Infinity]

Specify a finite level:

Wolfram Language code: SubdivisionRegion[Tetrahedron[], 3]

Level zero gives the region with no subdivisions applied:

Wolfram Language code: SubdivisionRegion[Tetrahedron[], 0]

Subdivide a region using different subdivision schemes in 2D:

Wolfram Language code: SubdivisionRegion[Line[{{0, -1}, {1, 1}, {2, -1}, {3, 1}}], {"Chaikin"}]

3D:

Wolfram Language code: Table[SubdivisionRegion[Tetrahedron[], scheme], {scheme, {"CatmullClark", "Loop", "QuadTri"}}]

Subdivide a region with a specific scheme to a given level:

Wolfram Language code: SubdivisionRegion[Dodecahedron[], 1, "CatmullClark"]

Applications  (10)

Basic Applications  (4)

The "CatmullClark" scheme subdivides each quadrilateral into four quadrilaterals:

Wolfram Language code: SubdivisionRegion[[image], {0, 1}, "CatmullClark", Rule[...]]

Other polygons will be subdivided into quadrilaterals, one per side:

Wolfram Language code: SubdivisionRegion[[image], {0, 1}, "CatmullClark", Rule[...]]

The "Loop" scheme subdivides each triangle into four triangles:

Wolfram Language code: SubdivisionRegion[[image], {0, 1}, "Loop", Rule[...]]

The "QuadTri" scheme subdivides each quadrilateral and triangle into four quadrilaterals and triangles, respectively:

Wolfram Language code: SubdivisionRegion[[image], {0, 1}, "QuadTri", Rule[...]]

Other polygons will be subdivided into quadrilaterals:

Wolfram Language code: SubdivisionRegion[[image], {0, 1}, "QuadTri", Rule[...]]

The "Chaikin" scheme adds a new edge for each corner:

Wolfram Language code: SubdivisionRegion[[image], {0, 1}, "Chaikin"]

Modeling  (3)

Use SubdivisionRegion to smooth coarse meshes designed for subdivision:

Wolfram Language code: SubdivisionRegion[[image], 3]

Perform minor modifications on the control mesh to affect many faces on the subdivided mesh:

Wolfram Language code: Table[SubdivisionRegion[r, 2], {r, {[image], [image]}}]

Efficiently represent a high-fidelity model using a low poly base mesh:

Wolfram Language code: base = [image]; SubdivisionRegion[base, 2]

The base mesh requires far less data to store than the explicitly subdivided result:

Wolfram Language code: BarChart[ByteCount /@ {base, %}]

Level of Detail Generation  (1)

Create higher-level-of-detail models from a low-fidelity base mesh:

Wolfram Language code: lods = SubdivisionRegion[[image], {0, 1, 2}, PlotTheme -> "SmoothShading"]

Lower-level-of-detail meshes can be used when the object takes up less screen space to improve render speeds while preserving visual fidelity:

Wolfram Language code: GraphicsRow[Table[MeshRegion[lods[[i]], ImageSize -> 2 ^ (i + 4)], {i, 3}]]

Interpolation  (2)

Smoothly interpolate the coordinates of a control mesh in 2D:

Wolfram Language code: SubdivisionRegion[[image]]

3D:

Wolfram Language code: SubdivisionRegion[[image], 4]

Add additional geometric resolution to smooth meshes:

Wolfram Language code: SubdivisionRegion[[image], 3]

Properties & Relations  (2)

GeodesicPolyhedron subdivides a polyhedron to approximate a sphere:

Wolfram Language code: Table[BoundaryDiscretizeRegion[GeodesicPolyhedron["Icosahedron", n]], {n, 1, 3}]

Achieve a similar result using SubdivisionRegion :

Wolfram Language code: Table[SubdivisionRegion[Icosahedron[], n, "Loop"], {n, 0, 2}]

The limit region of the "Chaikin" subdivision scheme is a composite quadratic BezierCurve :

Wolfram Language code: sreg = SubdivisionRegion[Line[{{0, 1}, {1, -1}, {2, 1}, {3, -1}}]]; bcurve = BezierCurve[{{(1/2), 0}, {1, -1}, {(3/2), 0}, {2, 1}, {(5/2), 0}}, SplineDegree -> 2]; {sreg, Region[bcurve]}

Possible Issues  (2)

The "Loop" subdivision scheme will triangulate the mesh before subdividing:

Wolfram Language code: Region[Cube[]]
Wolfram Language code: SubdivisionRegion[%, 0, "Loop"]

Some subdivision schemes may produce non-planar faces that are not well defined geometrically:

Wolfram Language code: mesh = SubdivisionRegion[Cube[], 1, "CatmullClark"]
Wolfram Language code: AllTrue[MeshPrimitives[mesh, 2][[All, 1]], CoplanarPoints]

Non-planar faces are triangulated before performing further computations:

Wolfram Language code: CanonicalizeRegion[mesh]
Wolfram Language code: AllTrue[MeshPrimitives[%, 2][[All, 1]], CoplanarPoints]
Wolfram Research (2025), SubdivisionRegion, Wolfram Language function, https://reference.wolfram.com/language/ref/SubdivisionRegion.html.

Text

Wolfram Research (2025), SubdivisionRegion, Wolfram Language function, https://reference.wolfram.com/language/ref/SubdivisionRegion.html.

CMS

Wolfram Language. 2025. "SubdivisionRegion." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/SubdivisionRegion.html.

APA

Wolfram Language. (2025). SubdivisionRegion. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/SubdivisionRegion.html

BibTeX

@misc{reference.wolfram_2026_subdivisionregion, author="Wolfram Research", title="{SubdivisionRegion}", year="2025", howpublished="\url{https://reference.wolfram.com/language/ref/SubdivisionRegion.html}", note=[Accessed: 05-September-2026]}

BibLaTeX

@online{reference.wolfram_2026_subdivisionregion, organization={Wolfram Research}, title={SubdivisionRegion}, year={2025}, url={https://reference.wolfram.com/language/ref/SubdivisionRegion.html}, note=[Accessed: 05-September-2026]}

Top [フレーム]

AltStyle によって変換されたページ (->オリジナル) /