画面 (OpenGL ES 2.0) に同じ図形 (同じテクスチャ) をいくつか描画したいと思います。これらの数値は、拡大フィルターと縮小フィルターで異なります。そして、さまざまな状態のミップマッピング。問題は、任意の図の描画でミップマッピングを使用する場合 ( glGenerateMipmap() 関数を呼び出した場合)、ミップマッピング モードをオフにできないことです。glGenerateMipmap() を少なくとも 1 回呼び出すと、ミップマッピング モードをオフにすることはできますか?
1 に答える
glGenerateMipmap
小さいミップマップ画像のみを生成します (最上位の画像に基づく)。ただし、適切なミップマッピング フィルター モードを使用しない場合 (を介してglTexParamteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_..._MIPMAP_...)
)、これらのミップマップはフィルター処理に使用されません。したがって、テクスチャ ミップマップをフィルタリングしたくない場合は、GL_NEAREST
またはGL_LINEAR
縮小フィルタとして設定して、この特定のテクスチャに対して無効にします。同様に、呼び出さないglGenerateMipmap
ということは、ミップマッピングが行われていないという意味ではありません。可能なミップマッピング フィルター モード (新しく作成されたテクスチャのデフォルトでもあります) は引き続き使用されますが、ミップマップ イメージにごみが含まれている場合 (または、テクスチャが実際には不完全であり、実装定義の動作になりますが、通常は黒いテクスチャになります)。 .
同様glGenerateMipmap
に、レンダリングの前に各フレームを呼び出すべきではありません。テクスチャのベース画像を設定した後、一度呼び出します。前述のように、ミップマップ画像を生成しますが、それらは生成された後も消えません。ミップマッピングが実際に使用されるかどうかを決定するのは、テクスチャ オブジェクトのフィルター モードです。