3

新しい SGS3 (I9300 - LTEではない) を購入したばかりで、OpenGL ES (2) アプリケーションの開発を続けたいと思っていました。残念ながら、コンパイルすると何も表示されません。

次の LogCat エラー メッセージが表示されます。

D/libEGL(6890): loaded /system/lib/egl/libEGL_mali.so
D/libEGL(6890): loaded /system/lib/egl/libGLESv1_CM_mali.so
D/libEGL(6890): loaded /system/lib/egl/libGLESv2_mali.so
E/(6890): Device driver API match
E/(6890): Device driver API version: 23
E/(6890): User space API version: 23 
E/(6890): mali: REVISION=Linux-r3p2-01rel3 BUILD_DATE=Wed Oct  9 21:05:57 KST 2013** 
D/OpenGLRenderer(6890): Enabling debug mode 0

カスタム ROM (cyanogenmod 11 - スナップショット M4) もインストールしましたが、同じ問題が発生します。

アプリを起動すると、頂点がラスタライズされていない空白の画面が表示されます。これまでのところ、クリア カラーは機能するので、OpenGL の基本機能は機能しています。

ここに画像の説明を入力

確かに、GLES 1 と GLES 2 を使用して、Google Developers ページの基本的なチュートリアルで試してみました。どちらも機能しません。スクリーンショットは次のとおりです。

http://developer.android.com/training/graphics/opengl/index.html

プロジェクト自体は私の古いGalaxy S1 (Cyanogenmod でも) で正常に動作しますが、SGS3 では空白の画面以外は何も表示されません。

Mali-400 MP4グラフィックス ドライバー/システムが GL コマンドを異なる方法で解釈する可能性はありますか? SGS1 からHummingbird GPUを使用する以外に呼び出す方法はありますか?

何をすべきか考えている人はいますか?これは私の電話または日食の問題ですか? それとも、これは正常ですか - 私の理解不足ですか?この問題を解決するにはどうすればよいですか?

------- 編集: 解決策が見つかりました -------

わかりました、エラーを見つけました。Google ドキュメントは、頂点シェーダーでの行列の乗算が「間違っている」ことを示しています。

uniform mat4 uMVPMatrix;
attribute vec4 vPosition;
void main() {
   gl_Position = uMVPMatrix * vPosition;
}

これは私の古い Galaxy S1 にとっては問題ではないようですが、どういうわけか S3 (または Mali GPU) はこれについてうるさいです。乗算の順序を次のように変更しました。

uniform mat4 uMVPMatrix;
attribute vec4 vPosition;
void main() {
   gl_Position = vPosition * uMVPMatrix;
}

そして、それは機能します(S1でも)。S1 が両方のバージョンで正常に動作する理由はまだわかりませんが、これで問題は解決しました。

ご協力いただきありがとうございます!

4

2 に答える 2

1

ふと思いついたのですが、投影設定は確認しましたか?これらの形状が描画されている可能性がありますが、期待する場所ではありません。

また、シェーダーの読み込み手順の戻り値を確認してください。コンパイルの問題がある場合、シェーダー プログラムの無効なハンドルが取得されます。

于 2014-03-17T20:12:41.143 に答える
0

コードに、LogCat に反映されていない警告またはエラーが含まれている可能性があります。LibGDX のネイティブ OpenGL ラッパーを使用すると、実際にこれらのエラーが表示され、デバッグに非常に役立つことがわかりました。

ここで LibGDX ライブラリの設定に関するいくつかの役立つポインタを見つけることができます - http://www.learnopengles.com/android-lesson-seven-an-introduction-to-vertex-buffer-objects-vbos/

于 2014-03-18T19:31:39.817 に答える