2

このコードを使用して、ミップマップを使用するかどうかを切り替える画像を使用します。

if ( tex->hasMipMaps ) {
            glTexParameteri ( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR );
            glTexParameteri ( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR_MIPMAP_LINEAR );
        }
        else {
            glTexParameteri ( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR );
            glTexParameteri ( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );
        }

ただし、これは発生します。 ここに画像の説明を入力してください

テーブルはミップマップなしでレンダリングされますが、レジスタテクスチャコードを次のように変更すると:

   // if ( tex->hasMipMaps ) {
                glTexParameteri ( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR );
                glTexParameteri ( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR_MIPMAP_LINEAR );
            //}
            //else {
            //  glTexParameteri ( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR );
            //  glTexParameteri ( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );
            //}

結果は次 ここに画像の説明を入力してください のとおりです。ミップマップは機能しますが、フォントテクスチャが欠落しています。モデルなどのミップマップを使用するテクスチャと、フォント、パーティクルなどのミップマップを使用しないテクスチャの両方をレンダリングする方法はありますか?一部の状態を切り替えるには、glTexParameteriを呼び出す必要がありますか?

4

1 に答える 1

1

ミップマップの完全なセットを持たないテクスチャ オブジェクトは、(一般に) ご覧のように白くレンダリングされます。

一部のテクスチャにミップマップがない場合は、メッシュごとのレベルでミップマッピングを有効/無効にする必要があります (メッシュごとに 1 つのテクスチャを想定)。

于 2012-12-16T19:39:35.653 に答える