【发布时间】:2015-10-08 03:18:26
【问题描述】:
我正在使用 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;
};
【问题讨论】:
标签: c++ opengl-es shader vertex-shader