4

私は 3D レンダリングのために iSGL3d に大きく依存するアプリを作成しましたが、メモリ割り当ての理由からテクスチャ サイズをいじり始める必要があるところまで来ました。

私のアプリは非常に大きなテクスチャ (1024x1024) を使用しており、それを 512x512 にすることは受け入れられません

そのため、GL ES 2.0 をベースとして、テクスチャを 700x700 に近いサイズに少し減らしたいと考えています。

これが可能であることはわかっています。前世で、2 の累乗でないテクスチャを使用する OpenGL コードを丹念に手書きしたからです。

しかし、iSGL3d のコードをふるいにかけ、この変更に影響を与えることができる場所を見つけるのに非常に苦労しました...そして、プロジェクトは現在放棄されているようです.

基本的に、デフォルトでは、GLES 2.0 インスタンスを使用する場合でも、iSGL3d は 2 のべき乗のビットマップを作成し、テクスチャをそれにダンプして、透明なピクセルの束を残します。これは無価値です。

テクスチャ サイズを 2 のべき乗でないイメージに強制すると、GL エラーが発生します。これは、強制する必要があるすべての場所で適切に強制していないか、iSGL3d が適切に GLES 2.0 を使用していないためであると想定しています。

どんなポインタでも役に立ちます...

4

1 に答える 1

1

ミップマッピングを無効にするだけでは、有効なテクスチャでさえ描画できません

これらのテクスチャの縮小サンプリングをミップマップを使用しないように設定しましたか?デフォルトではミップマップオプションになっているため、ミップマップを使用しない場合は別のオプションに設定する必要があります。

例えば

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); 
于 2012-08-07T19:16:46.513 に答える