Search:

#0    Introduction   2003-07-26 00:00:00
#1    A-Buffer Rendering   2002-12-23 00:00:00
#2    Raytrace Space Subdivision   2002-12-23 00:00:00
#3    Render Slow-Downs   2003-01-10 00:00:00
#4    Multi-Pass Rendering   2003-09-10 00:00:00
#5    Material Antialiasing   2003-06-02 00:00:00
#6    Bitmap Antialiasing   2003-06-11 00:00:00
#7    Animating Surfaces   2003-07-12 00:00:00
#8    Porcelain   2003-07-18 00:00:00
#9    Biased Normals   2003-07-17 00:00:00
#10    Hair   2003-07-17 00:00:00
#11    Raytrace Self-Intersection   2003-07-27 00:00:00
#12    Self-Evident Operation   2003-07-12 00:00:00
#13    Material Invariance   2002-01-12 00:00:00
#14    Collision Detection   2003-02-13 00:00:00
#15    History   2002-01-07 00:00:00
#16    Video Driver Troubleshooting   2003-09-07 00:00:00
#17    Hash Studio Manifesto II   2003-08-01 00:00:00
#18    Maintain Curvature   2003-09-15 00:00:00
Martin's Minutes
MARTINS Tech Notes - 2003-09-15 00:00:00 #18

Maintain Curvature

The mathematically expression for a cubic spline is of the form:

u3 + u2*(1-u)+u*(1-u)2+(1-u)3

A Bezier cubic spline adds the factor “3” to the two middle terms:

u3 + 3*u2*(1-u)+3*u*(1-u)2+(1-u)3

This gives the spline optimum “smoothness”, where smoothness is defined as the curve that most closely matches a conic (half-circle) out of both sides of an S-shape. The term can be discovered empirically (experimentally) but it also makes sense since the first derivative of a cubic equation (the first derivative will produce tangents along the curve) creates “3”s, which tend to cancel each other out when the second derivative is calculated, (The second derivative defines the rate-of-change of a curve – a constant rate-of-change is a conic which we have defined as the smoothness we want to approach).

Any cubic spline can be split into any multiple of cubic splines that maintain their end tangents’ direction (first derivative coincidence) and magnitude (second derivative coincidence). While adding a new control point into an existing spline, when you choose to “maintain curvature”, you are forcing the original spline to split into two splines that have coincident first derivatives AND second derivatives. This can be good if you are creating shapes that will not animate, otherwise “maintain curvature” is not a good idea because it moves the burden of animating the tangents from the program to you – a very tedious task indeed