Catmull Clark subdivisoin

nobond

Newcomer
just read the algorithm recently. rather than doing these things on the host, I assume it is fairly straighforward to send these stuff to the shaders directly?
 
It's been many years since I looked at subdivision surfaces but...
just read the algorithm recently. rather than doing these things on the host, I assume it is fairly straighforward to send these stuff to the shaders directly?
Do you mean to produce a progressively refined polygon mesh? I suppose if you can read sufficient vertices and have a stack for the created data, then I guess it's doable but not necessarily pretty.

Having said that, away from the extraordinary vertices (i.e. those that don't have 4 edges), the whole thing can be treated as a set of (IIRC) uniform B-Spline patches which are pretty simple to render. I would think attacking it that way would be an easier approach.
 
From what you said, you mean B-spline is a more common approach in the world?
I have no idea if it's common or not. It just might just be easier in the shader as you can probably evaluate relatively directly (using a template mesh and control points that are loaded as constants). The CPU then only has to do one (or is two?) preliminary subdivisions. It just seemed to me that, mucking about with refinement of meshes in the shader sounds tricky!

Around the extraordinary points it is trickier, but there are methods of direct evaluation of those areas too (based on eigenvector analysis - you did pay attention in maths didn't you? :p) so those could probably be done in a very similar way to the regular BSpline regions.
 
there are methods of direct evaluation of those areas too (based on eigenvector analysis - you did pay attention in maths didn't you? :p)

I wish I had paid more attention in linear algebra, especially since I later became interested in 3D programming. Unfortunately, I hated it at the time. Seemed too abstract. I think it would have been more accessible had the subject matter been presented in the context of graphics programming.
 
Back
Top