2015-04-20 120 views
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的,不支持矩形矩陣?

回答

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)); 

雖然第一個版本可能更有效(不知道)。