6.7 Anisotropic Texture Filtering(1)
• OpenGL は今のところテクスチャ
minification に等方性 (isotropic) フィルタ
6.7 Anisotropic Texture Filtering(2)
• minification
フィルタが等方性 だとfootprint
は黒い部分を囲 む正方形(
図上部)
•
この正方形とフラグメントのサイ ズが近いレベルを探すと•
レベルは1
以上であり•
フラグメントにはs
よりもt
方向の フィルタリングが多く必要だが同 じフィルタリング量が両軸に適用 される•黒い部分のフラグメントを考える
•右がテクスチャ
•理想的な footprintはテクスチャの黒い
6.7 Anisotropic Texture Filtering(3)
•
問題を回避するために テクスチャ生成時にt
方 向にさらなるフィルタリ ングを行い高さを半分 にする(
図下部)
• footprint
の大きさが 正方形に近くなりフラ グメントと同程度の大 きさになるので•黒い部分のフラグメントを考える
•右がテクスチャ
•理想的な footprintはテクスチャの黒い
部分に表示
6.8 Paging Textures(1)
• 高レベルのリアリズムをシュミレーションす るにつれてテクスチャメモリ量は劇的に増 加
• テクスチャメモリは有限で高価な資源
• アプリケーションは大きなテクスチャの一 部をフル解像度で表現したい要求がある
–
フライトシュミレータの例6.8 Paging Textures(2)
• すべての大きな画像をロードするより、テク スチャページングを用いてこれらの現象に 対応
–
視点に近い画像の一部分のみをテクスチャメ モリにキープ–
のこりの画像はシステムメモリやディスクに配 置–
視点が移動したときに、視点に近い部分の画6.8 Paging Textures(3)
•
これらの問題に対処するアプローチは2つ•
その11.
固定サイズのタイルにテクスチャを分割2.
タイルごとにテクスチャメモリにリロードしながら3.
タイルに対応するジオメトリを選択して描画•
実装が難しい• GL_LINEAR時に、ジオメトリがタイルの境界を
越えるとき、サンプリングが問題になる6.8 Paging Textures(4)
• その2
–
より賢い解決方法はテクスチャ座標のワー ピング•
すべてのテクスチャはシステムメモリに•
視野錐を定義して1.
現在の視野錐から見えるジオメトリを計算2.
見える部分のテクスチャ座標(s,t)
が0
から1になるよう にテクスチャ行列をセット3. GL_SKIP_PIXELSと GL_SKIP_ROWSで適切な領域
6.8.1 Texture Subloading(1)
• しかしこの方法では少し視点を移動しただ けでもテクスチャのリロードを行うため、テ クスチャ帯域の非効率な利用である
• テクスチャサブローディングを用いてパフォー
マンスを改善することができる
6.8.1 Texture Subloading(2)
• 地形をスムーズに移動する場合
–
テクスチャメモリの内容をすべてリロードする 代わりにインクリメンタルにアップデートできる–
一つ前のフレームの視点から消える部分に今回見える部分のイメージをリロード
• GL_TEXTURE_WRAP_S ,
GL_TEXTURE_WRAP_Tを GL_REPEAT ( デ
ドキュメント内
adv99_4.PDF
(ページ 53-61)