0

glGenerateMipMap を使用してミップマップを生成でき、min_filter gl_linear_mipmap_linear を使用しています。

ミップマップがない場合、実際のテクスチャ サイズ (512x512) とほぼ同じサイズで表示するとテクスチャはきれいに見えますが (予想どおり)、縮小するとエイリアシング効果が表示されます (予想どおり)。

ミップマップを使用すると、実際のテクスチャ サイズ (512x512) とほぼ同じサイズで表示するとテクスチャがきれいに見え (予想どおり)、縮小してもエイリアシング効果は表示されません (予想どおり)。ただし、ミップマップのバージョンが使用できなくなり、エイリアシングに耐えられるほど、醜いぼやけたテクスチャが得られます。

ここで何が間違っているのでしょうか?生成されたミップマップがそのように見えるかどうか、または大きなミップマップを選択する必要があるときに小さすぎるミップマップが選択されているかどうかはわかりません。iOSのOpenGL ES 2.0でglGenerateMipMapを使用して実際に良い結果を得た人はいますか?

4

1 に答える 1

2

素敵なミップマップを生成するヒントを設定してみてください。これは、それらを生成するために使用されるフィルターに影響を与える可能性がありますが、効果は実装に依存するため、保証はありません。

glHint(GL_GENERATE_MIPMAP_HINT, GL_NICEST) 

また、テクスチャ サンプリング コードでロッド バイアスを設定することで、結果のぼやけに影響を与えることもできます。

最良の結果を得るには、この拡張機能がサポートされている場合、異方性を使用できます。拡大フィルターと縮小フィルターを設定して、これを実行します。

glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, 2.0);

2.0 の代わりに、最大異方性レベルを取得して、それ以下の値を設定できます。

glGetFloatv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &maxAniso);
于 2013-07-02T13:17:11.513 に答える