Talk:Subdivision surface

From Wikipedia, the free encyclopedia
Jump to: navigation, search
WikiProject Computer science (Rated Start-class, Low-importance)
WikiProject icon This article is within the scope of WikiProject Computer science, a collaborative effort to improve the coverage of Computer science related articles on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
Start-Class article Start  This article has been rated as Start-Class on the project's quality scale.
 Low  This article has been rated as Low-importance on the project's importance scale.
WikiProject Animation / Computer (Rated Start-class, Low-importance)
WikiProject icon This article is within the scope of WikiProject Animation, a collaborative effort to build an encyclopedic guide to animation on Wikipedia. If you would like to participate, you can edit the article attached to this page, help out with the open tasks, or contribute to the discussion.
Start-Class article Start  This article has been rated as Start-Class on the project's quality scale.
Checklist icon
 Low  This article has been rated as Low-importance on the project's importance scale.
Taskforce icon
This article is supported by the Computer animation work group (marked as Low-importance).

Concerns about article quality[edit]

This whole articale is full of wrong and 50/50 right statements. The use of the word "arbitrary" just makes my toneails curl.

Furthermore it mixes statements that apply solely to Catmull-Clark scheme into an articale about the general subject matter.

This needs a compelet re-edit.


Temporarily removed statements[edit]

I have removed the following and placed it here for now. --Ben Houston 01:54, 21 August 2006 (UTC)

B-spline relationship
B-spline curves are refinable: their control point sequence can be refined and the iteration process converges to the actual curve. This is a useless property for curves, but its generalization to surfaces yields subdivision surfaces.
Refinement process
Interpolation inserts new points while original ones remain undisturbed. Refinement inserts new points and moves old ones in each step of subdivision.
Extraordinary points
The Catmull-Clark refinement scheme is a generalization of bi-cubic uniform B-splines. Any portion of the surface that is equivalent to a 4x4 grid of control points represents a bi-cubic uniform B-spline patch. Surface refinement is easy in those areas where control points valence is equal to four. Defining a subdivision surface at vertices with valence other than four was historically difficult; such points are called extraordinary points. Similarly, extraordinary points in the Doo-Sabin scheme have a valence other than three.
Most schemes don't produce extraordinary vertices during subdivision.

Negative aspects of Sub D?[edit]

It would be great if the entry mentioned some of the negative aspects of using sub-d. (For instance, isn't it difficult to get specular highlights to remain even over a surface? Also, isn't it harder to get the same level of detail and precision as opposed to NURBs?) --Navstar 18:29, 20 October 2006 (UTC)

No, these 'negative aspects' are problems of the modeling application, not subdivision surfaces per se. Moritz

There are a few downsides. One that comes to mind is that the continuity at extraordinary points for cubic subdivision surfaces is at most G^1, where in the rest of the surface it is C^2. So, excessive extraordinary points do make it more difficult to get nice specular highlights. The other big issue is lack of standardization. NURBS are NURBS. Subdivision surfaces are any combination of different mesh refinement schemes and masks. If you have a problem with them, the typical answer is to create a new surface definition that solves the problem. For example, if you're missing trimming curves, there are alternate rules that make them easy. If you want local refinement, you can have hierarchical subdivision surfaces. If you want creasing, there are a pile of different rules to choose from (most are patented). If you want a different degree, different rules. Non-uniformity, different rules. Lofting a curve network, different rules. Then there are methods like approximation to NURBS or exact evaluation that rely on the definition of the rules. The end result of this lack of standardization is that subdivision surface implementations are either extremely basic, lacking fundamental modeling tools such as creasing, lofting or knot insertion, or incompatible. There's not even a standard file format. This is part of the reason that NURBS are still prevalent in CAD/CAM/CAE, despite their disadvantages. Tfinniga (talk) 20:19, 23 December 2008 (UTC)

too much nonsense[edit]

- Calling subdivision surfaces "recursive in nature" is not generally true, as they are basically iterative interpolations. The subdivision algorithm might be implemented as a recursion anyhow, but this does not make too much sense as there is no single mathematical criteria in the concept itself except counting. The main criteria for the number of recursions would be "does the surface look nice enough", which is of course not a mathemtical but a question of opinion and taste.

- The limiting subdivision surface can never be achieved as this would require an infinite number of iterations thus requiring infinite time. As every iteration multiplies e.g. the number of quads by the factor 4, memory consumption soon exceeds available physical memory in a given computer system. This is one of several mayor disadvantages compared to NURBS. Subdivision Surfaces are therefor mainly used for rendering purposes in computer animation and visualisation packages, but not for CAD, CAM or CAE.

- I have not heard about controlpoints on a mesh surface yet, which consist of vertices.

From my point of view there is too much nonsense in this article yet so that i dont feel like contributing the above to the article itself. I do agree with MoritzMoeller that it requires complete rewriting. Bubbleshooting 20:49, 24 January 2007 (UTC)

If the word "recursive" displeases you, why didn't you change it? It appears precisely once in the article; this would not have been anything close to a full rewrite.
I don't see the need to point out that the limit cannot be achieved. An understanding of limits (which one would gain by following the link) clearly shows that it cannot be attained. Plus, the article points out very clearly that in practical use, only a number of iterations are used.
Once again, if you don't like the term "control points" being used where it is, feel free to change it. To me, as someone who has worked with subdivision surfaces before, it's perfectly fine to call them control points, as vertices at each iteration do control where new (and possibly old) vertices will be. But if that could be confusing, change the term to something else. So long as the meaning is clear, there shouldn't be a problem.
Moritz's comments are outdated. The article has been through some significant changes over time. And nothing you've pointed out would reasonably be considered "nonsense". And even if it did, it would require changing maybe 20 words, not a full rewrite. Korval 03:06, 25 January 2007 (UTC)

I cannot see that Moritz's comments do not apply any more. I concentrated in my comment on some examples which where obviously and at first glance wrong statements. It would not change the quality of the article as a whole to change only 20 words. The whole paragraph Comparison to NURBS surfaces is obviously written by someone who knows little to nothing about NURBS, therefor its pointless to change some words only. The same applies if a whole paragraph is written by someone who does not know how to distinguish between iteration and recursion. And adding what is obviously opinion of the author only without any argument does not augment the article quality either.

And you are again adding nonsense regarding your comment on limits. A limit is in general something which can definitely be achieved, and not the opposite as you are implying.

And a controlpoint is a well defined and well understood concept in computer graphics. Someone using it for something very different does not add to his reputation, nor to the quality of the article.

So i still do see the need for a complete rewrite by someone who knows about the basics mentioned above as well as about the subject of the article. Bubbleshooting 10:54, 26 January 2007 (UTC)

See, now you're just making stuff up to be argumentative. If you change the word "recursive" to "iterative", you will have fixed the problem you cite, because the paragraph describes the facts of the process of subdivision, which you claim fits the definition of an iterative process. If that is true, then calling it an iterative process is all that is needed, because the actual description of said process is correct. It's merely the declaration that the process is recursive that is inaccurate.
As to the "paragraph" (more accurately, a set of lists) about Subdivision vs. NURBS, why don't you fix it if you know so much about NURBS? That's the whole point of Wikipedia; if you see something wrong and you know what the right thing is, do something about it.
As to control points, I have implemented subdivision surfaces. Referring to the vertices of a particular subdivision level as "control points" is what we do. Since your expertise is clearly not in the realm of subdivision surfaces, perhaps you should consider accepting that this is just how we talk about our particular algorithm. Korval 02:47, 27 January 2007 (UTC)

Knowing when there is too much salt in the soup does not necessarily require to be able to cook. So i followed your advise and removed the nonsense statements about comparison to NURBS. The author might have compared some software packages, but obviously did not know about the basics.

There is still a mess left about the main principles of subdivision surfaces compared to some specifics like catmull clark subdivision, which is equally messed up on a page of its own here on WP. Bubbleshooting 23:21, 7 February 2007 (UTC)

Getting the history of subdivision surfaces right: Donald Doo and Malcolm Sabin's paper clearly state that they build further upon Ed Catmull and Jim Clark's earlier work. The fact that both papers were published in the same year fooled many later authors, including Tony DeRose, into believing that both were written simultaneously. Johan, 3 August 2007

To back up the point I made at the start of this discussion, I'd suggest reading an essay I wrote a few years back on the topic of rendering higher order primitives (including subdivison surfaces). It contains some remarks on how an n-times subdivided mesh is definitely not a subdivison surface. The latter being one of the completely wrong statements the article currently contains if even only implicitly. I refer particularly the 3rd paragraph of page 3 of this essay, quote: "[...] a subdivision surface is the shape you get when applying [...] a ’subdivision scheme’ [...] an infinite number of times to an input geometry.". This refers to the fact that applying a subdivison scheme a finite number of times does not yeld a subdivison surface. It just yields a (generally denser) polygon mesh. The article also misses mentioning that a subdivision surface can be obtained in other ways but recursively applying a subdiv scheme inifintely. In fact, it even lists Stam's work a as reference (whic describes such a method). Just like a Bezier curve cam be evaluated by recursively applying De Casteljau’s Algorithm inifitely, there are other ways of evaluating it that don't require recusrion and can be computed in finite time. MoritzMoeller (talk) 18:17, 26 January 2008 (UTC)

I think the article is pretty good. It might be worth talking a bit about why they never took off in industry. Alias|Wavefront never got a product out the door to allow editing them properly despite some effort. I've been told industry needed rectangles but the academics spent time on triangles which are better behaved in floating point math. There are probably some articles on this that could be dug up. You don't need exact GPU evaluation of the limit surfaces to edit subd. I've implemented an evaluation algorithm in GPU, but it is overkill for editing. In practice you just want to be able to see the level you are editing and a several times subdivided and nicely rendered version. This can be done very efficiently in all the subdivision schemes I know of. -- Daniel Kristjansson (July 3rd, 2012) — Preceding unsigned comment added by (talk) 01:01, 4 July 2012 (UTC)

terminology undefined[edit]

Can someone provide a link, a pointer, or an explanation of the precise meaning of terminology such as: C1. It is not at all a given that readers of this article (such as myself) would be familiar with it. 14:18, 9 October 2007 (UTC)

Done. Korval 19:47, 9 October 2007 (UTC)

References to standard books[edit]

I am a professor at the University of Montreal. I have recently completed a book "Introduction to the Mathematics of Subdivision Surfaces", co-authored by L.-E. Andersson. The book is published by the Society for Industrial and Applied Mathematics (SIAM). The web-site is The book is mathematical, more or less at the PhD level in a computer-science department.

It seems to me that it might be useful to add to the "Subdivision Surfaces" article some references to standard books. In addition to our new book, there is "Subdivision Methods for Geometric Design", by Warren and Weimer (see, and the recent "Subdivision Surfaces" by Peters and Reif (see

Adding a reference to my own book might be viewed as self promotion, so I will leave this as a suggestion to other editors of the "Subdivision Surfaces" article.

NeilFStewart (talk) 16:07, 12 May 2010 (UTC)

Overlap with Tessellation (computer graphics)[edit]

Isn't this the same? If so: Article merger? If not: Why? — Preceding unsigned comment added by Tobias "ToMar" Maier (talkcontribs) 13:24, 11 February 2018 (UTC)