我正在学习在 OpenGL ES 中使用着色器。
举个例子:这是我的游乐场片段着色器,它采用当前视频帧并使其成为灰度:
varying highp vec2 textureCoordinate;
uniform sampler2D videoFrame;
void main() {
highp vec4 theColor = texture2D(videoFrame, textureCoordinate);
highp float avrg = (theColor[0] + theColor[1] + theColor[2]) / 3.0;
theColor[0] = avrg; // r
theColor[1] = avrg; // g
theColor[2] = avrg; // b
gl_FragColor = theColor;
}
theColor
表示当前像素。在同一坐标处访问前一个像素会很酷。
出于好奇,我想将当前像素的颜色与前一个渲染帧中像素的颜色相加或相乘。
我怎样才能保留以前的像素并将它们传递给我的片段着色器以便对它们做一些事情?
注意:它是 iPhone 上的 OpenGL ES 2.0。