不可逆な毎日ブログ

2度と過ごすことのない毎日をつらつらと・・・

読み込んだ画像の品質

Bitmapを読み込んで表示するだけなのだが、気持ちぼけているように感じる。
Textureのサイズが2の累乗でなければならない、とか書籍やWeb上にもあるがどうも
これが原因ではなさそう。


テクスチャ フィルタリング

テクスチャ フィルタリング処理を実行するとき、使用するテクスチャは通常拡大または縮小される。
つまり、テクスチャは、それ自体よりも大きなまたは小さなプリミティブ画像にマッピングされる。
テクスチャの拡大によって、多数のピクセルが 1 つのテクセルにマッピングされることがある。
この結果、画像が粗くなることがある。
テクスチャの縮小では、多くの場合、単一のピクセルが多数のテクセルにマッピングされる。
この結果、画像が不鮮明になったり、ぎざぎざができることがある。
これらの問題を解決するには、1 ピクセルの色になるようにテクセル色のブレンディングを実行する必要がある。

きっとこれは、2の累乗でなければならないってことにつながるのかな。
ぴったりでない限りは、拡大、縮小は「必ず」されるのかな。

Direct3D では、テクスチャ フィルタリングの複雑な処理を簡素化する。
Direct3D では、線形フィルタリング、異方性フィルタリング、ミップマップ フィルタリングの
3 種類のテクスチャ フィルタリングを使える。テクスチャ フィルタリングを選択しない場合、
Direct3D では最近点サンプリングという方法を使う。

これだな。
現在は、

TextureFilter.Linear

を、何気にサンプルにあったので使用していたが、

TextureFilter.Anisotropic

に変更したところ、文字が欠けることなく表示された。
TextureFilter 列挙体 (Microsoft.WindowsMobile.DirectX.Direct3D)
異方性テクスチャ フィルタリング


MSDNのリンクは、いつも文字化けになる。