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

C++ 用于绘制视频帧的OpenGL ES着色器,c++,opengl-es,shader,vertex-shader,C++,Opengl Es,Shader,Vertex Shader,我正在用OpenGL ES编写YUV格式化视频帧的代码 与原始大小相比,视频帧解码器库返回的大小更大,因为它具有跨步 因此,当一帧转换为RGB时,它将变得像此图像,并在纹理的角处绘制一个绿色帧 我当前的顶点切分器是这个。请教我如何画一个干净的纹理 void main() { vec3 yuv = get_yuv(nUV) - vec3(0.0625, 0.5, 0.5); yuv *= mat3( 1.16438356, 0.0, 1.59602679, 1.16438356

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

与原始大小相比,视频帧解码器库返回的大小更大,因为它具有跨步

因此,当一帧转换为RGB时,它将变得像此图像,并在纹理的角处绘制一个绿色帧

我当前的顶点切分器是这个。请教我如何画一个干净的纹理

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;
};

我是OpenGL ES的新手,所以我知道的不多,但这可能会有所帮助。