将GLSL矩阵移植到GLSL ES

时间:2015-04-20 12:38:47

标签: opengl opengl-es

我在标准的OpenGL着色器中有以下代码:

vec3 I4, C1, A0, G5;
mat3 yuv_weighted;

vec4 i4 = yuv_weighted[0] * mat4x3(I4, C1, A0, G5);

如何将其转换为不支持矩形矩阵的OpenGL ES 2.0?

1 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情:

vec3 I4, C1, A0, G5;
mat3 yuv_weighted;

vec4 i4 = vec4(dot(yuv_weighted[0], I4), dot(yuv_weighted[0], C1),
               dot(yuv_weighted[0], A0), dot(yuv_weighted[0], G5));

甚至

vec4 i4 = vec4(yuv_weighted[0]*mat3(I4, C1, A0), dot(yuv_weighted[0], G5));

虽然第一个版本可能更有效(不确定)。