我在着色器中将YUV(NV21)转换为RGB时,在Android编程中使用了OpenGL ES
,例如:
vec3 yuv = vec3(
(texture2D(u_TextureY, vTextureCoord).r - 0.0625),
texture2D(u_TextureUV, vTextureCoord).a - 0.5,
texture2D(u_TextureUV, vTextureCoord).r - 0.5
);
然后我将得到与
u_TextureY
和u_TextureUV
分开的YUV数据。我知道NV21格式如下:YYYYYY ... UVUV ...但是如何将YUYV422转换为RGB?
所以,我的问题是
texture2D(u_TextureY, vTextureCoord).r
和.a中的“r”和“a”是什么意思?那么我可以找到做YUYV422-> RGB的方法。 最佳答案
texture2D
的返回类型为vec4
。在GLSL中,可以分别访问向量的组成部分:
参见The OpenGL Shading Language specification:
这意味着.r
给出了vec4
的第一个组成部分,而.a
给出了vec4
的第4个组成部分。
关于android - texture2D()。r和texture2D()。a是什么意思?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47671934/