| |||
| #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 |
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 | ||