2011-08-30 35 views
5

私はFfmpegを使用してOpenGLビデオプレーヤーを作成していますが、私のビデオはすべて2の累乗ではありません(通常のビデオ解像度なので)。それは私のnvidiaカードできめ細かいfpsで動作しますが、2の非累乗テクスチャをサポートしていないため、古いATIカードでは動作しません。2のべき乗のテクスチャはどれだけ効率的ですか?

これはNvidiaカードでのみ使用しますので、ATIの問題についてはあまり気にしませんが、テクスチャーが2の累乗であればパフォーマンスがどれだけ向上するのだろうかと思いました?それらを埋めていく価値がありますか?

また、それが価値がある場合は、それらを最も近いより大きな2の累乗にパディングする方法を教えてください。

答えて

3

動画プレーヤーを作成する場合は、glTexSubImage2D()を使用してテクスチャコンテンツを更新する必要があります。この機能を使用すると、ターゲットテクスチャのどこかに配置される任意のサイズの画像を供給できます。したがって、データポインタをNULLにしてからglTexImage()の呼び出しでテクスチャを最初に初期化し、次にデータを入力します。

2テクスチャの純粋なパワーのゲインは、使用するハードウェアによって大きく異なりますが、極端な場合は最大300%です。

+0

私はすでにglTexSubImage2D()を使用していますが、glTexImage2D()でテクスチャを初期化するときは2の累乗で作成し、glTexCoord2f()呼び出しでビデオのみを表示する必要があります"最大の効率のためにテクスチャの? –

+0

OpenGLの実装(GPUを読む)によって大きく異なります。最新のGPUはすべて、NPO2のパフォーマンスが非常に低い – datenwolf

関連する問題