2011-01-12 12 views
2

glTexParameterとフィルタリングに関するいくつかの質問がありますOpenGLとGLSLのglTexParameterとフィルタリング?

1)glTexParameter(具体的にはフィルタリング)を適用する際の有効範囲は何ですか?シナリオは次のとおりです。

  • テクスチャをバインドします。フィルタをLINEARに設定する
  • テクスチャをシェーダの「サンプラ1」に設定する
  • 別のテクスチャをバインドします。 1は線形になり、私はシェーダでテクスチャを使用する場合

を描くシェーダ

  • の「Sampler2」にテクスチャNEARESTへ
  • 設定されたフィルタを設定し、他は最寄のこと?または、彼らは最後に呼ばれたので、両方とも最も近いでしょうか?

    2)GLSLでフィルタリング方法を設定することはできますか?

  • 答えて

    5

    1)フィルタリングモードは、テクスチャオブジェクトのパラメータである。すなわち、フィルタリングモードは、フィルタモードを設定するときにアクティブであったテクスチャオブジェクトにのみ適用される。

    2)フィルタリングモードは、シェーダ全体の実行中に一定でなければならないサンプラのパラメータです。したがって、シェーダ内から変更することはできません。ただし、適用されたフィルタリングなしで個々のテクスチャレベルとサンプルに対処することは可能ですが、カスタムフィルタリングメソッドを実装するために使用できます(パフォーマンスはそれほど低下しません)。

    2

    同じことが私にも気になっていますが、あなたの投稿を見たときに、同じシェーダーで最も近い&の線を使用するという解決策を思いつきました。

    まず、テクスチャを線形に設定します。最も近いものが必要なときは、uvの位置をピクセルグリッドの中心に固定するだけです。線形補間の動作に基づいて、結果はちょうど最寄りのようになります。

    関連する問題