用于绘制视频帧的OpenGL ES着色器

时间:2015-10-08 03:18:27

标签: c++ opengl-es shader vertex-shader

我正在使用OpenGL ES编写YUV格式视频帧的代码。

视频帧解码器库返回的尺寸比原始尺寸大,因为它有一个步幅。

因此,当一个帧转换为RGB时,它将变成这个图像,并在纹理的角落绘制一个绿色框。

RGB video frame

我当前的顶点清晰度是这个。请教我如何干净地绘制纹理。

void main() { 
  vec3 yuv = get_yuv(nUV) - vec3(0.0625, 0.5, 0.5);
  yuv *= mat3(
  1.16438356, 0.0, 1.59602679,
  1.16438356, -0.391762290, -0.812967647,
  1.16438356, 2.01723214, 0.0);
  gl_FragColor.rgb = yuv;
  gl_FragColor.a = 1.0;
};

0 个答案:

没有答案