Download

HZBの仕組みと負荷の高さについてまとめました(2014 advent calender )

HZB-On-profile.jpg&stc=1

自身のブログにHZB(Hierarchical Z-Buffer)のアルゴリズムと処理負荷に関する簡単なまとめを作成しました。
GPU負荷を軽減する際、多くの人が真っ先に消すであろう、かわいそうな奴です。
【UE4】GPUコストの高いHZBとはどんな機能?@だらけ者だらけ](http://darakemonodarake.hatenablog.jp/entry/2014/12/17/000422)

わかりにくいところも多々あると思うので、ここで気軽に質問や意見などをしてください。
それらに答えると同時に、ブログの内容にも反映させていきます。
ブログ記事関係なく、HZBやオクルージョンカリングに対する議論がここでできると面白いかもしれませんね。

HZB SetupMipsについて

こんにちは!
ブログの方のコメント欄にも書いてしまいましたが、こちらのフォーラムの方が場としては良いのかな?と思い改めて併記致します。

疑問点:
GPU Profilerで出てくる「HZB SetupMips」というのは一体何者なんでしょうか?version4.12を使用しています。

GPUの50~70%近くも取られてしまいます。ダントツNo1で重たい処理です。ビジュアルが犠牲になってでも何とか最適化したいです。
海外のAnswerHubでも質問があったのですが、誰も答えられず終わっています。。。
https://answers.unrealengine.com/questions/431377/gpu-performance-tuning-of-hzb-setupmips-as-seen-in.html

もしお時間があれば、HZB SetupMipsについて教えて頂けるととても助かります!

すみません。某Discordに同様の質問があったので、お節介心でソースを追ってみたのですが(衝動的にスミオさんにTwitterで相談してしまった・・・大変失礼しました(汗))

まさにそのものの議論スペースがこちらにあったようなので、今後はこちらでコメントさせていただきます。どうぞよろしくお願いします。

そのログ(HZB SetupMips Mips:1…8 ~~~)が出ているソースコード箇所は、4.17.2だと
https://github.com/EpicGames/UnrealE…eOcclusion.cpp
のBuildHZB関数の後半のようです。
4.16系と比べると、少しここら辺に手が入ったようで、バリア命令が変な?(もしかしたらちゃんと考えてのことかもしれませんが)位置に来ているのが、気になりました。

ただ、AnswerHub見ると、4.12時代に同様の質問があって、
https://answers.unrealengine.com/que…s-seen-in.html

4.10.4->4.11.xのあたりで、ここら辺でバリア命令が使われだしたみたいです。
あえて使うということは、そのコストも想定した上でだと思うのですが、
そもそもHZBの構築自体軽い処理とは言えませんが、やはりバリア系はそれ自体重いので、ここら辺みなさんボトルネックとして結構気になっているとなると、なんとか改善する余地も残っているのかなぁ、と^^;

某所でご指摘いただいたのですが、 Unreal Engine Issues and Bug Tracker (UE-33448) の影響ではないかということで、なんか勝手に一人で騒いじゃった感じですね。すみません!