1
我有一個標準的OpenGL着色器下面的代碼:端口GLSL矩陣GLSL ES
vec3 I4, C1, A0, G5;
mat3 yuv_weighted;
vec4 i4 = yuv_weighted[0] * mat4x3(I4, C1, A0, G5);
我怎樣才能將其轉換爲OpenGL ES 2.0的,不支持矩形矩陣?
我有一個標準的OpenGL着色器下面的代碼:端口GLSL矩陣GLSL ES
vec3 I4, C1, A0, G5;
mat3 yuv_weighted;
vec4 i4 = yuv_weighted[0] * mat4x3(I4, C1, A0, G5);
我怎樣才能將其轉換爲OpenGL ES 2.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));
雖然第一個版本可能更有效(不知道)。