投稿者 tel | 2013年5月21日

ミップマップのバイアス

フラグメントシェーダでtexture2Dの引数にbiasを設定するとレンダリングされるときに使用されるミップマップのレベルを制御できる。

vec4 tex = texture2D(sampler, texcoord, 0.0);

ここで気になるのはbiasにどんな値を入れたらどのレベルのテクスチャが選択されるかである。

デフォルトのバイアスは0.0で、マイナスの値を入れると上位のレベル(解像度が高い)のテクスチャが選択され、プラスの値を入れると下位のレベルのテクスチャが選択される。

ビューポートサイズを400×400、ポリゴンサイズをスクリーン座標系で64×64にして試して見たところ以下の様な結果になった。

  • bias = 0.0 : 64×64のテクスチャが選択される
  • bias = 0.5 : 32×32のテクスチャ
  • bias = 1.5 : 16×16のテクスチャ
  • bias = -0.5 : 128×128のテクスチャ
  • bias = -1.5 : 256×256のテクスチャ

http://jsdo.it/sapphire_al2o3/mipmap-bias

感覚としては1レベル下げたい場合は1.0を入れて1レベル上げたい場合は-1.0を入れておけばいい?

どのテクスチャが選択されるかの詳しい式がOpenGL ES 2.0の仕様書の3.8.8に載っているみたいだが見てもよくわからなかった。
http://www.opengl.org/documentation/specs/version2.0/glspec20.pdf


コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

カテゴリー

%d人のブロガーが「いいね」をつけました。