私はOpenGLが初めてです。以下は、レンダリングに使用しているフラグメント シェーダー コードですが、すべての Samsung デバイスでは赤色のみが表示され、Nexus 4 & 5 では正しい結果が得られます。使用せずにマトリックスを初期化しても、リンクエラーはありません。赤色になります。
検索したところ、Mali GPU に問題があることがわかりました。ランダム マトリックスを定義し、そのマトリックスをフラグメント シェーダー コードで使用して、すべてのプラットフォームで正しい結果が得られるようにするにはどうすればよいですか。
fragmentShaderCode5 =
"#extension GL_OES_EGL_image_external : require\n"
+ "precision lowp float;"
+ "varying vec2 v_TexCoordinate;"
+ " mat4 colorMatrix;"
+ "uniform samplerExternalOES texture;"
+ "void main()\n {"
+ " mat4 colorMatrix = mat4(0.3588f, 0.7044f, 0.1368f, 0f,
0.2990f,0.5870f, 0.1140f, 0f, 0.2392f, 0.4696f, 0.0912f ,0f,
0f,0f,0f,0f);"
+ " vec4 color = texture2D(texture, v_TexCoordinate);"
+ " vec4 outputColor = color*colorMatrix ;"
+ " gl_FragColor = (0.1 * color) + ((1.0 - 0.1) *
outputColor);"
+ "}";