2

PowerVRSGXシリーズを除くすべての電話で正常に動作するOpenGLライブ壁紙があります。これには、ほぼすべてのSamsung電話とMotorolaDroidシリーズが含まれます。壁紙は、PowerVRGPU電話の黒い画面に他なりません。私はこの問題を理解しようとして1週間頭を悩ませてきましたが、運がありませんでした。

異なるGPUの違いの1つは、テクスチャ圧縮です。その点で私が行ったことのいくつかは、テクスチャ画像を256x256の正方形に変更したことです。それを8ビットから16ビットのrgbaに変更し、インデックスを作成してみました。

PowerVRで利用できるすべての拡張機能とAdrenoで利用できる拡張機能のリストがあります。利用可能な拡張機能にはかなりの違いがあるようですが、どの機能がどの拡張機能に対応しているかはわかりません(多少推測できますが)。これが私が使用する関数のリストです:

  • glLightfv
  • glMaterialfv
  • glDepthFunc
  • glEnableClientState
  • glViewport
  • glMatrixMode
  • glLoadIdentity
  • gluPerspective
  • glclearcolor
  • glclear
  • glTranslatef
  • glRotatef
  • glVertexPointer
  • glTexCoordPointer
  • glColor4f
  • glNormal3f
  • glDrawArrays
  • glTexParamterx

私はRobertGreenのGlWallPaperServiceを使用しており、デバイスでテクスチャ三角形を描画しようとしてこのソリューションを試しましたが、エミュレータは機能します。なんで?。PowerVRチップがなぜ私にそんなに苦労しているのか、そして私がそれについて何ができるのか、誰かが知っていますか?

4

3 に答える 3

2

EGL10.EGL_RED_SIZE、EGL10.EGL_GREEN_SIZE、およびEGL10.EGL_BLUE_SIZEを削除しますが、eglChooseConfigにEGL10.EGL_DEPTH_SIZE、EGL10.EGL_NONEを残します。PowerVRチップはRGBを定義するのに問題がある方法でRGBを処理すると思います。

于 2011-09-26T20:30:59.630 に答える
2

これはおそらく役に立たないでしょうが、私は気づいた:

異なる GPU の違いの 1 つは、テクスチャ圧縮です。その点で私が行ったことのいくつかは、テクスチャ イメージを 256x256 の正方形に変更したことです。8 ビットから 16 ビットの RGBA に変更し、インデックスも試しました。

私の知る限り、現在のハードウェアはインデックス付きテクスチャをサポートしていません。また、テクスチャ圧縮を使用するには、デバイスで特にサポートされている圧縮テクスチャ フォーマットをターゲットにする必要があります (通常、ホスト/開発プラットフォームでコンプレッサーを実行する必要があります)。SGX は PVRTC と ETC をサポートしますが、それらが有効かどうかはプラットフォームによって異なります

于 2011-10-17T08:19:40.403 に答える
0

この GPU に関する私自身の経験から、一度適用すると機能しない GLES 構成が提供されます (つまり、GLES コンテキストは作成されません)。回避策は、GLSurfaceView コードを確認し、独自のコードをロールアウトして、提供された各構成を試して、コンテキストの作成に役立つかどうかを確認することです。

于 2011-12-18T08:45:09.830 に答える