Point
ディファ―ドレンダリングは透過処理が苦手です。それを補うために設定も細かくなっています。
フォグ
2つのタイプがありどちらも高さと奥行に応じてフェードアウトするしくみです。
ここでもピクセルシェーダーの処理が行われています。
- パフォーマンス Atmospheric > Exponentional (デフォルト設定上)
- 色のブレンド Exponentional > Atmospgeric
基本的にはAtmospheric Fogを使うのがおすすめです。パフォーマンスを最大限あげる必要がある場合は、プロジェクト設定でExponentional Fogを無効にすることもできます。
透過(Transparency)
ディファ―ドレンダリングは透過処理が苦手です。これはUE4に限らずどのエンジンでのレンダリングに当てはまることです。
そのため、透過処理はレンダリングの終盤に行います。また透過処理は難しいため、それを補うようにマテリアルの設定も細かくなっています。
どのような設定があるかマテリアルエディタをみていきましょう。
Transparency > Lighting Modeから確認できます。
1. VolumetricPerVertex Directional
- 〇クオリティまあまあ
- ×パフォーマンスやや低め
2. VolumetricPerVertex NonDirectional
- 〇パフォーマンスまあまあ
- ×クオリティやや低め
- アンビエントライティングの追加などを行う
3. Surface ForwardShading
- 〇クオリティが最も高い
- ×負荷が最も大きい
Volumetricとは
サーフェスあるいはメッシュを分割するという意味。UE4はメッシュを仮想的に分割する。実際のモデルには手を加えずレンダリング時に補足的に分割され、ライトのブレンドに使われる。レイヤーが重複するとさらに処理が重たくなる。
コストを最小限に抑えるには?
- 可能であればBlend ModeをTranslusentではなくMaskedにする。
- Translusentでなければならないのであれば、ビューモードをDefault LitではなくUnlitにする。
- 透過処理は本当に必要なときのみ使い、他に「それっぽく」表現できる方法があればそれを使う。
ケース1 : ディファ―ドレンダリングでどうしても透過処理のクオリティをあげたい場合は?
透過処理の一部をフォーワードレンダリングで処理し、マージするという方法がある。パフォーマンスに負荷はかかるが、クオリティはあがる。
参考: Rendering Master by Sjoerd De Jong at Unreal Academy