Unreal Engine 4 で メッシュ デカール がサポートされるようになりました。 これにより、スタティクメッシュおよびスケルタルメッシュに追加した詳細に対して、別のサーフェス ジオメトリ上でディファード デカールのプロパティが使用できます。ディファード デカールはプロジェクションに依存するので、 投影先のサーフェスと一致しない時にシアおよび変形が生じる平面サーフェイス ディティールにほぼ限定されます。メッシュ デカールは、シンプルなプロジェクションを追わずに エッジの周囲をラップするジオメトリやスプライン メッシュと一緒に使用し、 キャラクターの外見を美しくします。
メッシュ デカールとマスク付きマテリアルの比較
メッシュ デカールは、透過ブレンド モードとディファード デカールを混ぜたものです。 不透明なジオメトリがレンダリングされた後、深部まではレンダリングせず、GBuffer または DBuffer の更新を行います。マスク付きマテリアルの使用とは対照的に、EarlyZ pass の負荷がなく、 シャドウあるいは適切なオクルージョンは得ませんが、その代わりマテリアルがソフトに変形します。
メッシュ デカールは、Deferred Decal アクタとは以下の点で異なります。
大きいディファード デカールの場合、正面向きと後ろ向きの描画コールをするので、描画コール数が減ります。
カバーするピクセルも減り、デカールの背面が平らな場合はカバーするピクセルがないのでかなり速くなります。
カスタム仕様の UV も使用できるので、より複雑なプロジェクションの実行が可能になります。
正しく法線マップ化したデカールをサーフェスの周りにラップする (またはスプラインに沿って伸ばす) ことができます。
コンテンツのオーサリング
コンテンツをメッシュ デカール ジオメトリとして使用するオーサリングは、すべてのモデル作成と一致しています。このジオメトリは (ディファード デカール アクタとは違って) プロジェクションに依存はしないので、 ジオメトリは影響を与えたいサーフェスの正面にあるだけで良いです。このことを踏まえた上で、この小さなオフセットの主要要因となる小さな深度バイアスが既にあるので、 デカール ジオメトリは下層のサーフェスには合わせますが、そこまでぴったり一致する必要はありません。さらに、デカールの境界をぼかすジオメトリを少し使うと、 マスク付きマテリアルでは実現できないデカール用の柔らかいトランジションを作成することができます。
|
|
---|---|
基本メッシュとデカール ジオメトリ (個々) |
合成したメッシュ |
ジオメトリには深度バッファ精度に限度があるため、 メッシュ デカールでの LOD あるいは長距離表示は難しいということも覚えておくと良いでしょう。ただしほとんどの場合は、メッシュを変更すれば解決しますし、 マテリアルに World Position Offset を使えばモデリング アプリケーションに戻らずにオフセットの調節ができます。
この例では、デカール ジオメトリは、基本メッシュに近すぎて、深度がオフセットを考慮できません。小さな負のオフセット値を使うと、ジオメトリを十分押し出すので、 下層のジオメトリと交わりません。
注記
DBuffer も non-DBuffer も同じコンテナを使用します。
レイヤー オーバーラップが多い場合は、アーティファクトを避けるために深度でソートします。
並列レンダリングはまだ組み込まれていません。この機能を広範囲に使用すると CPU 負荷を若干抑えることができます。
制限事項
マテリアル エディタ プレビューは表示されません。
アーティストはソート順序を指定しません。
タンジェント空間はまだサポートされていません。
Shader Overdraw/Overdraw 機能がついていません。
マテリアル エディタはベース パスの使用を前提としているので、正しい命令数は表示しません。
深度バイアスの調整が簡単ではありません。現在、上にあるサーフェスからメッシュのオフセットを使用するか、マテリアルの World Position Offset で調整しなければなりません。