1

「GL_Texture_2D」を texture_target として使用して NPOT テクスチャを表示できない理由を理解するために、C++ の単純なアプリケーションを作成しています。ある時点で、いくつかのミップマップを生成する必要があるため、四角形のテクスチャを使用することはできません。

Win7 Pro (x64)、Intel i7-2600K CPU、8GB RAM、NVIDIA Quadro 600 を実行しています。私の Quadro のドライバーは 296.35 で、OpenGL 4.2 をサポートしています。

1 動作バージョン 「デフォルト」テクスチャを使用すると、スムーズに実行され、任意の NPOT テクスチャが表示されます。

glBindTexture( target = GL_TEXTURE_2D, texture = 0 )

2 壊れたバージョン 1 つ以上のテクスチャが必要なので、それらの「名前」を取得する必要があります。名前付きテクスチャをバインドし、glGenTexture を呼び出し、そのテクスチャを glBindTexture に使用しようとすると、白い四角形しか得られません。

glGenTextures(n = 1, textures = &2)
glBindTexture(target = GL_TEXTURE_2D, texture = 2)

ハードウェアが NPOT テクスチャをサポートしていることは確かです。openGL 拡張機能を確認したところ、「GL_ARB_texture_non_power_of_two」がリストされています。また、典型的な Windows バージョンの の代わりに and を使用しています。

nvidia フォーラムでもこの質問をしました。この投稿では、両方のログ ファイルを見つけることができます。

4

1 に答える 1

1

GL_TEXTURE_MIN_FILTERデフォルトはGL_NEAREST_MIPMAP_LINEARです。

ミップマップをアップロードするか、に切り替えGL_NEAREST/GL_LINEARます。

于 2012-06-15T15:17:55.413 に答える