Lecture 7: Bezier Curves & Surfaces (29)
ericlu28

Why do we choose a cubic polynomial over 4th, 5th, etc. degree polynomial? Is it because it balances the need to capture "smoothness" using a higher-degree polynomial, while also ensuring that we don't have to solve for too many unknown params for efficiency?

SuryaTalla22

I think this has to do with the fact that a cubit polynomial can be solved explicitly with 4 pieces of information (we have 4 coefficients we need to determine, and we have 4 independent equations). If we had more info, say a second or 3rd derivative, than we could perform higher-order interpolations.

nickjiang2378

Is it possible to solve all these equations efficiently? I'm wondering how often you need to run this interpolation process when rendering.

spegeerino

@nickjiang2378 The constraint equations form a linear system of equations, which means we can solve it pretty quickly with some linear algebra. In fact, we can solve this system without any divisions (which isn't so important any more but for older hardware it could be a lifesaver.) We have d = P(0) and c = P'(0), then a = (P'(1) - c) - 2*(P(1) - c - d) and b = P(1) - a - c - d. So the interpolation is not too bad (obviously it's slower than more naive methods of interpolation but it's generally a good trade-off between graphics quality and speed.)

llejj

Would there be a limit to the polynomial degree, due to the unsolvability of the quintic?

S-Muddana

In cubic Hermite interpolation, we are dealing with cubic polynomials (degree three), not quintic polynomials (degree five). The cubic polynomials used in cubic Hermite interpolation are solvable and well-defined. Therefore, the unsolvability of quintic equations does not impose any limitations on the degree of the polynomials used in cubic Hermite interpolation.

JunoLee128

I'm confused what happens to the t^3 terms. Are they precomputed, or do we calculate them in real time every time we do a transform? Since we're doing a continuous curve, I'm confused how we can calculate once

Staffteles-sun

Hi @JunoLee128. Good question! Here the "Cubic Polynomial Interpolation" is just allowing us to interpolate the values of the polynomial between t from 0 to 1. Hence, we start with a general format of P(t) = at^3 + bt^2 + ct + d, and then plug in the constraint equations to get the values a,b,c,d. Lastly, for each t, we can just plug in the formula to get the corresponding function values at the location.

For any given t, you need to plug t into P(t) to get the function values. But you only need to compute general P(t) expression once.

You must be enrolled in the course to comment