2

アプリでテクスチャを使用しようとしていますが、エラーが発生しています

:0: SGXQueueTransfer: all paths failed
:0: HardwareMipGen: Failed to generate texture mipmap levels (error=3)

私のギャラクシーネクサスで。EVO 4G ではこれらのエラーは発生しません。

関連する読み込みコードは次のとおりです。

private static int load(Context context, int resID) {
    Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(),
            resID);

    int[] texts = new int[1];
    GLES20.glGenTextures(1, texts, 0);
    int texID = texts[0];

    GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, texID);

    GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
            GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR);
    GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
            GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR);

    GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_S,
            GLES20.GL_CLAMP_TO_EDGE);
    GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_T,
            GLES20.GL_REPEAT);

    GLUtils.texImage2D(GLES20.GL_TEXTURE_2D, 0, bitmap, 0);

    return texID;
}

private static int loadWithMipmap(Context context, int resID) {
    int texID = load(context, resID);

    GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
            GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR_MIPMAP_NEAREST);
    GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
            GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR_MIPMAP_NEAREST);

    GLES20.glGenerateMipmap(GLES20.GL_TEXTURE_2D);

    return texID;
}

何が起こっているのか、どうすれば修正できるのでしょうか?

編集: エラーの原因となっている画像は 1 つだけで、1024x2048 の png です。

4

3 に答える 3

1

私はこれを見ました、そして私が画像を正方形に押しつぶすとそれはうまくいきました。OpenGLはエラーを出しません。

于 2012-08-28T21:07:40.193 に答える
1

フリッキン怖い。Galaxy Nexus 7 でテスト済み。

次のことを行う必要があります。

    GLES20.glTexParameterf(
        GLES20.GL_TEXTURE_2D,
        GLES20.GL_TEXTURE_MIN_FILTER,
    GLES20.GL_LINEAR_MIPMAP_NEAREST);
    this.context.checkError("GL_TEXTURE_MIN_FILTER");
    GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
        GLES20.GL_TEXTURE_MAG_FILTER,
    GLES20.GL_LINEAR);

厳密に言えば、GL_LINEAR_MIPMAP_NEAREST は有効な MAG_FILTER ではないと思います。とにかくNexus 7はそう思います。そして、変更が加えられて美しくミップマップされます。

于 2012-08-14T13:50:18.263 に答える
0

私はあなたが言及しているハードウェアにアクセスできないので、大げさな推測ですが、 2次元の累乗でないテクスチャでエラーが発生しますか?

于 2012-06-16T21:01:43.823 に答える