制限

Eeveeのゴールは、インタラクティブなレンダリングエンジンになることです。一部の機能はまだ存在しないか、パフォーマンスを低下させることなくEeveeのアーキテクチャに実装することが不可能な場合があります。

これは、Eeveeを利用中に予想されるすべての制限のかなり網羅的なリストです。

Cameras(カメラ)

  • 現在、Perspective(透視投影)とOrthographic projections(平行投影)のみがサポートされています。

Lights(照明)

  • Eeveeがサポートできるアクティブライトはシーン内に128個までです。

  • 同時にサポートできる影ありサンライトは8つまでです。

  • 現在のところ、ライトは1つの色しか持てず、ライトノードツリーをサポートしていません。

Light Probes(ライトプローブ)

  • EeveeがサポートできるアクティブなReflection Cubemaps(反射キューブマップ)は128個までです。

  • EeveeがサポートできるアクティブなIrradiance Volumes(イラディアンスボリューム)は64個までです。

  • EeveeがサポートできるアクティブなReflection Planes(反射平面)は、ビュー錐台内で16個までです。

Indirect Lighting(間接照明)

  • Volumetrics(ボリューメトリック)は、Irradiance Volumes(イラディアンスボリューム)からのライトを受け取りませんが、ワールドのディフューズライトを受け取ります。

  • Eeveeは、 "Specular(スペキュラー)からDiffuse(ディフューズ)" のライトバウンスも"Specular(スペキュラー)からSpecular(スペキュラー)" のライトバウンスもサポートしていません。

  • ベーキング中は、すべてのSpecular(スペキュラー)照明がオフになります。

Shadows(影)

  • Eeveeがサポートできるアクティブライトはシーン内に128個までです。

  • 同時にサポートできる影ありサンライトは8つまでです。

Volumetrics(ボリューメトリック)

  • 単一散乱のみがサポートされています。

  • Volumetrics(ボリューメトリック)は、カメラの "レイ" に対してのみレンダリングされます。それらは反射/屈折およびプローブには現れません。

  • Volumetrics(ボリューメトリック)は、Irradiance Volumes(イラディアンスボリューム)からのライトを受け取りませんが、ワールドからのディフューズライトを受け取ります。

  • Volumetrics(ボリューメトリック)シャドウイングは、ボリューメトリックでのみ機能します。シーン内のソリッドオブジェクトに影を落とすことはありません。

  • Volumetrics(ボリューメトリック)シャドウイングは、ビュー錐台内のボリュームに対してのみ機能します。

  • Volumetrics(ボリューメトリック)照明は、ライトの形状を尊重しません。それらはポイントライトとして扱われます。

Depth of Field(被写界深度)

  • アルファブレンドされたサーフェスは、後処理ブラーでは正しく処理できませんが、サンプルベースの方法では正しく処理されます。このためには、 Max Size(最大サイズ) を0に設定して、後処理の被写界深度を無効にする必要があります。

Screen Space(スクリーンスペース) エフェクト

Eeveeはレイトレーシングエンジンではなく、レイと三角形の交差判定を行うことはできません。その代わりに、Eeveeは近似シーン表現として深度バッファーを使用します。これにより、シーンスケール効果の複雑さが軽減され、パフォーマンスが向上します。ただし、これらの効果を計算するときは、ビュー内にあるものだけを考慮することができます。また、深さ1のレイヤーのみを使用するため、最前面のピクセル距離のみがわかります。

これらの制限により、いくつかの問題が発生します:

  • スクリーンの境界に達すると、スクリーン空間のエフェクトは消えます。これは、 オーバースキャン 機能を使用して部分的に修正できます。

  • スクリーン空間のエフェクトには、詳細な情報(またはオブジェクトの幅)がありません。これが、ほとんどのエフェクトに、交差する可能性のあるピクセルを考慮する方法を制御するためのThickness(幅)パラメーターがある理由です。

  • ブレンドされたサーフェスは、これらのエフェクトによって考慮されません。これらは深度プレパスの一部ではなく、深度バッファーには表示されません。

  • Holdout(ホールドアウト)コレクション の一部がスクリーン空間のエフェクトでレンダリングされないオブジェクト。

Ambient Occlusion(アンビエントオクルージョン(AO))

  • オブジェクトは無限に厚いものとして扱われ、 Distance(距離) が本当に大きい場合は影が薄くなります。

Screen Space Reflections(スクリーンスペース反射)

  • 1つの光沢のあるBSDFのみがスクリーンスペース反射を放出できます。

  • 評価されたBSDFは、現在任意に選択されています。

  • Screen Space Reflections(スクリーンスペース反射)は、透明なオブジェクトとScreen Space Refraction(スクリーンスペース屈折)を使用するオブジェクトを反射しますが、1つのレイヤーの深度バッファーのために正確なポジショニングはありません。

Screen Space Refraction(スクリーンスペース屈折)

  • 1つの屈折イベントのみが正しくモデル化されます。

  • 屈折できるのは、不透明でアルファハッシュされたマテリアルのみです。

Subsurface Scattering(SSS)

  • 1つのBSSRDFのみがスクリーン空間のサブサーフェススキャタリングを生成できます。

  • 評価されたBSSRDFは、現在任意に選択されています。

  • 最大254の異なるサーフェスがサブサーフェススキャタリングを使用できます。

  • スケーリングのみがピクセルごとに調整可能です。個々のRGB半径は、ソケットのデフォルト値で調整可能です。

  • 各サーフェスからの入力放射輝度は、ブラー中に分離されないため、サーフェスからサーフェスへのライト漏れにつながります。

Motion Blur(モーションブラー)

Motion Blur((モーションブラー)) は最終レンダリングでのみ使用可能であり、3D Viewport(3Dビューポート)で、つまり Viewport Renders には表示されません。

Materials(マテリアル)

Refractions(屈折)

Refraction(屈折)は、Glossy BSDF(光沢BSDF)で使用されているのと同じ反射プローブをサンプリングすることによって偽造されますが、反射ビュー方向の代わりに屈折ビュー方向を使用します。最初の屈折イベントのみが正しくモデル化されます。2番目の屈折イベントの近似値は、Refraction Depth(屈折の深度)を使用して比較的薄いオブジェクトに使用できます。Screen Space Refraction(スクリーンスペース屈折)を使用すると、ビュー内に表示されているものが屈折し、ヒットがない場合は最も近いプローブが使用されます。

Screen Space Reflections(スクリーンスペース反射)とAmbient Occlusion(アンビエントオクルージョン(AO))はScreen Space Refraction(スクリーンスペース屈折)と互換性がありません。それらを使用するサーフェスでは無効になります。Screen Space Refraction(スクリーンスペース屈折)を使用するサーフェスは、適切な場所のScreen Space Reflections(スクリーンスペース反射)に表示されません。Screen Space Refraction(スクリーンスペース屈折)を使用するサーフェスは、Ambient Occlusion(アンビエントオクルージョン(AO))を他のサーフェスにキャストしません。

Volume Objects(ボリュームオブジェクト)

オブジェクトボリュームのシェーダーは、オブジェクトのバウンディングボックス全体に影響します。ボリュームの形状は、シェーダー内の手続き型テクスチャリングを使用して調整する必要があります。

Shader Nodes(シェーダーノード)

  • すべてのBSDFは、リアルタイムのパフォーマンスを実現するために近似を使用しているため、CyclesとEeveeの間には常に小さな違いがあります。

  • 一部のユーティリティノードはまだEeveeと互換性がありません(例、Sky Texture(大気テクスチャ)ノード)。

参考

サポートされていないノードの完全なリストについては、 サポートされるノード を参照してください。

メモリの管理

Eeveeでは、 GPU メモリ管理はGPUドライバーによって行われます。理論的には、1回の描画呼び出し(つまり1つのオブジェクト)に必要なテクスチャとメッシュ( "リソース" と呼ばれています)のみがGPUメモリに収まる必要があります。

したがって、シーンが非常に重い場合、ドライバーはすべてのオブジェクトが正しくレンダリングされるように、メモリの入れ替えをします。

実際には、GPUメモリを使いすぎると、GPUドライバーがクラッシュしたり、フリーズしたり、アプリケーションが強制終了したりする可能性があります。だから注意してください。

リソースがGPUメモリに収まるかどうか、および/または、GPUがリソースを正常にレンダリングするかどうかを見当する標準的な方法はありません。

CPU レンダリング

ラスタライズエンジンであるEeveeは、 GPU の能力のみを使用してレンダリングします。 CPU (ソフトウェア)レンダリングは非常に非効率的であるため、サポートする予定はありません。各フレームをレンダリングする前にジオメトリをCPUが準備する必要があるため、シーンの複雑さを処理するにはCPUパワーが必要です。

マルチGPUサポート

現在、複数の GPU システムはサポートしていません。

ヘッドレスレンダリング

現在、ヘッドレスシステム(つまり、ディスプレイマネージャなし)でEeveeを使用することはサポートしていません。