2016-05-26 2 views
1

理論上、OpenGLは「2の累乗」のテクスチャについてはGL_TEXTURE_2Dを、「2のテクスチャの非累乗」についてはGL_TEXTURE_RECTANGLEを持っています。GL_TEXTURE_2Dの "non power of 2 textures"のパフォーマンスはどのくらいですか?

私は現代GPUがこの違いを気にかけているのか、これが過去の問題に過ぎないのかを知りたいと思います。言い換えれば、GL_TEXTURE_RECTANGLEの代わりにGL_TEXTURE_2Dを「2の非累乗」のテクスチャに使用すると、パフォーマンスの低下は現代のビデオカードですか?

+0

GL_TEXTURE_2Dを使って長方形のテクスチャを読み込もうとしたとき、最初に正しく読み込まれないことを覚えています。今はどうなっているのか分かりませんが、まだ同じです。 – Greffin28

答えて

2

https://www.opengl.org/wiki/NPOT_Texture

のOpenGL 2.0コア準拠のは、非パワー・オブ・2 GL_TEXTURE_2Dで(NPOT)テクスチャをサポートしています必要があります(最近のハードウェアは、OpenGL 4.4対応の可能性が最も高い)、少なくともだ任意のハードウェアを参照してください。

GL_TEXTURE_RECTANGLEと比較してパフォーマンスは...指定されていませんが、hwがサポートしていれば、それよりも遅い理由はわかりません。

パフォーマンスのために、2のべき乗テクスチャを使用するのと比較します。私はいくつかのオーバーヘッド(時間とメモリサイズの両方)を期待しています。なぜなら、hwが自然に2つのパワーを扱い、いくつかの注意を払わなければならないからです。いくら ?テストなしでは言うことはできません...しかし、現代GPUの能力を考えれば、NPOTを使うのはあまり心配しません。しかし、NPOTを使用して変換することがアプリケーションでは簡単ではなく、簡単に 'init'ステップとして実行すれば、私はそれを行うだけです。

関連する問題