2013-03-14 7 views
1

У меня есть приложение OpenGL ES 2, работающее на Android. Я тестировал на нескольких устройствах:Ghosting на Android с OpenGL

  • Samsung Galaxy S2
  • LG Optimus G
  • HTC One X
  • Kindle пожарной
  • Kindle Fire HD

И приложение работает как и ожидалось. Однако на Samsung Galaxy S3 существует затяжная проблема. В моей демонстрации я делаю кучу сфер. Я также могу панорамировать камеру, касаясь и волоча пальцем по экрану.

То, что я замечаю, является «ореолом», когда я перемещаю камеру. Трудно описать, но я вижу предыдущие очертания сферы, когда я перемещаю камеру. И я могу продолжать видеть предыдущие контуры, когда камера движется. Я не вижу всех предыдущих очерков - только последние несколько (здесь трудно количественно оценить). И я вижу только контуры внутри сферы - насколько я могу судить, предыдущие контуры перестают существовать вне сферы.

Однако, как только камера остановится, контуры догонят и исчезают в течение ~ 1 с. Проще говоря, когда вещи неподвижны, все делает правильно.

У меня недавно возникли проблемы с текстурированием (связанные с mipmapping), и я решил их на днях. Проблема и решение изложены здесь:

Black Artifacts on Android in OpenGL ES 2

Может мой текстурирования исправить быть связано с этим? Я понимаю, что я оставляю много деталей, но мне интересно, достаточно ли симптомов для продолжения? Есть идеи?

Спасибо.

Дополнительная информация:

  • ореолы не показывается при съемке экрана с помощью NDK.

  • Фотография проблемы:

Ghosting effect on S3

+0

Снимок экрана этого феномена ДЕЙСТВИТЕЛЬНО полезен. –

+0

Также отправьте свой код glClearColor/glClear/glClearDepthf. Возможно, вы неправильно очищаете буфер z? –

+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 (маска); Где: г = 0,145098 г = 0,552941 Ь = 0,749020 а = 1,000000 clearZ = 1,000000 clearStencil = 0x00000000 маски = 0x00004500 – user2096853

ответ

0

Временное решение на телефоне, в разделе Параметры разработчика, установите флажок на «Отключить аппаратные надпечатки.»

Я еще не уверен, есть ли способ заставить это поведение при запуске приложения.

Смежные вопросы