2016-08-18 13 views
0

私は、OpenGL 2.0を使用してアンドロイドで魚眼効果をしたい、私はそれが非効率でビデオテクスチャをサポートしていないので、私は望んでいませんが、私は望んでいません。私はまた、Android Media Effects APIを使って魚眼効果をテストしますが、効果は良くありません。次のように魚眼効果openglesを使用して

私もfishshader検索:

private static final String FISHEYE_FRAGMENT_SHADER = 
    "precision mediump float;\n" + 
    "uniform sampler2D u_Texture;\n" + 
    "uniform vec2 vScale;\n" + 
    "const float alpha = float(4.0 * 2.0 + 0.75);\n" + 
    "varying vec2 v_TexCoordinate;\n" + 
    "void main() {\n" + 
    " float bound2 = 0.25 * (vScale.x * vScale.x + vScale.y * vScale.y);\n" + 
    " float bound = sqrt(bound2);\n" + 
    " float radius = 1.15 * bound;\n" + 
    " float radius2 = radius * radius;\n" + 
    " float max_radian = 0.5 * 3.14159265 - atan(alpha/bound * sqrt(radius2 - bound2));\n" + 
    " float factor = bound/max_radian;\n" + 
    " float m_pi_2 = 1.570963;\n" + 
    " vec2 coord = v_TexCoordinate - vec2(0.5, 0.5);\n" + 
    " float dist = length(coord * vScale);\n" + 
    " float radian = m_pi_2 - atan(alpha * sqrt(radius2 - dist * dist), dist);\n" + 
    " float scalar = radian * factor/dist;\n" + 
    " vec2 new_coord = coord * scalar + vec2(0.5, 0.5);\n" + 
    " gl_FragColor = texture2D(u_Texture, new_coord);\n" + 
    "}\n"; 

これは私がしたいが、私は誰かが私にいくつかの手がかりを与える.Canそれを使用する方法を知ってscroll down toパソコンへ転送されます。

答えて

0

Android OpenGL ESは(通常は)ビデオテクスチャをサポートしています。これは厳密にOpenGL ES APIの一部ではありませんが、通常Android SurfaceViews経由でビデオサーフェスをEGL外部画像として読み込むことができます。

は、ウェブ上で同様の質問がたくさんありますが、これSO質問は便利な出発点を提供する必要があります

Android. How play video on Surface(OpenGL)

関連する問題