私たちは、仮想3D地球上の地形の可視化ソフトウェアを開発する開発者のチームです。このプロジェクトは、主にタブレットや携帯電話などのアンドロイドを実行するモバイルデバイスを対象としています。私たちはいくつかのデバイスでこれをテストしましたが、携帯電話はアプリケーションをうまく実行しているように見えますが(いずれも問題は検出されませんでした)、スクリーンにテクスチャを描画するときにタブレットに問題があるようです。いくつかのアンドロイドデバイスでOpenglテクスチャがちらつく
単語を説明するのが少し難しいので、わかりやすくするために、問題を表示するビデオを添付してください。この例では、それぞれ異なるテクスチャを持つ200個のセクタに分割された球を示しています。
あなたが見ることができるように、同時に同じ部門に2つの異なるテクスチャを描画しようとしているように、時にはそれが見えます。
我々は、これらのデバイスでこれをテストしている:(OK)
- サムスンギャラクシーS SLC(
- ソニータブレットS(どちらも動作しません)
- サムスンギャラクシータブ7.0(ok)
これに関係する重要なコードを投稿しています。テクスチャを描画するために使用された最初のフラグメントシェーダ:
varying mediump vec2 TextureCoordOut;
uniform sampler2D Sampler;
....
gl_FragColor = texture2D (Sampler, TextureCoordOut);
次に、イム・コードは、いくつかの大きな機能に惜しまれているので、OpenGLで実行されているキーの指示を投稿:
GLES20.glGenTextures(num, idTextures, 1); //declare 200 textures
...
GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, idTextures[texture]); //texture binding
...
GLES20.glVertexAttribPointer(Attributes.Position, size, GLES20.GL_FLOAT, false, stride, fb);
...
GLES20.glVertexAttribPointer(Attributes.TextureCoord, size, GLES20.GL_FLOAT, false, stride, fb);
...
GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, first, count);
イム詳細を提供できないのは残念ですが、デバッグの数週間後には、これを引き起こす可能性のあるものは何もありません。私たちは今、完全に失われているので、あなたはどんなリードを望んでいるのですか?前もって感謝します。
すべてのレンダリングサイクルの後に '' glFlush''または '' glFinish''を追加すると、レンダリングの状態がかなり変化しているように見えるようになります。 – harism
提案してくれてありがとうが、残念ながらそれはうまくいきませんでした。 –