OpenGL ES についてはまだよくわかりません。私は三角形の描画などについてしか学んでいません。私はまだテクスチャについて学んでいません。
一部のデバイスでは、2、4、8、16、32 など、幅または高さが 2 のべき乗である画像が必要であると聞きました。それはなぜです?サイズが 53 x 76 であるというイメージがある場合はどうすればよいですか?
これがキャンバスから OpenGL ES への切り替えを妨げている理由なので、これを知る必要があります。ありがとうございました :)
2 のべき乗を持つテクスチャは、テクスチャリング ハードウェアを大幅に簡素化し、より高速にするために多くの最適化の余地を残します。2 の累乗でないテクスチャがある場合は、次の 2 つのオプションがあります。
1)「余分な」スペースに必要なものを入力します(明るい緑のような色を選択して、画面にその色が表示された場合、texcoordsに何か問題があることがわかります)、あなたの例では64x128 になり、テクスチャ座標を調整して補正します。つまり、texcoords は (0, 0) から (53.0/64.0, 76.0/128.0) になります。
2) テクスチャを最も近い 2 のべき乗、例では 64x128 に引き延ばし、既存の texcoords をそのまま使用します。
一般に、幅と高さが 2 の累乗である画像をグラフィック チップで処理する方が簡単で、必要なロジック/チップの領域が少なくて済みます。ミップマップを使い始めると、これはさらに重要になります。
一部の OpenGL|ES グラフィック チップは 2 のべき乗でないテクスチャをサポートしていますが、これにはコストがかかります。ミップマップはサポートされておらず、画像の回転を開始するとパフォーマンスが大幅に低下する可能性があります。