iPhone 4S上的GPUImage Kuwahara过滤器

时间:2014-07-09 12:43:53

标签: ios objective-c ios7 gpuimage

我正在使用Brad Larson的GPUImage框架。但是,当我尝试应用带有过滤器半径kuwahara的{​​{1}}过滤器时,我会在iPhone 4S上获得工件。 (在高性能设备上正常工作)

源图片尺寸为5.0f

通过阅读原始开发人员的评论,我了解到有一种看门狗定时器会在GPU上运行太长时间时触发。

所以我的问题是,iPhone 4S的最大可能分辨率是什么?我可以应用2048x2048px.半径为Kuwahara的过滤器而不会产生伪影?

2 个答案:

答案 0 :(得分:2)

Kuwahara过滤器制作方形文物并且非常复杂。

  1. 您可以使用广义Kuwahara过滤器(例如,8段)。
  2. 您可以手动为所选半径生成没有周期的着色器。为了减少纹理的读数,你可以制作技巧:
    • 为恒定半径生成着色器。
    • 像素偏移必须取决于当前半径与恒定半径的比率。
  3. 你得到一些文物,但它们很有艺术性(比如画布)。 Kuwahara会更快。

答案 1 :(得分:0)

确实没有硬性限制。您看到的平铺工件是由于OpenGL ES看门狗定时器在花费太长时间后中止场景渲染。如果你有一个帧渲染时间超过大约2秒,你的帧渲染将以这种方式被杀死。

所需的确切时间是硬件功能,系统负载,着色器复杂性和iOS版本的函数。在GPUImage中,你几乎只能用Kuwahara过滤器看到这个,因为我使用了那个荒谬的未经优化的着色器。它是从使用桌面GPU执行此操作的出版物中提取的,并且是针对像这样的移动GPU的最坏情况操作。有人为此提供了固定半径版本,速度要快得多,但如果您想在除最新设备之外的任何设备上使用大图像,则需要创建自己的优化版本。