UMG描画のドローコールについて

こちら調査にお時間いただき申し訳ございません。

まず、このDrawCallがまとめられるかどうかは残念ながらどこかに明示的に記されているわけではありません。現状は実装内容から判断していただくことになります。そのうえで、どの様な基準でまとめられるかをご説明させていただきます。

基本的に、UE4では、そのWidget内部で視覚的に重なりがない起きないと想定される場合、各子要素は同一レイヤーと扱われ内部でまとめられるバッチをまとめます。ですので、上記で上げて頂いたリストは内部でDrawCallがまとめられます。

〇親にした場合、ドローコールが集約されるウィジェット
・Scroll Box
・Vertical Box
・Horizontal Box
・Wrap Box
・Grid Box
・Uniform Grid Box

その上で、まとめられないWidgetについて各種説明させていただきます。

・Size Box
・Scale Box
・Safe Zone

上記3つのWidgetは小要素を一つのみもてることからDrawをまとめる処理が走りません。

・Widget Switcher

こちらは複数要素を入れられますが、描画されるものは一つを指定するのでこちらもDrawがまとめられることはありません。

・Overlay

こちらも画像を重ねることなどができるため、Drawがまとまることはございません。

・Canvas Panel

最後にCanvas Panelですが、こちらも好きにWidgetを配置し重ねることができるため、基本的にはDrawCallをまとめず、UMGエディタで設定したWidgetの前後関係に基づいて順に描画をいたします。ただし、プロジェクトセッティングにある、 Explicit Canvas Child ZOrderをONにすることで、ZOrderが同一のものを同一レイヤーとしてバッチをまとめる
ことができます。

249977-2018-07-21-09h01-19.png

しかし、その場合、CanvasPanel内部の各子供のZOrderを明示的に指定しないと前後関係が保証されなくなります。

ご参考になれば幸いです。