SurfaceTexture
カメラのプレビューとオーバーレイテクスチャをミックスしたいと思います。私はこれらのシェーダーを処理に使用しています:
private final String vss = "attribute vec2 vPosition;\n"
+ "attribute vec2 vTexCoord;\n"
+ "varying vec2 texCoord;\n"
+ "void main() {\n"
+ " texCoord = vTexCoord;\n"
+ " gl_Position = vec4 ( vPosition.x, vPosition.y, 0.0, 1.0 );\n"
+ "}";
private final String fss = "#extension GL_OES_EGL_image_external : require\n"
+ "precision mediump float;\n"
+ "uniform samplerExternalOES sTexture;\n"
+ "uniform sampler2D filterTexture;\n"
+ "varying vec2 texCoord;\n"
+ "void main() {\n"
+" vec4 t_camera = texture2D(sTexture,texCoord);\n"
//+" vec4 t_overlayer = texture2D(filterTexture, texCoord);\n"
//+ " gl_FragColor = t_overlayer;\n" + "}";
+ " gl_FragColor = t_camera;\n" + "}";
私の目標は、混合することt_camera
ですt_overlayer
。私が表示t_camera
するか、t_overlayer
個別に表示すると、機能します(カメラのプレビューまたはテクスチャを表示します)。しかし、コメントを外すt_overlayer
と、t_camera
黒になります(どういうわけかひどくサンプリングされています)。私のオーバーレイヤーテクスチャは512x512とCLAMPT_TO_EDGE
です。この問題は、Android Emulator、HTCEvo3Dなどでのみ発生します。しかし、SGS3、HTC One Xでは、問題なく動作します。
なにが問題ですか?Evo 3Dに拡張機能がないのですか、それとも何ですか?