2

画面 (OpenGL ES 2.0) に同じ図形 (同じテクスチャ) をいくつか描画したいと思います。これらの数値は、拡大フィルターと縮小フィルターで異なります。そして、さまざまな状態のミップマッピング。問題は、任意の図の描画でミップマッピングを使用する場合 ( glGenerateMipmap() 関数を呼び出した場合)、ミップマッピング モードをオフにできないことです。glGenerateMipmap() を少なくとも 1 回呼び出すと、ミップマッピング モードをオフにすることはできますか?

4

1 に答える 1

3

glGenerateMipmap小さいミップマップ画像のみを生成します (最上位の画像に基づく)。ただし、適切なミップマッピング フィルター モードを使用しない場合 (を介してglTexParamteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_..._MIPMAP_...))、これらのミップマップはフィルター処理に使用されません。したがって、テクスチャ ミップマップをフィルタリングしたくない場合は、GL_NEARESTまたはGL_LINEAR縮小フィルタとして設定して、この特定のテクスチャに対して無効にします。同様に、呼び出さないglGenerateMipmapということは、ミップマッピングが行われていないという意味ではありません。可能なミップマッピング フィルター モード (新しく作成されたテクスチャのデフォルトでもあります) は引き続き使用されますが、ミップマップ イメージにごみが含まれている場合 (または、テクスチャが実際には不完全であり、実装定義の動作になりますが、通常は黒いテクスチャになります)。 .

同様glGenerateMipmapに、レンダリングの前に各フレームを呼び出すべきではありません。テクスチャのベース画像を設定した後、一度呼び出します。前述のように、ミップマップ画像を生成しますが、それらは生成された後も消えません。ミップマッピングが実際に使用されるかどうかを決定するのは、テクスチャ オブジェクトのフィルター モードです。

于 2013-03-18T15:58:04.010 に答える