32

iOS アプリ (iPad を対象) で、非 2 乗 (NPT) テクスチャを使用したいと考えています。私のGL_VERSIONクエリは「OpenGL ES 2.0 APPLE」を返します。仕様によると、NPT テクスチャをサポートする必要がありますが、簡単なテストでは、表示される前にテクスチャのサイズを 2^N に変更する必要があることがわかりました。

Apple は完全な ES 2.0 仕様をサポートしていませんか? サポートされていないものに関するドキュメントはどこにありますか?

Xcode 4.3.2 と iOS 5.1 を使用しています。

編集:

ES 2.0.25 仕様 (セクション 3.8.2) を詳しく見てみると、NPOT が機能するために満たすべきいくつかの条件があることがわかります。基本的に、以下の設定を使用すると、NPOT テクスチャをロードできます。

// use linear filetring
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR); 
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
// clamp to edge
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);

これを閉じるか、自分の質問に答える必要がありますか?

4

2 に答える 2

27

私の編集で述べたように、私は解決策を見つけました。ES 2.0 の NPOT では、線形フィルタリングとエッジ クランプを使用する必要があります。また、ミップマップはありません。

于 2012-06-17T12:25:44.007 に答える