2014-07-09 13 views
1

我使用Brad Larson的GPUImage框架。但是,当我尝试应用kuwahara筛选器,筛选器半径为5.0f时,我收到了iPhone 4S上的工件。 (对更高性能的设备正常工作)iPhone 4S上的GPUImage Kuwahara滤镜

源图像大小是2048x2048px.

通过阅读原开发者的意见,我明白,有一种当一些时间过长在GPU上运行的触发看门狗定时器。

所以我的问题是,我可以应用Kuwahara滤波器的半径为5.0f而没有获取文物的iPhone 4S的最大可能分辨率是多少?

回答

0

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

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

+0

我认为可以根据每个gpu在iOS设备上的性能来设置最大限制。不知道它可能取决于系统负载和iOS版本。即使在性能受到影响的情况下,科威拉也是一个非常棒的过滤器非常感谢您的快速回答。 – sleepwalkerfx

2

科威拉过滤器使方形文物和非常复杂。

  1. 您可以使用Generalized Kuwahara滤波器(例如8段)。
  2. 您可以手动生成着色器,无需选定半径的周期。为了减少纹理读数,您可以制作技巧:
    • 生成恒定半径的着色器。
    • 像素偏移量必须取决于当前半径和恒定半径的比率。

你得到一些文物,但它们的艺术(如帆布)。而且科威拉的速度会更快。