uyvy422格式在转纹理贴图,目前我看到了2种贴图方式,测试下来,各有各的毛病。
1. uyvy422内存排布
第一行: uyvyuyvyuyvy...
第二行: uyvyuyvyuyvy...
第三行: uyvyuyvyuyvy...
2. 转换方式
2.1 uy vy 当作两个纹理单元来处理。
转纹理方式:
glTexImage2D(GL_TEXTURE_2D, 0, GL_LUMINANCE_ALPHA, m_frameWidth, m_frameHeight, 0,GL_LUMINANCE_ALPHA, GL_UNSIGNED_BYTE, NULL);
fragment shader
uniform float texture_width;
uniform float texture_height;
uniform sampler2D yuvTex;
varying vec2 v_texcoord;
void main()
{
vec4 luma_chroma;
float y, u, v;
float pixelx, pixely;
float xcoord, ycoord;
float texel_width = 1.0 / texture_width;
pixelx = v_texcoord.x;
pixely = v_texcoord.y;
xcoord = floor (pixelx * texture_width);
ycoord = floor (pixelx * texture_height);
luma_chroma = texture2D(yuvTex, vec2(pixelx, pixely));
y = luma_chroma.a;
if (0.0