我正在使用GPUImage探索CAtransform3d。 CAtranform3d使用的单位是多少?我在文档中找不到,但我认为它应该是用于平移的像素和用于旋转的弧度。但是当我使用GPUImageTransformFilter将其用于仅1个像素的平移时,图像会在iphone的一半屏幕上被翻译。 (我正在将UIImage转换为GPUImage,然后在处理并将其设置为UIImageView后再返回)。有人可以指出可能是什么错误吗?
CATransform3D matrix = CATransform3DIdentity;
matrix.m41 = 1; // since the convention of CAtransform3d is transpose of normal transformation matrix
GPUImagePicture *stillImageSource = [[GPUImagePicture alloc] initWithImage:oldUIImage];
GPUImageTransformFilter *stillImageFilter = [[GPUImageTransformFilter alloc] init];
[stillImageFilter setTransform3D:matrix];
[stillImageSource addTarget:stillImageFilter];
[stillImageFilter useNextFrameForImageCapture];
[stillImageSource processImage];
UIImage *newUIImage = [stillImageFilter imageFromCurrentFramebuffer];