Мы - команда разработчиков, работающих над программным обеспечением для визуализации ландшафта над виртуальным 3D-земным шаром.Проект ориентирован на мобильные устройства под управлением Android, в основном планшеты и мобильные телефоны.Мы проверили это на нескольких устройствах, и, хотя мобильные телефоны, кажется, отлично работают (мы не обнаружили проблем ни на одном из них), некоторые планшеты, похоже, испытывают проблемы при рисовании текстур на экране.
Для ясности я прилагаю видео, в котором показана проблема, поскольку ее немного сложно объяснить словами.В этом примере показана сфера, разделенная на 200 секторов, каждый из которых имеет свою текстуру.
Видео с проблемой текстуры
Как вы можете видеть, иногда это выглядит так, как будто вы пытаетесьчтобы нарисовать две разные текстуры в одном и том же секторе одновременно.
Мы проверили это на следующих устройствах:
- Samsung Galaxy S SLC (нормально)
- HTC Desire (нормально)
- Nook Ebook Reader (хорошо)
- Samsung Galaxy Tab 10.1 (не работает с перебавкой)
- Sony Tablet S (не работает)
- Samsung Galaxy Tab 7.0 (хорошо)
Я публикую критический код, который может быть связан с этим.Сначала фрагментный шейдер, который используется для рисования текстур:
varying mediump vec2 TextureCoordOut;
uniform sampler2D Sampler;
....
gl_FragColor = texture2D (Sampler, TextureCoordOut);
Затем я публикую ключевые инструкции, которые выполняются в OpenGL, так как код избавлен от нескольких больших функций:
GLES20.glGenTextures(num, idTextures, 1); //declare 200 textures
...
GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, idTextures[texture]); //texture binding
...
GLES20.glVertexAttribPointer(Attributes.Position, size, GLES20.GL_FLOAT, false, stride, fb);
...
GLES20.glVertexAttribPointer(Attributes.TextureCoord, size, GLES20.GL_FLOAT, false, stride, fb);
...
GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, first, count);
Извините, что не могу предоставить более подробную информацию, но после нескольких недель отладки мы не имеем ни малейшего представления о том, что может быть причиной этого.Я обращаюсь к вам, надеясь на какие-либо выводы, так как сейчас мы полностью потеряны.Заранее спасибо.