OpenGL显示yuyv422格式图像

OpenGL显示yuyv422格式图像

下面介绍OpenGL显示yuyv422格式图片,如何处理顶点着色器、片元着色器,计算系数,添加纹理。

顶点着色器

#version 330 core

uniform float xScal;
uniform mat4 transLation;
layout (location = 0) in vec3 aPos;// 位置变量的属性位置值为 0 
layout (location = 1) in vec2 aTexCoord;// 颜色变量的属性位置值为 1
out vec2 textureOut;

void main(void)
{
   
	gl_Position = transLation * vec4(aPos.x * xScal, aPos.y * xScal, aPos.z, 1.0);
	textureOut = aTexCoord;
}

片元着色器

#version 330 core

uniform sampler2D tex_yuv_rg;
uniform sampler2D tex_yuv_rgba;
uniform mat3 cspmat;
uniform vec3 cspconst;
in vec2 textureOut;

void main(void)
{
   
	vec3 rgb;
	vec3 yuv;
	yuv.r = texture2D(tex_yuv_rg, textureOut).r;
	yuv.g = texture2D(tex_yuv_rgba, textureOut).g;
	yuv.b = texture2D(tex_yuv_rgba, textureOut).a;
	rgb = yuv*cspmat+cspconst;
	gl_FragColor=vec4(rgb,1.0);
}

添加纹理

 glGenVertexArrays(1, &VAO);
    glGenBuffers(1, &VBO);

    glBindVertexArray(VAO);

    glBindBuffer(GL_ARRAY_BUFFER, VBO);
    glBufferData(GL_ARRAY_BUFFER, 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值