0

不可解な理由により、テクスチャが読み込まれません。

これが方法です

     public static void loadGLTexture(GL10 gl, Context context){

     BitmapFactory.Options options = new BitmapFactory.Options();
     options.inDensity = 240;// needed so that the image will be 512x512

    Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.glasstexture, options); 
    int width = bitmap.getWidth();
    int height = bitmap.getHeight();

    Log.i("GridLoginSquare.loadGLTexture 96", "Bitmap:{w:" + width + " h:" + height + "}");

    gl.glGenTextures(1, textures, 0);
    gl.glBindTexture(GL10.GL_TEXTURE_2D, textures[0]);

    // create nearest filtered texture
    gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_NEAREST);
    gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR);

    // Use Android GLUtils to specify a two-dimensional texture image from our bitmap
    GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bitmap, 0);  //error is on this line

    Log.e("GridLoginSquare.loadGLTexture 102", " ERR "+gl.glGetError()); 
    // Clean up

    bitmap.recycle();           
}

テクスチャ イメージのサイズは 405 x 512 です

Log.e("GridLoginSquare.loadGLTexture 102", " ERR "+gl.glGetError());は私に1281エラーを与えます。これは(同様の問題を抱えた他の人を調査した後)意味します INVALID_VALUE

上記のコードは、ここGridLoginSquareにある全体的なクラスの一部です

注:BitmapFactory.Optionsこの問題は、画像をスケーリングするために密度が含まれる前に、すでに解決されていませんでした。同様に、テクスチャ uv は、これが要点コードに含まれていたときに 405 と 512 で分割されました。

4

3 に答える 3

1

drawable-nodpiフォルダーにテクスチャを配置しなかったときに、この問題が発生しました。テクスチャをそのフォルダに移動してみてください。

また、OpenGLは、テクスチャが2の累乗である寸法を持つことを好みます。これによりテクスチャがまったく表示されないかどうかはわかりませんが、見ただけでテクスチャ画像を512x512または256x256にしてみてください。

于 2012-06-25T02:25:16.243 に答える
1

textImage2Dでまったく同じエラーが発生し、glGetErrorが0を返し、幅と長さが2の累乗である画像を使用するWindyBの​​ソリューション... DID WORKが私を形成しました!どうもありがとうございます!:)

このエラーは、Android 2(正確にはAndroid 2.3.3)でのみ発生しました。Android 4では、常に正常に機能していました(さまざまなAndroidバージョンでアプリをテストするのが好きです)。

ちなみに、フォルダ「drawable-nodpi」を作成する必要はありませんでした。すべてを「drawable」にスタックしています。

それが役立つ場合:http ://developer.android.com/guide/topics/graphics/opengl.html#manifestの「DeclaringOpenGL Requirements」の下に、一部のテクスチャ圧縮形式が一部のデバイスと互換性がないことが示されています。問題はこれと関係がありますか?

于 2012-12-13T02:35:14.863 に答える
0

drawable-nodpi フォルダー (作成する必要があります) にテクスチャがあり、この関数を呼び出した後に同じエラー 1281 が発生しました: GLUtils.texImage2D(GLES20.GL_TEXTURE_2D, 0, bmp, 0); そして、それは私のテクスチャが 2 の累乗ではなかったために引き起こされていたので、それを修正した後 (2 の累乗のままにしておく)、正常に動作し、テクスチャのにじみだけが残ります (テクスチャの望ましくない小さな部分が上に現れるとき)。境界)、しかしこれは UV 座標の値を調整することで解決されます。

于 2015-02-21T20:25:42.827 に答える