タグ付けされた質問 「mipmap」

1
Metalではミップマップレベルはどのように計算されますか?
私の質問は、特にMetalに関するものです。なぜなら、別のAPIで答えが変わるかどうかわからないからです。 私がこれまでのところ理解していると信じているのはこれです: ミップマップされたテクスチャには事前に計算された「詳細レベル」があり、元のテクスチャを何らかの意味のある方法でダウンサンプリングすることで、より低い詳細レベルが作成されます。 ミップマップレベルは、詳細レベルの降順で参照されます。レベル0は元のテクスチャであり、高レベルはその2のべき乗の縮小です。 ほとんどのGPUは、トライリニアフィルタリングを実装します。これは、各サンプルの2つの隣接ミップマップレベルを選択し、バイリニアフィルタリングを使用して各レベルのサンプルを選択し、それらのサンプルを線形ブレンドします。 私がよく理解していないのは、これらのミップマップレベルがどのように選択されるかです。Metal標準ライブラリのドキュメントでは、lod_options型のインスタンスを指定してもしなくても、サンプルを取得できることがわかります。この引数はミップマップレベルの選択方法を変更するものと思われ、lod_options2次元テクスチャには明らかに3種類あります。 bias(float value) level(float lod) gradient2d(float2 dPdx, float2 dPdy) 残念ながら、ドキュメントではこれらのオプションが何をするのかわからない。bias()自動的に選択された詳細レベルにバイアスがかかると推測できますが、バイアスのvalue意味は何ですか?どの規模で動作しますか?同様に、どのように離散ミップマップレベルlodにlevel()変換されますか?そして、gradient2d()テクスチャ座標の勾配を使用するという仮定の下で動作する場合、その勾配をどのように使用してミップマップレベルを選択しますか? さらに重要なのは、を省略した場合lod_options、ミップマップレベルはどのように選択されるのかということです。これは、実行されている機能のタイプによって異なりますか? また、sample()関数のデフォルトのno-lod-options-specific操作がgradient2D()(少なくともフラグメントシェーダーで)次のようなことをすることである場合、単純な画面空間の派生物を利用するか、ラスタライザーおよび補間されたテクスチャ座標で直接動作しますか正確な勾配を計算するには? 最後に、この動作はデバイスごとにどの程度一貫していますか?古い記事(DirectX 9と同じ)は、複雑なデバイス固有のミップマップ選択について言及しましたが、新しいアーキテクチャでミップマップ選択がより適切に定義されているかどうかはわかりません。

2
異方性フィルタリング(AF)を把握する
最近、テクスチャフィルタリング、つまり最近傍フィルタリング、バイリニアフィルタリング、トリリニアフィルタリング、異方性フィルタリング、MIPマップ、RIPマップなどについて読んでいます。 高レベルの観点からは、異方性フィルタリングを除いて、これらの手法、動作方法、および存在する理由を理解できると思います。異方性フィルタリングは私を混乱させています。 カメラに対してある角度であるサーフェスをテクスチャリングする必要があるという問題を確認できますが、台形のフットプリントをサンプリングすることでこれをどのように解決できるかわかりません(結果は確認できます)。これはおそらく、台形のフットプリントがどのように計算され、テクスチャをサンプリングするために囲まれたテレックスがどのように重み付けされているかを理解していないためです。 Nvidiaによるこの記事では、「テクセルが台形である場合」または「異方性フィルタリングがミップマップの高さまたは幅をテクスチャの遠近歪みに対する比率でスケーリングする」という文を使用することで、さらに混乱します。台形テクセル?MIPmapのスケーリング?これはどういう意味ですか? AFとAFレベルの仕組みを理解するのを手伝ってくれませんか? 私の目標は、OpenGLまたはDirectX AFの実装ではなく、AFが高レベルの観点からどのように機能するかを理解することです。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.