2.0 では画像ファイルのサイズが 2 の累乗である必要はないと思っていましたが、試してみると黒い画面しか表示されませんでした。しかし、2 のべき乗の画像では問題なく動作します。私が欠けているもの、またはNPOT画像を使用するためにすべきことを誰かに教えてもらえますか? ありがとうございました
1 に答える
残念ながら、iOS 用の OpenGL ES は 2 のべき乗イメージを必要とします。これは、かなり厳密な実装であるためです (適切な例として、OpenGL ES で利用できないすべてのものを見てください)。
画像が 2 の累乗でない場合、いくつかの解決策があります。
まず、最も明白なのは、画像にパディングを追加してそうする必要があることです。これは、イメージ エディターで行うか、テクスチャ データをロードするときにプログラムで行うことができます。
次に、複数のテクスチャがある場合は、代わりにテクスチャ パッキング ツールを使用して、画像を 1 つの大きな画像にコンパイルできます。これは、使用目的に応じてより的を絞ったアプローチであり、UV/テクスチャ座標がオリジナルとは異なるため、複数の 3D メッシュまたはモデルにテクスチャを使用する場合は、さらに作業が必要になります。
編集
誰もがコメントを読んでいるわけではないので、より目立つように私のコメントを引用します。非常に特殊な状況下では、次のように NPOT テクスチャが有効です。
少し掘り下げた後、NPOT テクスチャは 2.0 ES を実行している新しい iOS ハードウェアで技術的に有効になっていますが、使用は非常に限られています。具体的には、クランプ ツー エッジでミップマッピングなしの線形フィルタリングを使用する必要があります。これにより使用が制限されますが、ほとんどの場合、2 のべき乗の画像の方が効率的であり、フレームレートも高くなります。