1

opengl が HTC デバイスで適切にレンダリングされないという問題があります。

適切にレンダリングされる他のいくつかのデバイスでテストしました。は通常のデバイスでの例です: これは通常のデバイス での例です。HTC DesireとDesire S の例を次に示します。

追加したときの問題

GLES20.glEnable(GLES20.GL_DEPTH_TEST);

コメントアウトすると再び表示されますが、壁の半分が見えなくなるため、そのままにしておくことはできません。

これと何か関係がある可能性はありますか?何か私にできることはありますか?より多くのコードを提供できます。

4

1 に答える 1

1

ほとんどの場合、いくつかのものを明示的に指定するのを忘れています。デフォルトはデバイスによって異なり、ある GPU で動作するコードは別の GPU では失敗します。次のすべてが設定されていることを確認してください。

GLES20.glEnable(GLES20.GL_DEPTH_TEST); // enable depth test
GLES20.glDepthMask(true); // write to z-buffer
GLES20.glDepthFunc(GLES20.GL_LEQUAL); // specify the way depth test works

ジオメトリを描画するときは、常にカラー バッファーと深度バッファーの両方を消去します。

GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT | GLES20.GL_DEPTH_BUFFER_BIT); // clear both color and z-buffer

最後に、OpenGL コンテキストが適切に初期化されていること、および使用されている EGL 構成 (EGL_DEPTH_SIZEが 0 ではない) の深度バッファーがあることを確認してください。Desire S で使用可能なすべての EGL 構成のリストは、http://gfxbench.com/device.jsp?benchmark=gfx27&D=HTC+Desire+S&testgroup=egl で確認できます

于 2013-10-25T06:52:11.353 に答える