Dev:JA/Ref/Release Notes/2.80/EEVEE
目次
Blender 2.80: Eevee
Eevee は物理ベースの新しいリアルタイムレンダラーです。最終画像用のレンダラー、そしてアセット作成用の Blender のリアルタイムビューポートを駆動するエンジンの両方の働きをします。
以下のような多数の機能に対応しています。
- Principled(プリンシプル)BSDF
- 環境ライティングと HDRI
- スクリーンスペースの反射と屈折
- ライトプローブによる間接光源
- ソフト・コンタクトシャドウ
- サブサーフェススキャッタリングとボリュームレンダリング
- 被写界深度、カメラモーションブラー、ブルーム
詳細はこちらを参照してください。Eevee user manual(英文)
レンダー設定
マテリアル
Eevee のマテリアルは、現存のシーンを簡単にレンダリングできるよう、Cycles と同じシェーダーノードを使用して作成されます。これにより、Cycles ユーザーにとって Eevee は、最高のリアルタイムプレビューとなります。ゲームアーティストにとっては、Principled(プリンシプル)BSDF が多数のゲームエンジンで使用されているシェーダーモデルと互換性があります。
NPR
Eevee はどんな種類のノンフォトリアリスティックシェーディングも作ることができるよう、BSDF 出力から RGB カラーへの変換に対応しています。これは Shader to RGB ノードを使用します。
例えば、カラーランプを BSDF(を変換した)出力に適用することで、基本的なトーンシェーダーを作成できます。
ただし、この対応は PBR パイプラインを壊し、他のエフェクト(スクリーンスペース反射、スクリーンスペースアンビエントオクルージョン、サブサーフェススキャッタリングなど)を使用中の場合、結果が予測できなくなります。
透過
Eevee は Cycles とは違い、透過オブジェクトを別に処理します。これらはオブジェクト毎に前から後ろにソートされ、どのスクリーンスペースエフェクトの影響も受けません。
これは高速で、大抵の場合うまく動作しますが、単なる近似であり、いくつかのオブジェクト形状では結果がおかしくなります。精度を高めるには、マテリアル内の Alpha Hashed 透過を有効にし、十分なサンプル数を設定してノイズを減らすことで、正確な透過になります。
グローバルイルミネーション
Eevee はあらかじめ計算したライトプローブによる、グローバルイルミネーションに対応しています。
Light Probe(ライトプローブ)
- Irradiance Volumes(イラディアンスボリューム)は、間接光バウンス内のオブジェクトを照らすために、ディフューズの照明をキャプチャします。ライトマップの UV マッピングの必要がなく、さらにボリューム内で動くオブジェクトにも対応しています。
- Reflection Cubemaps(反射キューブマップ)は、周囲のオブジェクトの局所的な反射マップを作成します。これにより、反射を正確に(要はインドアのオブジェクトでアウトドアの空を反射しないように)できます。
- Reflection Planes(反射平面)は、反射したカメラ視点からのシーンをキャプチャします。これは静止している水面や、滑らかな床のような、光沢のある平面でのみ有効で、これらのオブジェクトの表面上の、 SSR(スクリーンスペース反射)によるぼやけた反射に役立ちます。
ライトキャッシュ
これらプローブの前処理は集約的に行われます。イラディアンスグリッドと反射キューブマップはキャッシュされ、さらに素早くリロードできるようファイルに保存されます。ライトキャッシュオプションはレンダー設定タブにあり、ライトキャッシュ自体はシーン毎に格納されます。
ワールドイルミネーション
ワールドライティングは自身のテクスチャにキャプチャされ、デフォルトでローカルプローブ内にない全オブジェクトに適用されます。この遠距離からの照明は間接照明として考慮されます。ワールドイルミネーションは一つのオブジェクトを照らすのに適しており、もっと複雑なシーンでは、ライトプローブの使用が必要になります。
ライティング
最先端のリアルタイムテクニックを駆使し、Eevee がエリアライトからのリアルなスペキュラ生成と、ディフーズの照明が可能になりました。
ソフトシャドウはシャドウマップのフィルタリングで対応しています。オプションでモデルの細部の影を生成するコンタクトシャドウも利用できます。
Volumetrics(ボリューメトリクス)
統一されたボリューメトリックシステムを使用することで、Eevee では吸収やシングルスキャッタリングなどのボリューメトリックエフェクトが利用できます。
ボリューメトリクスはランプに反応し、正しく影を落とします。統一システムになり、ボリューメトリックオブジェクトは適切にブレンドされ、光の透過も透過オブジェクトに適用されます。
Smoke/fire シミュレーションにも Principled Volume シェーダーと共に対応しています。
スクリーンスペースエフェクト
Eevee はアンビエントオクルージョンや反射、サブサーフェススキャッタリングのような、一般的なレイトレースエフェクトのリアルタイムの近似を作成するのに、スクリーンスペースの情報に依存しています。
Ambient Occlusion(アンビエントオクルージョン)
Ground Truth Ambient Occlusion (GTAO) を使用して計算し、間接光に適用しています。さらに、Bend Normal オプションで、最も遮蔽が少ない方向からのライティングのみになります。
反射と屈折
ローカルな内部反射を可能にするスクリーンスペース情報におかげで、両方が増強されています。また、スクリーンスペース反射では、Reflection Plane(反射平面)を平らな反射サーフェスに追加することで、欠けている情報を補うことができます。
Subsurface Scattering(サブサーフェススキャッタリング)
SSS はサーフェスディフューズライティングを SSS プロファイルを使用しぼかすことで行っており、Cycles が生成する物と近いです。これは SSS を実現する方法としては正しい物ではありませんが、非常に速く、高品質です。 このプロセスはスクリーンスペースで行われています。つまり、カメラから見えないサーフェスポイントから来る光は、SSS エフェクトに影響しないということです。これを直すには、シャドウマップを使用することで、例えば人の耳のような、後方から照らされる薄い面に見られるような SSS エフェクトが作成できます。
ポストプロセッシング
いくつかの基本的なポストプロセッシングパイプラインはすでにあります。これには OpenColorIO による色管理、被写界深度、モーションブラー、ブルームなどがあります。
Motion Blur(モーションブラー)
基本的なポストプロセスのカメラベースモーションブラーに対応しています。オブジェクト毎のオブジェクトモーションブラーと、デフォーメーションモーションブラーには未対応です。
Depth Of Field(被写界深度)
リアルタイムエンジンとして、Eevee はポストプロセスの被写界深度を使用し、ぼけをエミュレートする必要があります。現在のアルゴリズムは、浮動小数点数による誤差の制約があることに注意してください。
Bloom(ブルーム)
ブルームエフェクトはピクセルのリアルな明るさを、他の方法では失われていた光の散乱によって感じさせる物です。これは現実の写真撮影で、非常に明るい光源を捉えたときに起こる現象を模倣しています。
OpenColorIO
Eevee はすべてのシーンを、シーンが参照する色空間でレンダリングします。つまり、最終的な色の変換を、表示可能な色域に行う必要があるということです。これは Cycles への OpenColorIO の使用と同様で、Eevee も新しい Filmic ビュー変換に対応しています。
Eevee は OpenColorIO に対応し、シーンのリニア色空間でレンダリングし、Filmic などの物理ベースレンダリング用のビュー変換を適用しています。
制限事項
メモリの使用
Eevee は OpenGL を使用し、GPU のメモリ管理は OpenGL ドライバーが行っています。
セオリーでは、一つのオブジェクトで一度に GPU メモリに収める必要があるのは、必要なテクスチャとメッシュのみです。これは OpenGL が一度に一つのドローコール用のリソースのみ必要とするからです。よって、もしシーンが非常に重い場合、ドライバーはすべてのオブジェクトが正しくレンダリングされるよう、スワップイン・アウトを行います。
実際には、GPU ドライバは大抵の場合、ゲーム用のパフォーマンスに最適化されており、あまり重いシーンの処理を行うのには適していません。
あまり多くの GPU メモリを使用すると、GPU ドライバーがクラッシュやフリーズしたり、そのアプリケーションがキルされる可能性があります。Blender がこれを回避するのに、事前にリソースが十分かどうかを予測する方法はありません。そのため、やはり多くのメモリを使用しないよう、注意する必要があります。
GPU
OpenGL エンジンとして、Eevee は GPU のパワーのみでレンダリングしています。CPU(ソフトウェア)レンダリングへの対応は非常に非効率なため、予定にありません。それでも、ジオメトリやモディファイアーを各フレームのレンダリング前に CPU で準備しているため、今もなお CPU パワーは、非常に複雑なシーンを処理するのに役に立ちます。
その他の制限事項:
- マルチ GPU レンダリングには未対応です。Eevee は Blender の UI が使用するグラフィックカードを使用するでしょう。
- 現在ヘッドレスシステム(ディスプレイなし)には対応していません。ディスプレイがある時のバックグラウンドレンダリングには対応しています。
機能
まだ Eevee で利用できない Blender の機能があります。
- ライトのノードツリーなし。
- パノラマカメラなし。
- 未対応のシェーダーノード:Toon(トーン)BSDF、Velvet(ベルベット) BSDF、Principled Hair BSDF、Anisotropic(異方性)BSDF、OSL、Sky Texture。
- BSDF はリアルタイムパフォーマンスを達成すべく近似を使用しています。そのため、Cycles と Eevee とでは常に小さな違いがあります。
- メッシュ形状によるボリューム定義は未対応で、Smoke と World ボリュームのみです。