我想要一个非水平的GPUImageTiltShiftFilter旋转。我想把它旋转到任意的旋转角度。我也希望过滤器是快速的,它可以旋转与一个具有UIRotationGestureRecongizer的UI。
我该怎么做呢?
发布于 2013-05-07 05:53:02
啊,想明白了!
不修改GPUImageTiltShiftFilter,而是创建一个新的GPUImageFilterGroup作为GPUImageGaussianSelectiveBlurFilter的修改版本,以添加旋转。
我补充道:
uniform highp float rotation;在kGPUImageSMTiltShiftFragmentShaderString中,我将distanceFromCenter行添加到GPUImageGaussianSelectiveBlurFilter的main中,以将GPUImageGaussianSelectiveBlurFilter转换为带旋转的倾斜移位:
void main()
{
lowp vec4 sharpImageColor = texture2D(inputImageTexture, textureCoordinate);
lowp vec4 blurredImageColor = texture2D(inputImageTexture2, textureCoordinate2);
highp vec2 textureCoordinateToUse = vec2(textureCoordinate2.x, (textureCoordinate2.y * aspectRatio + 0.5 - 0.5 * aspectRatio));
highp float distanceFromCenter = abs((textureCoordinate2.x - excludeCirclePoint.x) * aspectRatio*cos(rotation) + (textureCoordinate2.y-excludeCirclePoint.y)*sin(rotation));
gl_FragColor = mix(sharpImageColor, blurredImageColor, smoothstep(excludeCircleRadius - excludeBlurSize, excludeCircleRadius, distanceFromCenter));
}https://stackoverflow.com/questions/16407840
复制相似问题