三星Galaxy SL的球体上不显示纹理

我正在研究Android的Rajawali框架。 我尝试了他们的第一个基本教程,如下所示:

public class RRenderer extends RajawaliRenderer { private DirectionalLight mLight; private BaseObject3D mSphere; public RRenderer(Context context) { super(context); setFrameRate(60); } protected void initScene() { mLight = new DirectionalLight(1f, 0.2f, 1.0f); // set the direction mLight.setColor(1.0f, 1.0f, 1.0f); mLight.setPower(2); Bitmap bg = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.earthtruecolor_nasa_big); DiffuseMaterial material = new DiffuseMaterial(); mSphere = new Sphere(1, 18, 18); mSphere.setMaterial(material); mSphere.addLight(mLight); mSphere.addTexture(mTextureManager.addTexture(bg)); addChild(mSphere); mCamera.setZ(-4.2f); } public void onSurfaceCreated(GL10 gl, EGLConfig config) { super.onSurfaceCreated(gl, config); } public void onDrawFrame(GL10 glUnused) { super.onDrawFrame(glUnused); mSphere.setRotY(mSphere.getRotY() + 1); } } 

我所做的就是创建一个Sphere并将一个地球图像添加为纹理。 图像的大小为1024×512。

当我在三星Galaxy SL上运行此代码时,球体没有这种纹理,而是呈深灰色。 但是当我在其他设备(Nexus 7和Sony Xperia)上运行此代码时,纹理会正确显示。 此外,如果我使用像512×512这样的纹理,纹理会在Samsung Galaxy SL上正确显示。

我发现了一个提示,但不知道如何继续: OpenGL ES 2.0纹理没有显示在某些设备上

opengl提供的最小filter是

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

纹理似乎呈现以下代码行GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D,GLES20.GL_TEXTURE_MIN_FILTER,GLES20.GL_LINEAR);

我得出的结论是,当Mipmapping打开时,设备不会渲染纹理。