2013-03-14 121 views
1

我有一款在Android上運行的OpenGL ES 2應用程序。我已經在少數設備進行測試:使用OpenGL在Android上進行重影

  • 三星Galaxy S2
  • LG的Optimus G^
  • HTC One X的
  • 的Kindle Fire
  • 的Kindle Fire HD

和應用程序運行如預期。不過,我的三星Galaxy S3存在一個問題。在我的演示中,我渲染了一堆球體。我也可以通過在屏幕上觸摸和拖動手指來平移相機。

當我移動相機時,我注意到「重影」。這很難描述,但我可以在移動相機時看到前面的球體輪廓。而且,隨着相機的移動,我可以繼續看到之前的輪廓。我沒有看到以前的所有輪廓 - 只有最後幾個(這裏很難量化)。而且,我只能看到球體內的輪廓 - 就我所知,以前的輪廓不再存在於球體之外。

但是,一旦相機停止,輪廓就會在〜1秒內趕上並消失。簡而言之,當事物靜止時,一切都呈現正確。

我最近有一些紋理問題(與mipmapping有關),我前幾天解決了它們。問題和解決方案羅列如下:

Black Artifacts on Android in OpenGL ES 2

難道我的紋理弄不好與此有關?我意識到我要拋棄很多細節,但我想知道症狀是否足以繼續下去?有任何想法嗎?

謝謝。

其他細節:

  • 考慮使用NDK的屏幕截圖的重影不出來。

  • 問題的照片:

Ghosting effect on S3

+0

這種現象的屏幕截圖會非常有幫助。 – 2013-03-14 19:28:16

+0

另外,發佈您的glClearColor/glClear/glClearDepthf代碼。也許你沒有正確地清理z緩衝區? – 2013-03-14 19:34:41

+0

我試圖通過NDK捕捉屏幕([鏈接](http://www.howtogeek.com/121121/how-to-take-android-screenshots-on-your-pc-with-the-android -sdk /)) 但我無法捕捉到我所看到的。也許這會更深入地瞭解問題的本質? 至於我的明確的代碼,它是這樣的: glClearColor(r,g,b,a); glClearDepthf(clearZ); glClearStencil(clearStencil); glClear(mask); 其中: R = 0.145098 克= 0.552941 B = 0.749020 α= 1.000000 clearZ = 1.000000 clearStencil = 00000000 掩模= 0x00004500 – user2096853 2013-03-14 20:30:30

回答

0

一個臨時的解決方案是在手機上,在開發者選項,勾選爲 「Disable硬件覆蓋。」

我還不確定是否有辦法在運行應用程序時強制執行此行爲。