Rajawaliと呼ばれる Android 用の 3D グラフィックス フレームワークを見つけ、その使用方法を学んでいます。テクスチャ用に 1024x512 サイズの jpg 画像を使用して shpere オブジェクトをレンダリングする最も基本的なチュートリアルに従いました。Galaxy Nexus では問題なく動作しましたが、Galaxy Player GB70 では動作しませんでした。
うまくいかなかったというのは、オブジェクトは表示されますが、テクスチャがレンダリングされないということです。最終的に、テクスチャを作成するときに Rajawali フレームワークに使用するいくつかのパラメーターを変更し、それが機能するようにしました。これが私が見つけたものです。
原因は、GL_TEXTURE_MIN_FILTER
設定されていた場所にありました。次の 4 つの値のうち
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
、最後の2つに設定すると機能します。
今、ここに私が理解していない、そして興味があるものがあります。テクスチャとして使用している画像をサイズ 512x512 に縮小すると、GL_TEXTURE_MIN_FILTER
設定は問題になりません。最小フィルターの 4 つの設定すべてが機能します。
私の質問は、テクスチャに最小フィルターを使用する場合、画像の寸法に関する要件はありますか? 正方形の画像を使用する必要がありますか? ラップスタイルやマグフィルターの構成など、他のことが問題になることはありますか?
それとも、デバイスの OpenGL 実装のバグのように見えますか?