because of the specular reflections, applications like hair really would benefit from higher degrees of continuity.
Oh this is interesting. So FWIW - I’ve done a bit of CG hair in production (in a previous life, for DreamWorks) - and now that everyone’s ray tracing, I like to advocate for considering quadratic B-splines for CG hair over cubics. In practice, I don’t personally think you can see anything in hair specular reflections that is based on degree or continuity beyond C1. Catmull-Rom is only C1 and people have been using Catroms for hair for a long time (and interesting side note - I’ve found that Catmull-Rom curves are pretty lumpy and ugly, even lumpier than quadratic B-splines. This is possibly very similar to the issue of designing with subdivision you mentioned).
My opinion here does not apply to surface patches - with surfaces, the continuity can be visible in the reflections. But at my work among the researchers there was a very strong assumption that cubic B-spline curves would be visibly better than quadratic, and that quadratic would suffer from reflection artifacts due to the C1 continuity, which just doesn’t seem to be true (and ignores the history of Catmull-Rom). Quadratic curves are faster and more accurate for ray intersections and bbox calculations, and they offer some interesting advantages like having an analytic rotation-minimizing frame (with the Frenet frame, even…). Of course with procedural curves, I recommend only the quadratic B-spline, not Bézier. With a uniform B-spline, the degree of the curve is essentially nothing more than a smoothing factor. Production hair/fur/sim data tends to be over-sampled already, so the smoothing factor doesn’t buy you much.
BTW, yes I know Cem and I’m familiar with his work. He also has published on some non-polynomial curve types, so your post reminded me of him as well.
Comments
Oh this is interesting. So FWIW - I’ve done a bit of CG hair in production (in a previous life, for DreamWorks) - and now that everyone’s ray tracing, I like to advocate for considering quadratic B-splines for CG hair over cubics. In practice, I don’t personally think you can see anything in hair specular reflections that is based on degree or continuity beyond C1. Catmull-Rom is only C1 and people have been using Catroms for hair for a long time (and interesting side note - I’ve found that Catmull-Rom curves are pretty lumpy and ugly, even lumpier than quadratic B-splines. This is possibly very similar to the issue of designing with subdivision you mentioned).
My opinion here does not apply to surface patches - with surfaces, the continuity can be visible in the reflections. But at my work among the researchers there was a very strong assumption that cubic B-spline curves would be visibly better than quadratic, and that quadratic would suffer from reflection artifacts due to the C1 continuity, which just doesn’t seem to be true (and ignores the history of Catmull-Rom). Quadratic curves are faster and more accurate for ray intersections and bbox calculations, and they offer some interesting advantages like having an analytic rotation-minimizing frame (with the Frenet frame, even…). Of course with procedural curves, I recommend only the quadratic B-spline, not Bézier. With a uniform B-spline, the degree of the curve is essentially nothing more than a smoothing factor. Production hair/fur/sim data tends to be over-sampled already, so the smoothing factor doesn’t buy you much.
BTW, yes I know Cem and I’m familiar with his work. He also has published on some non-polynomial curve types, so your post reminded me of him as well.