Textura OpenGL ES 2.0 não mostrando em algum dispositivo
Eu encontrei um framework gráfico 3D para Android chamadoRajawali e estou aprendendo a usá-lo. Eu segui o tutorial mais básico que está renderizando um objeto shpere com uma imagem JPG de 1024x512 para a textura. Funcionou bem no Galaxy Nexus, mas não funcionou no Galaxy Player GB70.
Quando digo que não funcionou, quero dizer que o objeto aparece, mas a textura não é renderizada. Eventualmente, mudei alguns parâmetros que utilizo para o framework Rajawali ao criar texturas e fazê-lo funcionar. Aqui está o que eu descobri.
A causa estava vindo de onde oGL_TEXTURE_MIN_FILTER
estava sendo definido. Entre os quatro valores seguintes
GLES20.GL_LINEAR_MIPMAP_LINEAR
GLES20.GL_NEAREST_MIPMAP_NEAREST
GLES20.GL_LINEAR
GLES20.GL_NEAREST
a textura só é renderizada quandoGL_TEXTURE_MIN_FILTER
não está definido para um filtro usando mipmap. Então quandoGL_TEXTURE_MIN_FILTER
está definido para os dois últimos que funciona.
Agora aqui está o que eu não entendo e estou curioso sobre isso. Quando eu encolho a imagem que estou usando como textura para tamanho 512x512GL_TEXTURE_MIN_FILTER
configurações não importa. Todas as quatro configurações do filtro min funcionam.
Então, minha pergunta é, existe um requisito para as dimensões da imagem ao usar min filtro para a textura? Como eu sou obrigado a usar uma imagem que é quadrada? Outras coisas, como o estilo wrap ou a configuração do filtro mag, podem ser um problema?
Ou parece um erro de implementação do OpenGL do dispositivo?