使用OpenGL进行实时每像素过滤的最佳方法是什么?

时间:2014-01-21 16:44:33

标签: c++ opengl opengl-es glsl

我有一个需要过滤的图像,然后显示在屏幕上。以下是我想要做的简化示例:

Per-Pixel Filtering Scheme

左侧图像是屏幕缓冲区,因为它将显示在屏幕上 中间是一个应该应用于屏幕缓冲区的过滤器 右侧图像是屏幕缓冲区,因为它应显示在屏幕上。

我想知道在OpenGL环境中实现这一目标的最佳方法是什么。

  • Fragment Shader?
  • 逐个修改像素?

此代码的最终版本将应用于不断变化的屏幕,无论“原始”屏幕缓冲区显示什么,都需要按像素过滤。

编辑,关于片段着色器的问题:    - 片段着色器不能保证给出大小为1x1的片段,所以我怎么能说“ModifiedImage [x] [y] .red + = Filter [x] [y] .red”片段着色器< / p>

1 个答案:

答案 0 :(得分:1)

您可以使用OpenGL的混合函数(glBlendFunc,glEnable(GL_BLEND)等)将图像混合在一起。