この記事の3行まとめ
- ロジカルビート、「【UE5】ランタイムでStaticMesh同士を結合してドローコールを削減しよう」と題した記事を公開
- 異なるスタティックメッシュを結合することでドローコールを削減する手法を紹介
- 「FMeshDescription」の活用によりランタイムでスタティックメッシュの結合が可能
ロジカルビートは2025年1月15日(水)、「【UE5】ランタイムでStaticMesh同士を結合してドローコールを削減しよう」と題した記事を自社ブログにて公開しました。
同記事では、Unreal Engine 5においてドローコール(※)を削減する手段の一例として、別々のスタティックメッシュを1つに結合する方法を解説しています。なお、使用環境はUnreal Engine 5.4.4。
※ 画面に描画を行う際にグラフィックスAPIを使用して画面に描画を行う際に呼び出す命令
技術ブログが更新されました!🖥️
ドローコールを減らす=パフォーマンスに直結する重要なポイントです。
実際にドローコール数を算出したうえで、UE5のランタイムで利用できるStaticMeshの最適化する手順を紹介します!https://t.co/D6iS6vIjSP
— 株式会社ロジカルビート (@logicalbeat_jp) January 15, 2025
同記事で紹介しているのは、同一のマテリアルが用いられている複数種類のスタティックメッシュを描画する場合におけるドローコールの削減手法です。
アンリアルエンジンでは、スタティックメッシュを描画する際、各セクション(※)に対してドローコールが実行されます。
※ メッシュの一部の領域を表すもの。1つのセクションに対して1つのマテリアルを割り当てられる
別々のスタティックメッシュを結合させることで、それぞれのスタティックメッシュにおいて同じマテリアルが割り当てられたセクション同士を1つにまとめ、ドローコールを削減できます。
異なる2つのスタティックメッシュ(画像左)を結合させ、1つのスタティックメッシュにしている(画像右)(画像はブログ記事より引用)
記事中では、異なる2種類のスタティックメッシュを「FMeshDescription」を活用して結合させる手順をソースコード付きで紹介しています。エディター上のみではなく、ランタイムでも利用できることが「FMeshDescription」の利点だと語られています。
異なる2種類のスタティックメッシュを別々に配置した場合(画像左)と、それらを結合させた場合(画像右)におけるドローコール数の比較。
各画像について「Mesh draw calls」の「Average」を比較すると、スタティックメッシュの結合前は13.28であるのに対し、結合後は9.63と数値が減少していることが確認できる(画像はブログ記事より引用)
詳細はロジカルビートのブログ記事をご確認ください。
【UE5】ランタイムでStaticMesh同士を結合してドローコールを削減しよう