透過処理エフェクトは、一般的に、ボリュメトリック、ボリュメトリックだが法線情報を持つのに十分な密度、およびサーフェスのいくつかのカテゴリに分類されます。これらにはそれぞれ異なるライティング テクニックが必要なので、マテリアルでは使用する透過処理のライティング モードを指定する必要があります。
Lit の透過処理は、ビュー フラスタムの周囲に配置された一連のカスケード ボリューム テクスチャを通じてほとんどのライティングを取得します。これにより、ボリューム内の任意のポイントのライティングを単一のフォワード パスで認識できるようになります。しかし、ボリューム テクスチャの解像度がかなり低く、ビューアからの限られた深度範囲しかカバーできないという欠点があります。
ボリュームは、スケーラビリティ レベルに基づいて異なる設定が可能な cvars を通じて構成されます。
- r.TranslucencyLightingVolumeDim は、デフォルトで 64 に設定されています。この値を 2 倍にすると、ライト ボリュームのコストが 8 倍に増加します。
- r.TranslucencyLightingVolumeInnerDistance のデフォルト値は 1500 です。この値を上げると、ライティング ボリュームの適用範囲が広がりますが、有効解像度は低下します。
- r.TranslucencyLightingVolumeOuterDistance のデフォルトは 5000 です。この値を上げると、ライティング ボリュームの適用範囲が広がりますが、有効解像度は低下します。
すべての可動ライト タイプからのシャドウ付きの直接ライティングが、透過処理をしたライティング ボリュームに注入されます。Light 関数も考慮されます。

透過処理マテリアルは、間接ライティング キャッシュ からディフューズ GI を受け取ります。オブジェクトの境界の中心にある 1 つのライティング サンプルのみが補間されます。たとえ大きなパーティクル システムであっても、オブジェクト全体に対して取得されるサンプルは 1 つだけです。境界の中心が変わった場合、間接ライティングは時間の経過とともに補間されるため、飛び出すことはありません。

左の球体は間接ライティング キャッシュを使用して Lit の透過処理が行われており、右の球体は Lightmass からのベイクされたライティングで不透明になっています。
ボリュメトリック エフェクト
シャドウをキャストする & セルフシャドウイング
透過処理は、不透明なワールドと、それ自体および Lit の透過処理を行ったアクタにシャドウをキャストできます。これはフーリエ オパシティ マップを使用して実装できます。これは、ブロッビー ボリュームからのシャドウイングには最適ですが、より不透明な形で半透明サーフェスでは深刻なリンギング アーティファクトが発生します。透過処理を行ったセルフ シャドウイングは、ポイント ライトとスポット ライトのライティング ボリュームを通過します。そのため、効果が非常に大きく密度が高い場合を除き、解像度が低いことが原因で表示されないことがよくあります。ただし、ディレクショナル ライトはピクセルごとに透過セルフ シャドウイングを実行し、はるかに高い品質を得られます。ディレクショナル ライトには、Subsurface (サブサーフェス) シェーディング モデルを使用して、ライティングありマテリアルのサブサーフェス シェーディングも備わっています。
透過セルフシャドウイングではオブジェクトごとのシャドウが使用されることから、境界が正確なユーザー指定の固定のパーティクル システム境界が必要です。この設定は、パーティクルの動きを作成し、カスケード ツールバーの [show bounds (境界を表示)] ボタンを 右クリック し、固定境界を生成できるダイアログを表示して行うのが一番簡単です。非常に大きなセルフシャドウイング パーティクル システムでは、シャドウマップがシステム境界をカバーするために引き伸ばされるため、シャドウマップの解像度が低下します。境界の表示を有効にして、境界が適切であることを確認します。これは、[Show (表示)] -> [Advanced (詳細)] -> [Bounds (境界)] から行えます。次に、エディタでエミッタを選択すると、バウンディング ボックスと球が描画されます。
|
|
静的シャドウイング
透過処理は、ライティング構築時に Lightmass によって生成される特別な静的シャドウ深度マップを通じて、固定ライト からの静的シャドウイングを受け取ることができます。
半透明サーフェス
反射キャプチャ
TLM_Surface マテリアルは、レベル内に配置された反射キャプチャからイメージ ベースの反射 (スペキュラ GI) を受け取ります。不透明マテリアルとは異なり、1 つの反射キャプチャのキューブマップのみが適用されます (ブレンドなし)。そのため、今のところ、オブジェクトが別の反射キャプチャに近づくと、ポップが発生してしまいます。キューブマップは、近くにあるのではなく無限遠な場所に存在するかのように適用されるため、サーフェスが大きく平らな場合、アーティファクトが発生する可能性があります。

左の球体は半透明、右の球体は不透明で、両方とも金属として設定されているため、ライティングの 100% がスペキュラ反射から生じます。
ピクセル単位の透過ライティング
ディファード レンダラでは、新しいフォワード シェーディング機能を半透明のサーフェスに使って、複数ライトからのスペキュラ ハイライト、および視差補正された反射キャプチャからのイメージ ベースの反射を受けることができます。
ピクセルごとの透過ライティングを有効にするには、ライティング モードを [Surface ForwardShading] に設定し、[Screen Space Reflections (スクリーン スペース反射)] が有効になっていることを確認します。

Thin Translucency
Thin Translucent シェーディング モードとマテリアル出力式によって、ライティングとシェーディングに正確に反応するティントまたは色付けされた透明性があるマテリアルなど物理ベースの透明性があるマテリアルを正確に表現することができます。透明性があるマテリアルは白いスペキュラ ハイライトを表示し、単一のパスでバックグラウンドを適切にティントします。


マテリアルで Thin Transparency 出力を有効にするには、[Material Details (マテリアル詳細)] パネルで以下の設定を行います。
画像をクリックすると、拡大表示されます。
- ブレンド モード:Translucent
- シェーディング モデル:Thin Translucent
- ライティング モード:Surface ForwardShading
過処理における色の透過率の調整には、マテリアル グラフで Thin Translucent Material 出力式ノードを使用するとよいです。
制限事項
- サーフェスに Lit の透過処理を行った場合、直接的なスペキュラ反射はありません。
- サーフェスに Lit の透過処理を行った場合、透過処理を行ったボリューム ライティング テクスチャを介してすべての直接ライティングを取得することから、解像度がほとんどのサーフェス マテリアル (ガラス、水) に必要となるものより低くなります。