0

私は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);"
        + "}";
4

0 に答える 0