Home Technical Talk

Subdivision surface (Catmull Clark) vs. Tessellation

Q1:
I am a bit confused about these two things. It is the same? I mean, the subdivision surface is done through tessellation (probably tessellation shader)? For instance in Maya, how that smooth mesh preview works? It is done with that tessellation shader?

Q2:
I started first with modeling in Maya and after few weeks i get interested in games (playing with Unity a bit etc.).
Why that subdivision surface catmull clark isn't used in games, so models looks better?

Q3:
For instance i have a model in Maya. When i turn on smooth mesh preview (this should perform that catmull clark subdivision), it has some pinching, because i have 6 edges in one vertex and that is bad. But if in games i am not using any kind of subdivision, it is true that i dont need take much care about this pinching (for instance those 6 edges in one vertice)?

Q4:
Is in games used any kind of subdivision? I mean, when i need a sphere, i can model just cube and turn on that smooth mesh preview in Maya (that will perform subdivision and cube looks like sphere). But if i need a sphere in game, i can't export just that cube and somehow turn it to sphere, right? I must model whole sphere (something that will looks like sphere without smooth mesh preview).

Ty for any reply.

Replies

  • Blaizer
    Options
    Offline / Send Message
    Blaizer interpolator
    Subdivision surfaces are different than Tessellate, and there are several algorithms for both of them. Catmull Clark is just one method to subdivide a surface with Quads, and i'd say it's the most popular right now, but not the most useful for all cases.

    Tessellation on the other hand, subdivides the model using triangles. It's another way to add more geo to our meshes. There are also different kind of tessellations (better said, triangulate). One is adding a point in the center of every triangle (a quad has 2 triangles), and another one very used is adding a point in the middle of every edge.

    http://www.youtube.com/watch?v=sQQpCd_vvGU#t=264

    Q1. No, they are not the same.

    Q2. Subdivision surfaces in games are not implemented yet, but the tech is there since ages... (and i i'm still wondering why, because we have adaptative subdivision surfaces as well). Nvidia had some demos like that one of that video with adaptative tessellation.

    Q3. Subdivision modelling is like a profession, you need to know a lot about it to take full advantage of it. Games uses triangles, so they prefer to use tessellate. There are some old games such as messiah (i played it with a pentium 200mhz), so you can figure how old is all this "tech".

    Q4. As fas as i know... no.

    Nowadays is very common tu use a Quadball with enough detail for spheres. they are the best option for a good UV map.

    You should try Xsi, modo, cinema 4d, etc. They have a pretty good amount of methods for subdivision and tessellation.

    http://en.wikipedia.org/wiki/Subdivision_surface

    If you do a search in google you'll find more info. Hope this helps.
  • Vailias
    Options
    Offline / Send Message
    Vailias polycounter lvl 18
    q1: sort of. If you're talking about the difference between the catmull clark subdivision surface algorithm and direct x11+ real time tesselsation, then they are different things, but not specifically incompatible. One is an algorithm for how to tesselate a surface to a smoother approximation by use of b-spline interpolation of points, the other is a general concept of breaking geometry into smaller, usually self-similar parts.
    A tesselation enabled shader does break up a mesh via an algorithm into a more detailed version of itself. What algorithm is used depends on who builds the shader. Shaders are just tiny programs than handle mesh information.
    In maya, its not a likely a shader (in the direct-x sense) since its been around. Its a temporary copy of the mesh held in memory and displayed with the subdivision algorithm applied.

    Q2: memory and performance mainly. Closely followed by control of mesh appearance. these subdivisions generate more points that need to be transformed and lit. They aren't free. Its the same reason game models aren't in the millions of polygons and we're not using 16 4096x4096 textures.

    3: Pinching is an artifact from bad subdivision. Make your smooth model, actually apply the smoothing, and look at your mesh. It will be the same uglyness as you see in the preview. You don't have to worry about subdivision pinching in games, because real time models aren't subdivided that way. You Do still need to worry about decent topology when you're dealing with animating meshes, or if you're going to be baking normal maps, etc. The number of edges terminating at any given vertex isn't an issue, really even for the catmull clark algorithm, its more down to the angles and areas of the associated faces. I.E. you won't get pinching if the 6 faces of those edges are mathematically flat.

    Q4: no. You need real geometry if you want real geometry. Games DO use subdivision now as a detail booster. Even your much loved subdivision preview becomes actual geometry at render time in maya. Remember that games need to render full screen frames every 15 to 30 milliseconds. There's only so much that can be done in that space of time, and adding more steps for things which are more easily done beforehand (like tesselating a mesh into the shape you really want) is just inefficient use of resources.


    Real time tesselation is a huge performance hog that's only recently become viable. And part of the reason for using it, rather than tossing giant meshes around in the first place, is versatility and control. You can detail a mesh in only certain places rather than in its entirety. You can change the detail of the mesh from frame to frame or by depth from the camera, and you can alter how that tesselated mesh is displayed via texture maps. All that plays to a balance between looking amazing, and being able to run in real time.
Sign In or Register to comment.