5

現在、sdlで2D OpenGL出力を使用するゲームを作成しており、SDL_ttfを使用してテキストを読み込もうとしています。ただし、プレーンなOpenGLは2つのテクスチャの非累乗をサポートしていないように見えるため、テキストを空白のピクセルで埋める必要があります。GL_ARB_texture_non_power_of_two2つのテクスチャの非パワーを可能にするというOpenGL拡張機能があると聞きました。現在、この拡張機能と互換性のないカードはいくつありますか。また、どのようにロードしますか?

4

2 に答える 2

10

OpenGLバージョン2.0以降は、2の累乗以外のテクスチャをサポートします。これは、2005年頃以降に製造されたほとんどすべてのカードを意味します。これには、GeForceFXおよび6xxx以降が含まれます。また、Radeon 9500以降も含まれます(ただし、Radeon HDシリーズまで、RadeonsはNPOTにミップマップを含めることを許可していません)。

ところで、各キャラクターを別々のテクスチャに入れようとしていないことを願っています。それはパフォーマンスの観点からはひどいことになるからです。使用したいすべてのキャラクターを1つのテクスチャに入れ、必要なキャラクターを選びます。そのためにNPOTさえ必要ありません。

POTの使用に関するmrazzaのコメントについては、NPOTテクスチャを恐れることはありません(ハードウェアがそれをサポートできる限り)。パフォーマンスがわずかに低下する可能性があるため、最初の手段として使用することはできませんが、パディングや再スケーリングが不適切な明らかな場合(ターゲットのレンダリングなど)は、それらを使用することを恐れることはありません。 。

于 2011-06-15T08:25:25.030 に答える
2

一般に、これらの質問は、opengl仕様で回答されています。

ただし、NPOTテクスチャはかなり前にOpenGLに統合されていたため、これへの参照を見つけるために古いバージョンを調べる必要があります。3.0仕様では、たとえば、L.3付録で、NPOT拡張機能がGL2.0以降のGLコアに統合されていることがわかります。したがって、GL 2.0をサポートするすべての実装(2004年末以降のほぼすべてのPC GPU)がこの機能をサポートします。

それを「ロード」する方法については、何もする必要はありません。2の累乗以外のサイズをglTexImageに渡すだけです。

于 2011-06-15T08:26:04.993 に答える