Текстура OpenGL ES 2.0 не отображается на некоторых устройствах

Я нашел 3D графический фреймворк для Android под названиемRajawali и я учусь его использовать. Я следовал основному уроку - рендерингу объекта shpere с изображением jpg размером 1024x512 для текстуры. Он хорошо работал на Galaxy Nexus, но не работал на Galaxy Player GB70.

Когда я говорю, что это не работает, я имею в виду, что объект появляется, но текстура не отображается. В конце концов я изменил некоторые параметры, которые я использую для фреймворка Rajawali при создании текстур, и заставил его работать. Вот что я узнал.

Причина исходила от того, гдеGL_TEXTURE_MIN_FILTER был установлен. Среди следующих четырех значений

GLES20.GL_LINEAR_MIPMAP_LINEAR
GLES20.GL_NEAREST_MIPMAP_NEAREST
GLES20.GL_LINEAR
GLES20.GL_NEAREST

текстура отображается только тогда, когдаGL_TEXTURE_MIN_FILTER не установлен фильтр с использованием mipmap. Так когдаGL_TEXTURE_MIN_FILTER настроен на последние два, это работает.

Теперь вот то, что я не понимаю и мне интересно. Когда я уменьшаю изображение, которое я использую в качестве текстуры, до размера 512x512,GL_TEXTURE_MIN_FILTER Настройки не имеют значения. Все четыре настройки фильтра min работают.

Поэтому мой вопрос: есть ли требования к размерам изображения при использовании минимального фильтра для текстуры? Например, я должен использовать квадратное изображение? Могут ли быть проблемы другие вещи, такие как стиль обертки или конфигурация магнитного фильтра?

Или это похоже на ошибку реализации OpenGL устройства?

Ответы на вопрос(1)

Ваш ответ на вопрос