5

glTexImage2D を使用してディスク上の画像ファイルからロードする OpenGL テクスチャを使用する Mac アプリケーションで作業しています。

ドキュメントによると、OpenGL バージョン >= 2.0 の場合、テクスチャは任意のサイズにすることができます。(バージョン <2.0 の場合、x と y の寸法は両方とも 2 の累乗でなければなりません。)

ただし、画像のサイズが 4 の倍数でない場合、テクスチャが悪くなります。検索を繰り返しましたが、この要件に関するドキュメントが見つかりません。実際、「レッド ブック」には、バージョン >= 2.0 の場合、テクスチャの寸法を任意の値にできることが明示的に記載されています。

私は何が欠けていますか?

また、テクスチャを次に大きい 2 の累乗次元に変換すると、パフォーマンス上の利点はありますか? 私のアプリには Mac OS 10.6.6 以降が必要です。これは、すべての Intel Mac で実行できます。初期の Intel mac の一部には、非常に「質素な」グラフィックス ハードウェアが搭載されていました。

どんな助けでも大歓迎です。

4

2 に答える 2

5

次元が 2 のべき乗である通常のテクスチャに対する制約は、OpenGL バージョン >= 2 に残っています。ただし、サポートされている新しいテクスチャ ターゲット GL_TEXTURE_RECTANGLE があります。これは、任意の次元をサポートしますが、ミップマッピングは行いません。

次元が 4 の倍数であるという制約はありませんが、glPixelStore(GL_UNPACK...) パラメーターが設定されている可能性があり、プログラムの他の部分によって設定されている可能性があり、この動作が発生する可能性があります。

于 2011-01-27T18:01:52.430 に答える
0

テクスチャはどのような形式ですか?S3TC圧縮テクスチャ形式は4x4タイルで動作するため、寸法が4の倍数でない場合、機能しないか、視覚的なアーティファクトが発生する可能性があります。

于 2011-01-27T19:33:23.870 に答える