【问题标题】:GLSL for full resolution image manipulation?GLSL 用于全分辨率图像处理?
【发布时间】:2011-09-14 10:16:13
【问题描述】:

我目前正在使用 GLSL 着色器将效果渲染到 iOS 设备上的实时视频。视频分辨率为 640x480。当您拍摄照片时,图像可以以高达 5mp 的任何分辨率进入。我想知道是否有任何方法可以将相同的 GLSL 着色器应用于例如 5mp 纹理。

【问题讨论】:

    标签: ios image-processing opengl-es glsl opengl-es-2.0


    【解决方案1】:

    这仅取决于您的图形驱动程序/设备是否支持大纹理和渲染目标。如果是,那绝对没问题,GLSL 不关心纹理或渲染目标大小。

    【讨论】:

    • 您会为此目的在屏幕外创建另一个渲染目标吗?
    • @samuraisan 这取决于你在做什么。如果您想在纹理中获得效果的结果,我肯定会使用 FBO(尽管我不知道 iOS 或 ES 是否支持它们)。但是如果你只是将视频数据复制到一个纹理中,并且想要做一个单通道效果并立即渲染它的结果,那么就不需要 FBO 并且你也不需要关心渲染目标的大小(作为最终的屏幕上的图像不需要 5mp,显示器无论如何都做不到)。在这种情况下,你很好,因为纹理大小限制往往不那么严格,我认为。
    【解决方案2】:

    您可以做的是分块处理图像。
    就像一次只处理图像的 512x512 像素部分一样。
    这样你就不必关心最终的图像分辨率(如果你有足够的内存,它甚至可能是 100mp 大)。
    正如 Christian Rau 已经指出的那样:GLSL 不关心纹理/渲染目标的大小。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-29
      • 2014-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多