いつもお世話になっております。
表題の件について質問がございます。
LandscapeマテリアルをRVTからサンプルする際、通常テクスチャからサンプルする場合と比較して、特にグレージング角のテクスチャの表示が大きく劣化するという問題が起きています。
RVTからサンプルした場合に、なるべくグレージング角のテクスチャがぼやけてしまわないようにするには、どのような対策が考えられますでしょうか?
また、VTの異方性フィルタリングの有効化(r.VT.AnisotropicFiltering)も試したところ、こちらの設定を有効にするだけでは問題の解消に至らないようでした。
この問題が確認できるプロジェクトファイル(RVT_GrazingAngleTest.zip)を添付しておりますので、ご確認頂けますと幸いです。
以上、よろしくお願いいたします。
再現手順
起伏のあるLandscapeに、RVTからサンプルする設定をしたマテリアルを適用し、なるべくLandscapeをかすめるような角度からテクスチャを見ます。
サンプルプロジェクトでは、MIのパラメーターからRVT、VT、通常テクスチャの表示が切り替えられるようになっています。
お世話になっております。
本件サンプルプロジェクトを用意いただきありがとうございます。
現状今回のような問題に関してはRVTに対してMip biasを適用させることで改善することを確認しておりますが、
そのまま上げてしまうと全体のMipレベルが上がってしまい消費メモリの増加が問題となってしまいそうでした。
[Image Removed]そのため必要に応じてビューとの角度にStepを挟み、一部のみBiasをかける方法が検討できそうです。
[Image Removed]一度Biasをお試し頂きつつ、消費メモリ等の確認を含めて運用手法を検討いただけますと幸いです。
よろしくお願いいたします。
ご返答頂きありがとうございます。
ご紹介頂いた方法で、メモリを抑えつつ見た目の改善ができるか試してみようと思います。
Mip Biasとはまた別の方法になるのですが、質問にも記載させて頂きました通り、r.VT.AnisotropicFilteringというCVarを有効にしてみた際、期待したような異方性フィルター効果を感じることができませんでした。
こちらは本来どのような目的で使用する CVar なのでしょうか?
ご確認ありがとうございます
RVTにおいても、r.VT.AnisotropicFilteringを有効化していただくことで異方性フィルタリングは動作しておりますが、該当ページの使用しているmipの解像度により完全には綺麗にできていない状態、という認識です。
(以下画像を保存して切り替えていただくと分かりやすいかと思います。)
r.VT.AnisotropicFiltering 0
[Image Removed]r.VT.AnisotropicFiltering 1[Image Removed]
また少し分かりづらい挙動として、Anisoの強度はr.VT.MaxAnisotropyで変更可能となっておりますが、VTの場合は、この値でMipBiasをかける実装が含まれているため非常に大きな変化があります、
(r.VT.AnisotropicFilteringが0の場合でもこのBias処理がある状態です。)
void FAllocatedVirtualTexture::GetPackedPageTableUniform(FUintVector4* OutUniform) const
// Here MaxAnisotropy only controls the VT mip level selection // We don't need to limit this value based on border size, and we can add this factor in even if HW anisotropic filtering is disabled const uint32 MaxAnisotropy = VirtualTextureScalability::GetMaxAnisotropy(); const uint32 MaxAnisotropyLog2 = (MaxAnisotropy > 0u) ? FMath::FloorLog2(MaxAnisotropy) : 0u;
※以下でその変化の画像を添付しましたが、デフォルト設定値は8となります。
r.VT.MaxAnisotropy 0
[Image Removed]r.VT.MaxAnisotropy 4
[Image Removed]r.VT.MaxAnisotropy 8[Image Removed]以上のような対策が入っている状態ですが、さらに鮮明にさせるには追加でMipBiasをかける必要がある、という認識です。
お手数おかけしますが、上記の内容を元にご確認頂ければ幸いです。
よろしくお願いいたします。
Anisoの挙動につきまして、丁寧にご解説頂きありがとうございます。
確かにさらに鮮明にするには、最初にご提案頂いたマテリアル側でMipBiasをかける方法が有用そうです。
ご回答いただいた情報を元に検証を進めて参りますので、本件につきましてはクローズして頂ければと思います。
お忙しいところご対応頂きありがとうございました。