Tore Lervik氏(@toreler)によるスクリーンスペースでメッシュブレンドが可能なUnreal Engine 5向けプラグイン「MeshBlend」のご紹介!
MeshBlend
MeshBlendはコントロール可能なメッシュのブレンドを可能にします。MeshBlendは、インディーからAAAタイトルまで、様々なアートスタイルと要件を持つ実際のプロジェクトでテストされ、使用されています。MeshBlendは幅広いシナリオをサポートし、優れたパフォーマンスで視覚的に美しい結果を提供します!
ゲーム、オフラインレンダリングのシネマティックス、Unrealでのバーチャルプロダクションの全てがサポートされています。MeshBlendの中核は、パフォーマンス、ビジュアルクオリティ、アーティストのワークフローのバランスです。
- 4種類のブレンドサイズをプリセット。それぞれ個別に調整可能
- 小規模プロジェクトからAAAまでの簡単なエディターワークフロー
- いくつかのメッシュをブレンドするか、プロジェクト内のすべてのメッシュをブレンドするか決定可能
- 優れたパフォーマンス!ハードウェアごとに異なる品質設定(低、中、高)
- AAAからインディーまで、複数の実際のプロジェクトでバトルテスト済み
- シーンレンダリングの直後にグローバルポストプロセスシェーダーとして実行。アップスケール、DoF、半透明、その他のPPエフェクトの前に。
- その他の作例
動作対象
- 不透明マテリアル(Surface、SSS、TwoSidedなど)
- NaniteとNanite Displacement
- デカールとメッシュデカール – デカールはメッシュの一部であるかのようにブレンドされます。
- スタティックメッシュ、ランドスケープ、スケルタルメッシュ、パーティクル – 不透明で深度を書き込むことができる限り。
- TAA、TSR、DLSS、FSR – あらゆるテンポラルAAソリューション、アップサンプリング、フレーム生成と連動。
- シーケンサー – 最良の結果を得るにはオーバースキャンを使用してください。
- 半透明の後に実行されるその他のエフェクト(ガラス、ポストプロセス効果、フォグ、DoFなど)
制限・パフォーマンスや実装面の特徴
- マテリアルAOチャンネルを使用しGBufferにデータを転送する実装
マテリアルが機能するには、深度をGBufferにレンダリングする必要がある - ❌マテリアルAOは使用不可になる(マテリアルAOを接続するとMeshBlendのデバッグビューにわずかなぼかしが表示されてしまう
- ❌静的ライティングは使用不可(動的ライティングのみ対応)
- ❌フォワードシェーディング非対応
- ❌パストレーシング&モバイルレンダーパス非対応:PPステージで必要なGBufferへのアクセスが不足していますため不可
- ❌半透明マテリアル:MeshBlendの後にレンダリングされる為MeshBlendの影響を受けない
- ❌ SingleLayerWater:これ以下にあるものは深度までレンダリングされません。(ただし、マテリアル自体は他のメッシュとブレンド可能)
- MeshBlendはスクリーン空間エフェクトな為、ブレンドされるメッシュの数には影響無しない
※シーン内のブレンドされたメッシュが5個でも500万個でも、パフォーマンスに大きな変動はありません。 - シェーダーコストは、平均的なPCで1440pのレンダリング解像度で約0.2~0.4ミリ秒
※オフラインレンダリングやハイエンドPCからXbox Series S/ローエンドPCまでを対象とした4つの品質プリセットが用意
このアプローチって仮想テクスチャ仕込んだりPixelDepth使ったりDitherでブレンドするような、他のブレンド方法よりも効率的な気がします。今後主流になることもあるのかな?Lumen&Nanite環境との相性はとても良さそう。
「MeshBlend」は個人向けが$119.99、プロ向けが$1,199.99でFabから入手可能です。
是非チェックしてみてください!
リンク
同系統技術のUnity版はこちら
コメント