轨迹看起来平滑,为什么镜头还会突然一抖?
沿着 Freya Holmér 的两篇互补讲解,先检查一段曲线怎样计量前进,再检查两段曲线怎样接起来。匀速、切线连续和曲率连续,是不同的要求。
先分清:路径的百分比不是路程的百分比
先看《Bézier 曲线之美》里的小点:t 每次增加一样多,并不保证每次走过一样长的路。曲线没有接缝,动画也可能忽快忽慢。Holmér 的办法是先采样累计长度,想走到某个距离时,再查回对应的 t,然后仍用原曲线算位置。这改变的是前进方式,不是路径形状。它能近似解决段内匀速,却没有单凭这一点就保证下一段接上来时,方向或转弯强度也连续。两篇视频的分工从这里开始:一篇处理沿曲线怎样走,另一篇处理曲线怎样连接。
原文与时间戳 · 2
equally spaced t values are not equally spaced by distancegenerate what's called a lookup table接缝没有尖角,速度仍然可能跳变
《样条的连续性》把两个控制柄排成一直线,轮廓看起来已经顺了,沿路移动的小方块却在接缝处突然变速。对齐只约束方向,对应 G¹;在她采用的均匀参数区间下,再让控制柄镜像、长度相等,才让接缝两侧的一阶导数相等,得到 C¹。注意,速度连续不是速度恒定:它可以逐渐加快,只是不突然跳变。继续看加速度箭头,还可能发现 C¹ 路径在转向时突然改变加速度,所以镜头动画可能需要检查 C²。这些条件都要和采用的时间参数一起看,不能只凭静止轮廓判断。
原文与时间戳 · 1
So even though we aligned our tangents, there’s a sudden change in speed反光表面问的又是另一种平滑
把目标换成反光外壳,运行速度不再是问题。Holmér 让圆弧与直线相切,方向没有断开,反射却仍出现明显接缝:圆弧持续转弯,直线的曲率则为零。让曲率也接上,得到 G²,才修复示例中的反射。由此可以把三张检查图分开:距离表检查段内前进,速度与加速度图检查参数运动,曲率梳检查几何转弯。不要把这些指标排成一个越高越好的分数;还要考虑是否必须穿过控制点、能否局部改动。两片都是同一作者的数学讲解,构成连续的学习路线;参数连续性推出几何连续性的结论,也须保留非零速度这一前提。
原文与时间戳 · 2
we also needed curvature continuityequally spaced t values are not equally spaced by distance读完再想一步
拿一条镜头路径,分两次检查:在每段内部按等时间取样,比较走过的距离;在每个接缝两侧,比较速度与加速度。若是在设计反光外壳,则改看切线和曲率。先选真正需要保证的量,再选样条与参数化方式,而不是只问「够不够平滑」。