首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >旋转GPUImageTiltShiftFilter - GPUImage

旋转GPUImageTiltShiftFilter - GPUImage
EN

Stack Overflow用户
提问于 2013-05-07 05:48:46
回答 1查看 889关注 0票数 2

我想要一个非水平的GPUImageTiltShiftFilter旋转。我想把它旋转到任意的旋转角度。我也希望过滤器是快速的,它可以旋转与一个具有UIRotationGestureRecongizer的UI。

我该怎么做呢?

EN

回答 1

Stack Overflow用户

发布于 2013-05-07 05:53:02

啊,想明白了!

不修改GPUImageTiltShiftFilter,而是创建一个新的GPUImageFilterGroup作为GPUImageGaussianSelectiveBlurFilter的修改版本,以添加旋转。

我补充道:

代码语言:javascript
复制
   uniform highp float rotation;

在kGPUImageSMTiltShiftFragmentShaderString中,我将distanceFromCenter行添加到GPUImageGaussianSelectiveBlurFilter的main中,以将GPUImageGaussianSelectiveBlurFilter转换为带旋转的倾斜移位:

代码语言:javascript
复制
 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));
 }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16407840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档