マテリアルウィンドウ(MaterialEditor)とレベルエディター(LevelEditor)を同時に開き、同時にVTを表示すると、一定の確率でレベルエディター側のVT Page Requestが無視されているような現象が発生し、テクスチャの内容が更新されず、表示が正しくなくなるようです。
デバッグ中にソースコードを確認したところ、マテリアルウィンドウ側のPage Request処理は常に同期実行(bAsyncTaskAllowed = false)で行われている一方、レベルエディター側では非同期実行(bAsyncTaskAllowed = true)になっていることに気づきました。この問題はマルチスレッド周りの処理に起因している可能性があると考え、r.VT.AsyncPageRequestTask 0 に設定して非同期実行を無効化したところ、問題の再現率が大幅に下がり、再現不能なレベルになりました。
再現手順
マテリアルウィンドウ(MaterialEditor)とレベルエディター(LevelEditor)を同時に開き、同時にVTを表示すると、一定の確率でレベルエディター側のVT Page Requestが無視されているような現象が発生し、テクスチャの内容が更新されず、表示が正しくなくなるようです。
この問題は、以下の条件下で再現しやすくなる傾向があります:
- VTの読み込みにより、Editor上のバーチャルテクスチャプールが自動的に拡張(Auto Grow)されるて、VirtualTexture全体がRecreateされる場合
- また、r.VT.MaxAnisotropy 7のようなコマンドを使用してVirtualTexture全体をRecreateさせた場合
お世話になっております。
本件に関して確認を行っておりますが、現状類似の報告を確認できておらず、また手元での再現が行えていない状態です。
(VTをアサインしたマテリアルと、そのマテリアルをアサインしたメッシュを含むLevelを開いた状態で、更新をかけるようなコマンド実行を実行した場合も挙動を確認できていない状態)
こちら最小限な再現プロジェクトをご用意頂くことは可能でしょうか?
お手数おかけしますが、よろしくお願いいたします。
ご確認ありがとうございます。
最小限な再現プロジェクトについては用意できるか確認いたします。