Spectral power distribution: Difference between revisions
en>Helpful Pixie Bot m ISBNs (Build KH) |
en>SchwartzD No edit summary |
||
Line 1: | Line 1: | ||
= | [[Image:Catmull-Clark subdivision of a cube.svg|thumbnail|First three steps of Catmull–Clark subdivision of a cube with subdivision surface below]] | ||
The '''Catmull–Clark''' algorithm is a technique used in [[computer graphics]] to create smooth surfaces by [[subdivision surface]] modeling. It was devised by [[Edwin Catmull]] and [[James H. Clark|Jim Clark]] in 1978 as a generalization of bi-cubic uniform [[B-spline]] surfaces to arbitrary topology.<ref name=CatmullClark/> In 2005, Edwin Catmull received an [[Academy Award for Technical Achievement]] together with | |||
Tony DeRose and [[Jos Stam]] for their invention and application of subdivision surfaces. | |||
== Recursive evaluation == | |||
Catmull–Clark surfaces are defined recursively, using the following refinement scheme:<ref name=CatmullClark>{{cite doi|10.1016/0010-4485(78)90110-0}}</ref> | |||
Start with a [[Polygon mesh|mesh]] of an arbitrary [[polyhedron]]. All the [[vertex (geometry)|vertices]] in this mesh shall be called original points. | |||
* For each face, add a ''face point'' | |||
** Set each face point to be the ''[[average]] of all original points for the respective face''. | |||
* For each edge, add an ''edge point''. | |||
** Set each edge point to be the ''average of the two neighbouring face points and its two original endpoints''. | |||
* For each ''face point'', add an edge for every edge of the face, connecting the ''face point'' to each ''edge point'' for the face. | |||
* For each original point ''P'', take the average ''F'' of all ''n'' (recently created) face points for faces touching ''P'', and take the average ''R'' of all ''n'' edge midpoints for edges touching ''P'', where each edge midpoint is the average of its two endpoint vertices. ''Move each original point'' to the point | |||
:: <math>{F + 2R + (n-3)P \over n}</math> This is the [[barycenter]] of P, R and F with respective weights (n-3), 2 and 1. | |||
* Connect each new Vertex point to the new edge points of all original edges incident on the original vertex. | |||
* Define new faces as enclosed by edges | |||
The new mesh will consist only of [[quadrilateral]]s, which won't in general be [[Plane (mathematics)|planar]]. The new mesh will generally look smoother than the old mesh. | |||
Repeated subdivision results in smoother meshes. It can be shown that the limit surface obtained by this refinement process is at least <math>\mathcal{C}^1</math> at extraordinary vertices and <math>\mathcal{C}^2</math> everywhere else (when n indicates how many derivatives are [[Smooth_function#Differentiability_classes|continuous]], we speak of <math>\mathcal{C}^n</math> continuity). After one iteration, the number of extraordinary points on the surface remains constant. | |||
The arbitrary-looking barycenter formula was chosen by Catmull and Clark based on the aesthetic appearance of the resulting surfaces rather than on a mathematical derivation, although Catmull and Clark do go to great lengths to rigorously show that the method yields bicubic B-spline surfaces.<ref name=CatmullClark /> | |||
== Exact evaluation == | |||
The limit surface of Catmull–Clark subdivision surfaces can also be evaluated directly, without any recursive refinement. This can be accomplished by means of the technique of [[Jos Stam]].<ref name=Stam>{{cite doi|10.1145/280814.280945}}</ref> This method reformulates the recursive refinement process into a [[matrix exponential]] problem, which can be solved directly by means of [[matrix diagonalization]]. | |||
== Software using Catmull–Clark subdivision surfaces == | |||
{{Refimprove section|date=April 2013}} | |||
<div class="references-small" style="-moz-column-count:3; column-count:3;"> | |||
* [[3ds max]] | |||
* [[3D-Coat]] | |||
* [[AC3D]] | |||
* [[Anim8or]] | |||
* [[AutoCAD]] | |||
* [[Blender (software)|Blender]] | |||
* [[Carrara (software)|Carrara]] | |||
* [[CATIA|CATIA (Imagine and Shape)]] | |||
* [[CGAL]] | |||
* [[Cheetah3D]] | |||
* [[Cinema4D]] | |||
* [[Clara.io]] | |||
* [[DAZ Studio|DAZ Studio, 2.0]] | |||
<!--* DeleD Pro--> | |||
* [[Gelato (software)|Gelato]] | |||
* [[Valve Hammer Editor|Hammer]] | |||
* [[Hexagon (software)|Hexagon]] | |||
* [[Houdini (software)|Houdini]] | |||
<!--* JPatch--> | |||
* [[K-3D]] | |||
* [[LightWave|LightWave 3D, version 9]] | |||
* [[Maya (software)|Maya]] | |||
* [[Metasequoia (software)|Metasequoia]] | |||
* [[Modo (software)|modo]] | |||
* [[Mudbox]] | |||
* [[PhotoRealistic RenderMan|PRMan]] | |||
* [[Realsoft3D]] | |||
* [[Remo 3D]] | |||
* [[Shade 3D|Shade]] | |||
* [[Rhinoceros 3D]] - Grasshopper 3D Plugin - Weaverbird Plugin | |||
* [[Silo (software)|Silo]] | |||
* [[SketchUp]] - Requires a Plugin. | |||
* [[Softimage XSI]] | |||
* [[Strata 3D|Strata 3D CX]] | |||
<!--* Vue 9--> | |||
* [[Wings 3D]] | |||
* [[Zbrush]] | |||
* [[TopMod]] | |||
<!--* TopoGun--> | |||
<!--* CREO 1.0 - PTC - (Freestyle)--> | |||
</div> | |||
== See also == | |||
* [[Conway polyhedron notation]] - A set of related topological polyhedron and polygonal mesh operators. | |||
== References == | |||
<references/> | |||
{{DEFAULTSORT:Catmull-Clark Subdivision Surface}} | |||
[[Category:3D computer graphics]] | |||
[[Category:Multivariate interpolation]] |
Revision as of 06:34, 11 December 2013
The Catmull–Clark algorithm is a technique used in computer graphics to create smooth surfaces by subdivision surface modeling. It was devised by Edwin Catmull and Jim Clark in 1978 as a generalization of bi-cubic uniform B-spline surfaces to arbitrary topology.[1] In 2005, Edwin Catmull received an Academy Award for Technical Achievement together with Tony DeRose and Jos Stam for their invention and application of subdivision surfaces.
Recursive evaluation
Catmull–Clark surfaces are defined recursively, using the following refinement scheme:[1]
Start with a mesh of an arbitrary polyhedron. All the vertices in this mesh shall be called original points.
- For each face, add a face point
- Set each face point to be the average of all original points for the respective face.
- For each edge, add an edge point.
- Set each edge point to be the average of the two neighbouring face points and its two original endpoints.
- For each face point, add an edge for every edge of the face, connecting the face point to each edge point for the face.
- For each original point P, take the average F of all n (recently created) face points for faces touching P, and take the average R of all n edge midpoints for edges touching P, where each edge midpoint is the average of its two endpoint vertices. Move each original point to the point
- This is the barycenter of P, R and F with respective weights (n-3), 2 and 1.
- Connect each new Vertex point to the new edge points of all original edges incident on the original vertex.
- Define new faces as enclosed by edges
The new mesh will consist only of quadrilaterals, which won't in general be planar. The new mesh will generally look smoother than the old mesh.
Repeated subdivision results in smoother meshes. It can be shown that the limit surface obtained by this refinement process is at least at extraordinary vertices and everywhere else (when n indicates how many derivatives are continuous, we speak of continuity). After one iteration, the number of extraordinary points on the surface remains constant.
The arbitrary-looking barycenter formula was chosen by Catmull and Clark based on the aesthetic appearance of the resulting surfaces rather than on a mathematical derivation, although Catmull and Clark do go to great lengths to rigorously show that the method yields bicubic B-spline surfaces.[1]
Exact evaluation
The limit surface of Catmull–Clark subdivision surfaces can also be evaluated directly, without any recursive refinement. This can be accomplished by means of the technique of Jos Stam.[2] This method reformulates the recursive refinement process into a matrix exponential problem, which can be solved directly by means of matrix diagonalization.
Software using Catmull–Clark subdivision surfaces
- 3ds max
- 3D-Coat
- AC3D
- Anim8or
- AutoCAD
- Blender
- Carrara
- CATIA (Imagine and Shape)
- CGAL
- Cheetah3D
- Cinema4D
- Clara.io
- DAZ Studio, 2.0
- Gelato
- Hammer
- Hexagon
- Houdini
- K-3D
- LightWave 3D, version 9
- Maya
- Metasequoia
- modo
- Mudbox
- PRMan
- Realsoft3D
- Remo 3D
- Shade
- Rhinoceros 3D - Grasshopper 3D Plugin - Weaverbird Plugin
- Silo
- SketchUp - Requires a Plugin.
- Softimage XSI
- Strata 3D CX
- Wings 3D
- Zbrush
- TopMod
See also
- Conway polyhedron notation - A set of related topological polyhedron and polygonal mesh operators.