CornerPinEffect 是四角定位。画面四个角被钉到任意位置,中间按透视贴上去,用来做倾斜、贴平面、仿三维翻转。
四个角都是可关键帧的二维点,单位是图层像素:
参数AE 流
左上ADBE Corner Pin-0001
右上ADBE Corner Pin-0002
左下ADBE Corner Pin-0003
右下ADBE Corner Pin-0004
贴图不是把四边形拆成两个普通三角形。UpdateQuadPack用两条对角线的交点算出每个角的透视系数q,纹理坐标存成(u·q, v·q, q)。片元着色器用texture2DProj除以q,所以格子里的纹理按透视插值,近大远小,不会在对角线上折一下。四边形退化、或者交点不在四边形内部时,q保持为 1,退回普通贴图。
图层不是折叠变换、也不是调整层时,画布会扩到四个角的包围盒,避免拉出去的部分被裁掉。四边形外圈用PolygonEdgeBuilder补一圈抗锯齿边,边宽大约是图层缩放的倒数。边的覆盖度写在顶点的第四个分量里,最后乘到颜色上。