16
votes
Accepted
Visualizing the Lane-Riesenfeld Algorithm
The Lane-Riesenfeld algorithm subdivides the control polygon of a B-spline to create a new control polygon with the same limit spline. It's made up of two steps: first, duplicating all of the control ...
8
votes
Accepted
How do people come up with subdivision schemes?
The subdivision schemes are not arbitrary. Catmull-Clark, arguably the most used subdivision scheme, generalizes bicubic B-splines to meshes of arbitrary topology.
Most, other subdivision schemes ...
5
votes
Accepted
What subdivision algorithm advances have occurred since Catmull-Clark?
More of an extended comment than an answer:
What do you mean by "optimization and accuracy"? Do you mean computational efficiency for some particular application, like ray tracing, physical ...
4
votes
Accepted
If you can use subdivision surfaces for 2D curves
Subdivision can be used for curves in 2D just as easily as for surfaces in 3D. Usually the subdivision algorithms applied to 2D are called subdivision curves. Subdivision curves do not suffer from the ...
4
votes
Accepted
Where do the coefficients in the Catmull-Clark subdivision algorithm come from?
I'm just going to add a few more details to the paper that Stefan linked to.
First of all, the matrix $H_1$ displayed in the paper is incorrect; every element should be multiplied by a factor of $\...
4
votes
What is this triangle sub-division scheme called?
Instead of subdividing until reaching certain edge length on screen, you should look into GPU Gems 2 article "Adaptive Tessellation of Subdivision Surfaces with Displacement Mapping" by Michael ...
3
votes
Accepted
Subdivision scheme where the faces and edges have weights (not necessarily scalar weights)
What you are looking for is semi-sharp creases. You can find it in section 3 of this paper: https://graphics.pixar.com/library/Geri/paper.pdf
Basically, each edge is given a sharpness value $s$. This ...
3
votes
Where do the coefficients in the Catmull-Clark subdivision algorithm come from?
The derivation is presented in the original paper that introduced CC subdivisions as a generalisation of B-Spline patches: https://people.eecs.berkeley.edu/~sequin/CS284/PAPERS/CatmullClark_SDSurf.pdf
2
votes
B-Spline patches on the tessellation shader. How to get the control points
For regular quad faces, what you want to do is send the vertices for the quad you're evaluating and the eight neighboring quads around it: a total of 4x4 vertices. The B-spline needs to know where the ...
2
votes
Problems with Subdivision Surfaces
Both T-splines and subdivision surfaces are capable of handling an arbitrary topology input mesh, whereas NURBS can only handle meshes with regular topology.
Complex NURBS objects are therefore made ...
1
vote
How do I evenly subdivide the projection of a circle in 3D?
When doing it inside shader stages, one possibility is the following using vertex- and tessellation-shader (only one triangle (3 lines) are needed):
Within the vertex shader you can calculate the NDC ...
1
vote
Accepted
Can surface subdivision results be predicted?
It is possible to compute the limit surface of a subdivision surface. The limit surface puts vertices at the places where they would be when the subdivision is applied an infinite number of times. The ...
1
vote
Accepted
Catmull–Clark issue with plane corners
The procedure only works for closed meshes or closed parts of a mesh with boundaries.
For vertices $V_{i}$ on the boundary of an mesh you have to use the following rules:
$$V_i = \frac{V_{i-1} + 6 V_{...
1
vote
Accepted
How to smooth out a voxel grid?
If you have this data in a 3d array where a block is a 1 and no block is a 0 you can apply a 3d blur and then set all voxels that are left with a value higher than 0.5 to 1 and those that arent to 0. ...
Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
subdivision × 20algorithm × 6
computational-geometry × 6
geometry × 5
3d × 3
mathematics × 3
mesh × 3
c++ × 2
2d × 2
curve × 2
tesselation × 2
shader × 1
projections × 1
perspective × 1
polygon × 1
triangulation × 1
voxelization × 1
compression × 1
nurbs × 1
float × 1