GPUImage中的GPUImageTransformFilter,有平面中的仿射变化,通过设置affineTransform实现,3D变化通过设置
transform3D实现,
例如下面代码可实现绕x轴旋转。
CATransform3D transform = CATransform3DIdentity;
// transform.m34 = 4.5/-2000;
transform = CATransform3DRotate(transform,angle, 1.0, 0.0, 0.0);
transformFilter.transform3D =transform;
换换函数:
CATransform3DCATransform3DMakeTranslation (CGFloat tx, CGFloat ty, CGFloattz)
tx:X轴偏移位置,往下为正数。
ty:Y轴偏移位置,往右为正数。
tz:Z轴偏移位置,往外为正数。
例:
如果有2个图层,一个是绿色的,一个是红色的。先加载绿色,后加载红色。
tx,ty的左右偏移先不说了。
如果绿色的tz为-10,红色的tz为0效果如下。
如果绿色的tz为0,红色的tz为-10效果如下。
对于tz来说,值越大,那么图层就越往外(接近屏幕),值越小,图层越往里(屏幕里)。
CATransform3D CATransform3DTranslate (CATransform3D t, CGFloat tx,
CGFloat ty, CGFloat tz);
t:就是上一个函数。其他的都一样。
就可以理解为:函数的叠加,效果的叠加。
CATransform3D CATransform3DMakeScale
(CGFloat sx, CGFloat sy, CGFloat sz);
sx&#