Eevee の使い方
バージョン 4.2 以降の Eevee は Eevee の使い方(バージョン 4.2 以降)を参照。
Eevee は Cycles と同じ物理ベースのレンダラーだ。ただしパストレーシングの Cycles と違って、Eevee はゲームエンジンで使われるラスタライズ法でレンダリングされる。パストレーシング(Cycles)では自動的に処理されるような表現の一部は、ラスタライズ法(Eevee)ではユーザーが明示的にセットアップする必要がある。
この記事ではバージョン 2.83 LTS 以降を対象としている。
Blender Cycles vs. Eevee - 15 Limitations of Real Time Rendering in Blender 2.8
目次
サポートするGPU
Supported GPUs in Blender 2.80
Eevee の実行には OpenGL 3.3 以降をサポートする GPU が必要になる。しかし古い GPU は OpenGL 3.3 以降をサポートしていても、ドライバー等のバグのため正しく動作しないことがある。Blender 2.80 では OpenGL 3.3 のサポートに加え、以下の条件を満たした GPU のみサポートする。
macOS
macOS 10.12(Sierra)以降。
NVIDIA
GeForce 200 シリーズ以降、テスラアーキテクチャの Quadro 以降で、OS は Windows と Linux のみサポート。
AMD
HD 7000(第1世代 GCN)以降で、OS は Windows と Linux のみサポート。TeraScale アーキテクチャの HD 2000~6000 は Windows での動作が不安定なのでサポートリストから外されることになった。
Intel
Haswell 以降。製品名だと、Celeron 29xx/G18xx, Pentium 35xx/G3xxx, 第4世代Core i3/i5/i7 4xxx。対応GPU_Graphics_4200%EF%BD%9E5200)(英語)。
パスのプレビュー
3Dビューのシェーディングがレンダーかマテリアルプレビューのとき、AO・法線・ミスト・直接サブサーフェス・サブサーフェスカラーをプレビューできる。
フィルム
フィルターサイズ
Eevee のレンダリング結果はジャギーが出るので、画面全体をぼかしてジャギーを目立たなくする必要がある。このぼかしの量を決めるのがフィルターサイズだ。
背景の透過
フィルムの透過にチェックを入れる。
オーバースキャン
Eevee のエフェクトのほとんどはレンダリングされた画像を加工し合成することで生成される。しかしこのスクリーンスペースエフェクトは画面端で正しい結果にならないことがある。「プロパティパネル > レンダー > フィルム > オーバースキャン」にチェックを入れると、これを解消できる。ただし、より高い解像度でレンダリングすることになるのでパフォーマンスは悪化する。
アンビエントオクルージョン(AO)
Cycles はオブジェクト間の距離に基づいて暗さを決定するが、Eevee はカメラからの距離(深度バッファ)を使って暗さを決定する。Eevee の AO は後ろに隠れているオブジェクトや遠くのオブジェクトの影響を考慮しないため、Cycles に比べてグラデーションが小さくなる傾向にある。
バージョン 2.93 で、暗くなりすぎる問題の修正とパフォーマンスの向上を含む AO アルゴリズムの変更が入った。
レンダータブのアンビエントオクルージョン(AO)にチェックを入れると、AO ノードで AO の情報を取得できる。
外部リンク
Eevee は AO のアルゴリズムとして Ground Truth Ambient Occlusion(Practical Realtime Strategies for Accurate Indirect Occlusion(pdf))を採用している。GTAO はスクリーンスペースエフェクト特有の制限はあるものの、レイトレースの結果と一致する AO を計算できる。
ブルーム
発光エフェクトを追加する。ブルームの強度は調整範囲が狭いので、放射ノードの強さで明るさを調整する。
tips
放射ノードの強さには 100 や 1,000 のような大きい値を入力できる。
発光体の彩度を上げすぎないようにする。発光体は露出オーバーにより白飛びするが、彩度が高すぎると白飛びせずに発光体に色が付くことがある。
オブジェクトモーションブラー(2.90)
シャッターでボケの量をコントロールする。数値が大きいほどぼける。EEVEE のモーションブラーは影はぼけないので、影がオブジェクトの近くにあると不自然になる。
鏡面反射
反射平面
鏡のような平面の反射は「ライトプローブ > 反射平面」を使えば表現できる。実際に反射させるには、反射平面の位置に平面ポリゴンを配置し、平面ポリゴンに粗さ(Roughness)を0にした光沢BSDFをつける。プリンシプルBSDFのメタリックを1にして、粗さを0にすることでも可能。
反射平面は平面にしか使えないが、反射キューブマップやSSRより正確かつリアルタイムの反射ができることが強みだ。SSR と組み合わせるとより正確になる。
欠点
反射平面の数だけレンダリング回数が増えるので負荷が高い。
SSS の反射・SSR の反射・ボリューメトリックスの反射・合わせ鏡はサポートされてない。
メッシュの反射
Eevee は平面でないオブジェクトの正確な鏡面反射は計算できない。代わりに球もしくは箱で反射を近似するかスクリーンスペース反射エフェクトかのどちらかが使える。スクリーンスペース反射エフェクトは動くオブジェクトや動く光源によるシェーディングの変化も反射できるが、スクリーンに映っていないオブジェクトは映らない。反射キューブマップはスクリーンに映っていないオブジェクトも反射できるが、リアルタイムで動くものは反射できない。
スクリーンスペース反射エフェクトは動画向け、反射キューブマップは背景やスチル向けだ。
反射キューブマップ(Reflection Cubemap)
反射するメッシュの位置に 反射キューブマップを配置してベイクすると、近似された反射が写るようになる。この例ではスザンヌのマテリアルにメタリックを1にしたプリンシプルシェーダを使っている。
反射キューブマップはスクリーンスペース反射(Screen Space Reflection)と同時に使える。
スクリーンスペース反射エフェクト(Screen Space Reflection 以下 SSR)
SSR はスクリーンスペース反射にチェックを入れると使える。制限はあるが 反射キューブマップよりも正確に反射できる。
SSR はスクリーンに映っている物しか反射しないことに注意。加えて SSS・ボリューメトリック・スクリーンスペース反射・スクリーンスペース屈折は映らない。ただし環境テクスチャは映る。
異方性
Eevee で異方性はサポートされていない。以下の方法で似た効果が得られる。
I have prepared an image for you. I'm sorry. I exaggerated a little. My material is not physically correct.
— Studio GANMA© [含真] (@fu1002) October 8, 2019
The four textures combine to look physically correct. I made this because the material of "Anisotropy BSDF for Cycles" doesn't look real for me. pic.twitter.com/IzKib453Dh
透過・屈折
透過(Transparency)
シェーディングあり
シェーディングありの透過はプリンシプル BSDF を使うと簡単だ。アルファを設定してブレンドモードをアルファブレンド・アルファクリップ・アルファハッシュのどれかに設定する。影にもアルファを適用するには、影のモードをアルファクリップかアルファハッシュにする。
シェーディングなし
シェーディングが不要な場合はブレンドモードをアルファブレンド・アルファクリップ・アルファハッシュのどれかに設定して、ベースカラーを黒に、スペキュラーを0に設定する。
透過(Transparent)ノードをミックスする方法もある。
放射消し
Cycles に切り替えたり、イラディアンスボリュームを使ったりする場合、影が放射で照らされてしまう。これを無効にするには、ライトパスノードのカメラレイか? を使う。
Eevee のブレンドモード
アルファブレンド
アルファブレンドはカメラから見て奥から手前に向かう順番にレンダリングされる。透過オブジェクトの制限数に達すると残りの透過オブジェクトはレンダリングされない。手前のオブジェクトがレンダリングされないのでこれはすぐに気付く。
アルファブレンドは深度バッファに深度を書き込まないので、それらを使うエフェクト(コンタクトシャドウやアンビエントオクルージョン等)が発生しない。ただしイラディアンスボリュームは機能する。
アルファハッシュやアルファクリップと比較してレンダリング負荷が高い。
アルファハッシュ
アルファハッシュはカメラから見て手前から奥に向かう順番にレンダリングされる。透過するかしないかのどちらかしか選択できない。ランダムな閾値を超えたときのみ透過される。この方法はノイズが乗るが、アルファクリップにあるいくつかの問題を回避できる。ノイズはサンプル数をあげることで減少させられる。
アルファクリップと同様に高速だが、品質を上げるためにサンプル数をあげるとレンダリング負荷が上がる。
外部リンク
Hashed Alpha Testing - NVIDIA Developer(pdf)
アルファクリップ
アルファクリップはカメラから見て手前から奥に向かう順番にレンダリングされる。ブレンドはできず、透過するかしないかのどちらかしか選択できない。アルファクリップは、遠景メッシュのテクスチャに解像度の低いミップマップが適用されると、メッシュの多くが消える欠点がある。この欠点を回避するにはアルファハッシュを使う。
ほかのふたつの方法に比べて最もレンダリング負荷が低い。
加算合成と乗算合成
加算合成と乗算合成はブレンドモードをアルファブレンドにして、以下のノードを使うことでそれらを表現できる。
ホールドアウト
透過するにはフィルムの透過にチェックを入れる必要がある。
透過マテリアルの描画順序問題
不透明オブジェクト(アルファハッシュ・アルファクリップを含む)は原点を基準にソートされ、カメラから見て手前のオブジェクトから順に描画される。オブジェクト内に複数のマテリアルがあるときは上から順に描画される。
アルファブレンドマテリアルはオブジェクトの原点を基準にソートされ、カメラから見て奥のオブジェクトから順に描画される。
バージョン 2.80 の Eevee ではピクセル単位・ポリゴン単位のソートはサポートしていない。
パーティクルで透過オブジェクトを大量(1,000以上)に出現させる場合、描画順によっては意図した結果にならない。このようなエフェクトを正しくレンダリングしようとすると、ソート負荷とレンダリング負荷とが高くなりすぎる。
そのようなエフェクトが必要な場合はアルファハッシュ・アルファクリップ・アルファブレンドの加算・アルファブレンド乗算が使える。加算や乗算のブレンドモードはレンダリング順序に依存しない。
ガラスのレンダリング
ポリゴン単位でメッシュをソートできないので、ガラスコップのような透明なオブジェクトをレンダリングすると、視点によってはレンダリング結果がおかしくなる。そのようなオブジェクトをレンダリングする場合は「裏面の非表示」オプションにチェックを入れる。
屈折(Refraction)
Eevee の屈折は法線と厚みとの情報からオブジェクト後方の画像をゆがませることで実現している。入射光がオブジェクト内で反射しているわけではないので、複雑な形状では Cycles とまったく異なるレンダリング結果になる。
設定
屈折を表現するにはプリンシプルシェーダの透過を1にして、マテリアルのスクリーンスペース屈折とレンダータブの「スクリーンスペース反射 > 屈折」とにチェックを入れる。
これもスクリーンスペースエフェクトなのでスクリーン上に映っていない物は映らない。ただし環境テクスチャは映る。
皮下拡散(Subsurface Scattering 以下 SSS)
Eevee の SSS はオブジェクトの厚みと法線とを利用して皮下拡散を近似している。ただしやっていることは、スクリーンスペースでディフューズ色をぼかしているだけだ。これは人肌のように控えめに使われる場合にはうまく働く。ただし厚みの薄い場所ではディティールが潰れやすい。
Eevee の SSS は影付きの光源でしか機能しない。間接照明も SSS に影響しない。
設定
Subsurface Scattering ノードを使うかプリンシプル BSDF の Subsurface ソケットに値を入力するかして、マテリアルのサブサーフェスの透光にチェックを入れる。
Subsurface Scattering ノードよりもプリンシプル BSDF の方が SSS の調整はやりやすい。
外部リンク
Separable Subsurface Scattering
頂点空間表面下散乱(VSSS:Vertex Space Subsurface Scattering)
間接照明・放射
Eevee は間接照明の情報をイラディアンスボリュームにベイクすることで大域照明(Global Illumination)を実現している。この方法は欠点が多い。適切な位置に間接照明を表現するエリアライトを配置する昔ながらのテクニックが有効かもしれない。
照明情報がベイクされているため、Eevee の大域照明はアニメーションしない。
ベイクの精度を高くするために イラディアンスボリュームの解像度を上げると、ベイクの時間が長くなる。イラディアンスボリュームの解像度は高すぎても低すぎてもアーティファクトが出る。
キャッシュされる間接照明は視点から独立しているものに限られる。なので反射平面の情報はキャッシュされない。
キャッシュされるオブジェクトは現在のビューレイヤーにありレンダーで有効なオブジェクトに限られる。ビューポートで可視だがレンダリングされないオブジェクトはキャッシュされない。
巨大なシーンではベイク結果を使った再計算を行うため、複数回ベイクが実行されることがある。
バージョン 2.80 の Eevee はレンダリング時のフレーム単位での間接照明の再計算はサポートしてない(スクリプトを使わない限り)。将来のバージョンでこの制限は解除される予定だ。
放射(Emission)やライトがほかのオブジェクトを照らしたり、ほかのオブジェクトが反射した光を表現するためには「ライトプローブ > イラディアンスボリューム」を配置する必要がある。
間接照明を計算するにはレンダータブで「間接照明をベイク」を押す。変更時に自動的に再計算してほしいときは自動ベイクにチェックを入れる。自動ベイクが有効な場合、ちょっとした変更で何度もイラディアンスボリュームが再計算される。なのでイラディアンスボリュームの調整が終わり次第すぐに 自動ベイクのチェックを外した方がいい。
スクリーンスペース大域照明アドオン
Screen Space Global Illumination for Eevee | Addon
Blender をカスタムしたバージョンと、アドオンバージョンがある。カスタムバージョンはシェーダで書かれており、より高性能だ。
アドオンバージョンについて
IBL のようなワールドライティングの影響が強い場合は、Darken Direct Lighting の値を小さくすることで対処できる。
メタリックでない低ラフネスのマテリアルは SSR による反射が写るが、バージョン 0.1.1 のこのノードを使うとそれが消えるバグがある。
実装について
このアドオンは SSR を無効にすると機能しない。おそらく光沢 BSDF のような SSR の色が拾えるノードを合成して、拡散反射をシミュレートしている。
ノードで SSR の色のみを抽出する方法がないので、ワールドライティングの影響を完全に除去できない。SSR の実装があれば SSGI を実現するのは難しくないので、要望が多ければシェーダで書かれたオフィシャルの SSGI が実装されるかもしれない。
注意事項
バージョン 2.83 では、反射プローブの実装が八面体マップからキューブマップへ変更された。なのでバージョン 2.82 以前のバージョンでベイクされたライトキャッシュはバージョン 2.83 で再ベイクする必要がある。またバージョン 2.83 以降でベイクされたライトキャッシュはそれ以前のバージョンではロードできない。
イラディアンスボリュームはアニメーションしないため、アニメーションするキャラクターやオブジェクトの情報はベイクしてはならない。
イラディアンスボリュームのサンプルポイントがポリゴンの内部に入らないよう注意する必要がある。そのような点の周辺ではオブジェクトが必要以上に暗く表示される。これを避けるためには複数のイラディアンスボリュームを配置するしかないが、イラディアンスボリュームの継ぎ目のシェーディングが不自然になるデメリットがある。
ライトでなくメッシュの放射を大域的な光源として使うのは推奨できない。Eevee の放射はイラディアンスボリューム内しか照らさないからだ。イラディアンスボリュームが巨大だとその解像度も上げる必要があり、キャッシュの計算に待たされることになる。
イラディアンスボリュームを使っても放射オブジェクトは影を作らない。ラスタライズ法は影の生成にシャドウマップという、光源ごとに影生成用テクスチャを使う方法がよく使われる。シャドウマップで放射の影を生成するとポリゴン一枚ごとにテクスチャを割り当る必要があり、メモリが不足する。
ボリューメトリック(Volumetric)
God Ray のようなエフェクトなら Cycles より Eevee が得意だ。正確ではないがレンダリングは高速でノイズがまったくない。3D テクスチャを使ってリアリティをあげることもできる。
ただし Eevee は厚みのある煙や炎のような光を発するエフェクトは苦手だ。
バージョン 2.91 からはボリュームオブジェクトにボリューム変換(Mesh to Volume)モディフィアを追加することで、メッシュ形状のボリュームを作成できる。
設定
プリンシプルボリュームノードを使うのが簡単だ。ボリューメトリックノードはマテリアル出力のボリュームソケットにつなぐことに注意。ボリュームの形は密度を設定することで変形できる。
tips
You may want to change the volume "Start" and "End" properties to fit the scene better. The volumes are rendered as a lot of slices through the scene at intervals (1 for each sample), but if the start is too low then lots are wasted near the camera. pic.twitter.com/CsnAjaMDVP
— Late as usual (@lateasusual_) August 13, 2021
Volumetrics の Start, End を適切に設定すると、解像度が上がる。
外部リンク
雲テストたくさん見ていただきありがとうございます!☁☁
#b3d https://t.co/NACh2nUOqY pic.twitter.com/TVHN3YPh9Y— 38912 DIGITAL 三宅智之 (@38912_DIGITAL) May 30, 2021
サクッとレシピ作りました。ぜひBlenderで自分の雲を作ってみてください !!
More realistic Eevee renders with Gobos? Adding Light Textures is not possible in Eevee, but we can get the same result using “gobos”, and even use it for beautiful volumetric effects! #blender #b3d pic.twitter.com/5WHdvhlhKx
— Jan van den Hemel (@JanvandenHemel) October 27, 2021
Procedural Cloudscape Generation in Cycles (now Eevee!)
Advanced Nebulae in EEVEE (Blender 2.8)
セルシェーディング
シェーダーからRGBへ(Shader to RGB)ノードを使う。一部のスクリーンスペースエフェクトは反映されない。環境テクスチャやスクリーンスペース屈折(Refraction)、SSAO はシェーダーからRGBへノードで処理できる。そのほかのセルルックエフェクトはEevee のセルルック技法まとめを参照。
シェーダーからRGBへノードは Cycles では使えない。
被写界深度
バージョン 2.93 でアルゴリズムが変更され、高速化されたうえ、サンプル数を上げた場合はレイトレースの被写界深度と同じ結果になる。
被写界深度を有効にするにはレンダータブの「被写界深度」にチェックを入れる。被写界深度の設定はカメラで行う。ボケの量を増やすには F 値(F-stop)の値を小さくする。ピントの位置は適当なエンプティを配置して、焦点のオブジェクト(Focus on Ojbect)を設定する。
ビューポートで被写界深度エフェクト
ビュー > カメラ設定 > アクティブカメラ(Numpad 0)でカメラからの視点に切り替え、サイドバー(N)で「カメラをビューにロック」にチェックを入れる。
被写界深度のスポイト
ビュー > カメラ設定 > アクティブカメラ(Numpad 0)でカメラからの視点の状態のとき、右クリック > 被写界深度(スポイト)で、被写界深度をスポイトで設定できる。
影
Eevee は光源の位置をずらした複数のシャドウマップを使ってソフトシャドウを作り、PCF でアンチエイリアスを行う。Eevee は IBL(環境テクスチャ)で影を生成しない。影が必要な場合はライトを配置するか、イラディアンスボリュームを配置する必要がある。
光漏れ
シャドウマッピング法はテクスチャの精度の問題で厚みのないポリゴンにできる影が不正確だ。室内モデルで厚みのない壁や天井を作る場合は、厚みつけモディフィアをつける等の処理が必要になるかもしれない。
光漏れを減らすには、ライトのバイアスの値を小さくする。
サンライト
サンライトはカスケードサイズで深度マップのテクスチャのサイズを指定し、そのほかのライトはキューブサイズで深度マップのテクスチャサイズを指定する。
サンライトは影響範囲が広く、その分深度マップサイズが不足する。サンライトできれいな形の影を作るには、4096px のカスケードサイズが必要になる。このサイズのシャドウマップはエントリーレベルの GPU(1050Ti や RX 560)では力不足だ。
サンライトは遠景を一様にライティングするのに向いている。
ソフトシャドウ
ソフトシャドウにチェックを入れ、サンプリング数を上げ、ライトの半径を大きくする。
ソフトシャドウオプション
ソフトシャドウオプションは光源の位置をずらした複数のシャドウマップを使って影を作る。この方法で影を作ると、影と遮蔽物との距離が大きいほど影がぼけるリアルな影が作れる。
影がバンド状になる場合はサンプル数をあげる。
ジャギー低減
以下の方法がある。
ソフトシャドウオプションにチェックを入れる
場所は「レンダープロパティ > シャドウ」。
ぼかしの量はサンライトは「角度(Angle)」、そのほかのライトは「半径(Radius)」で設定できる。場所は「ライトのプロパティ > ライト」。
シャドウマップの解像度をあげる
サンライトは「レンダープロパティ > シャドウ > カスケードサイズ」、そのほかのライトは「レンダープロパティ > シャドウ > 立方体サイズ」で変更できる。
コンタクトシャドウ
光が漏れたり、オブジェクトの接地部分に影ができない場合は、ライトのコンタクトシャドウ(Contact Shadows)にチェックを入れると改善される。
欠点
コンタクトシャドウはスクリーンスペースエフェクトなので、視点によっては表示されないことがある。
外部リンク
Non-Linearly Quantized Moment Shadow Maps(pdf)
[カスケード シャドウ マップ](https://msdn.microsoft.com/ja-jp/library/ee416307%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396
)
そのほかのポストエフェクト
カメラの前にガラスを配置し、シェーダーからRGBへノードを使うことでポストエフェクトをかけられる。ただし以下の制限がある。
- ガラスや透過オブジェクトをうまく処理できない
- 屈折に距離制限があり、背景が映らないことがある
- 色情報しか取得できないので、エフェクトの種類に制限がある
- シェーダ上では、ぼかしや各種フィルターノードが使えない
設定
屈折を有効にして、シェーダーからRGBへノードで色を取得する。後は取得した色を加工するだけだ。
制限
カメラ
透視投影と平行投影のみサポートしている。
ライト
バージョン 2.81 からはインスタンスで作成されたライトも影を生成するようになった。
バージョン 2.80 では Dupli Ojbect やグループインスタンスで複製したライトは影を作成しない。つまりコレクション内のライトはインスタンス化によって複製された場合、影を生成しない。このような実装になっているのは、インスタンス化されたオブジェクトはレンダリング時に複製され、不要になると破棄されるからだ。つまりレンダリングのたびにシャドウマップを作成する必要があり、そのような実装はビューポートのパフォーマンスを悪化させる。詳細はEevee: Lights dont cast shadows if they are part of an collection instance を参照。
シーン内で有効なライトの数は 128 が上限になる。それ以上のライトが存在している場合、ライティングされないライトが出てくる。
影を生成するサンライトは同時に8つまでしか配置できない。
ライトは単色のみサポートしている。今のところライトノードはサポートしていない。
ライトプローブ
有効な反射キューブマップの個数の上限は 128 個。
有効なイラディアンスボリュームの個数の上限は 64 個。
カメラ内で有効な反射平面の個数の上限は 16 個。
間接照明
ボリューメトリックはイラディアンスボリュームを無視する。しかしワールドのディフューズライティングの影響は受ける。
スペキュラからディフューズやスペキュラからスペキュラへの光の反射はサポートしてない。イラディアンスボリュームのベイクの間は、全てのスペキュラライティングは無効になる。
ボリューメトリック
サポートしている scattering は1つだけ。scattering を複数使ってノードを組んでも、使われるのはそのどれかひとつだけだ。
ボリューメトリックはイラディアンスボリュームを無視する。しかしワールドのディフューズライティングの影響は受ける。
ボリューメトリックはカメラレイにのみ対応する。反射/屈折/ライトプローブには映らない。
ボリューメトリックシャドウはほかのボリューメトリックにのみ影を落とす。なのでシーン内の他のオブジェクトには影を落とさない。
ボリューメトリックシャドウはカメラに映っているボリュームでのみ機能する。
ボリューメトリックライティングはライトの形を無視する。ライトは全て点光源として扱われる。
スクリーンスペース反射
スクリーンスペース反射が機能するのはマテリアル内の光沢BSDFのうちのどれか一つだけ。現状では選択される光沢BSDFを指定できない。
スクリーンスペース反射は透過オブジェクトや SSR を使うオブジェクトを映せる。しかし深度バッファが1つしかないので正確な位置を反映しているわけではない。
スクリーンスペース屈折
正確に計算できるのは最初の屈折だけ。
アンビエントオクルージョン(AO)
オブジェクトが無限の厚みを持つと仮定している。AO の距離(Distance)パラメータが大きいとき、暗くなりすぎる傾向にある。
マテリアル
屈折
光沢BSDFと同じ reflection probe を使って屈折を表現している。違いは反射した視線ベクトルではなく屈折した視線ベクトルを使っていることだ。正確に計算できるのは最初の屈折だけで、2回目以降の屈折は Refraction Depth を使った比較的薄いオブジェクトを利用して計算される。
バンプ
今のところバンプマッピングは OpenGL の derivatives 関数を使って実装されている。これは1ピクセルごとに計算されるのではなく、2x2 のピクセルで同じ値になる。そのためバンプの出力はブロック感が目立つ。なので法線マップの使用を推奨する。
バンプがどうしても必要な場合は2倍の解像度でレンダリングして、出力する際に 1/2 に縮小する。
バージョン 2.81 ではバンプマッピングの精度が上がった。
Volumes Objects
Object volume シェーダはポリゴン内ではなく境界ボリューム内のオブジェクトに影響を与える。volume の形はシェーダ内でプロシージャルテクスチャを使って調整するべきだ。
シェーダノード
BSDF ノードは近似されているので Eevee と Cycles とで小さな違いがある。
Sky Texture 等のいくつかのユーティリティノードは Eevee と互換性がない。
サポートリストはBlender 2.80 の Eevee がサポートしているノードを参照。
メモリ管理
巨大なシーンをレンダリングする場合、GPU のメモリが不足して Blender がクラッシュすることがある。レンダリングに必要なメモリサイズを計算する方法は現状存在しない。
CPU レンダリング
CPU レンダリングはサポートしない。
マルチGPU
現状ではマルチ GPU はサポートしてない。
ヘッドレスレンダリング
ヘッドレスシステムはディスプレイマネージャを使わずにレンダリングする。バージョン 3.4 の時点では Linux のみサポート。
そのほか
オブジェクトモーションブラーはバージョン 2.90 でサポート。カメラのモーションブラーのみサポートしている。
Blender 2.80 の Eevee がサポートしているノード
Eevee でのみ使えるノード
シェーダーからRGBへ(Shader to RGB)
スペキュラー(Specular BSDF)
機能が制限されているノード
ここに列挙されていないノードは全機能がサポートされている。
ディフューズBSDF(Diffuse BSDF)
粗さは未サポート。なので単純なランバート拡散ノードになっている。
放射(Emission)
間接照明として使うには SSR やライトプローブ(特にイラディアンスボリューム)が必要になる。
グラス・屈折BSDF(Glass・Refraction BSDF)
光の反射は未サポート。ベックマンと GGX は未サポート。
光沢BSDF(Glossy BSDF)
バージョン 2.91 で複合散乱 GGX がサポートされた(A Multiple-Scattering Microfacet Model for Real-Time Image Based Lighting)。
ベックマン・Ashikhmin-Shirley は未サポート
SSS(Subsurface Scattering)
ランダムウォークサンプリングは未サポート。各色チャンネルの半径はデフォルトのソケット値で指定する必要がある。この半径ソケットに何かをつないでも無視される。アルベドを分離(プロパティパネルのレンダータブのSSSにある)にチェックが入っていない場合、テクスチャぼかしは 1.0 として扱われる。テクスチャぼかしに 0.0 もしくは 1.0 以外の値を指定しても不正確な結果になる。
透過BSDF(Transparent BSDF)
半透明は未サポート。色は実数(float)に変換され、アルファ値として扱われる。透過を機能させるには、マテリアルのブレンドモードを不透明以外に設定する。シェーダー加算に透過BSDFをつないでも加算合成にはならない。
半透明BSDF(Translucent BSDF)
オブジェクト内の光の拡散はサポートしない。このノードは法線の反転している面のみをライティングする。
プリンシプルBSDF(Principled BSDF)
バージョン 2.91 で複合散乱 GGX がサポートされた(A Multiple-Scattering Microfacet Model for Real-Time Image Based Lighting)。
ディフューズBSDF・光沢BSDF・屈折BSDF・SSSのすべての制限がこのノードにも当てはまる。異方性は未サポート。伝搬の粗さ(Transmission Roughness)は未サポート。シーンレイヤーは近似だ。
ボリュームの吸収(Volume Absorption)
ボリューメトリック を参照。
ボリュームの拡散(Volume Scatter)
異方性パラメータはすべての重なっているボリューメトリックオブジェクトで平均化され合成される。これは物理的に正確ではなく Cycles とレンダリング結果が一致しない。ボリューメトリックを参照。
プリンシプルボリューム(Principled Volume)
ボリューメトリック を参照。
ホールドアウト(Holdout)バージョン 2.81 でサポート。
異方性BSDF(Anisotropic BSDF)未サポート。
トゥーンBSDF(Toon BSDF)未サポート。
ヘアーBSDF(Hair BSDF)未サポート。
ベルベットBSDF(Velvet BDF)未サポート。
プリンシプルヘアーBSDF(Principled Hair BSDF)未サポート。
シェーダー加算(Add Shader)
バージョン 2.81 でサポート。
入力ノード
アンビエントオクルージョン(AO)(Ambient Occlusion)
法線と色とのみサポート。Eevee のAOはスクリーンスペースエフェクトなので、AOノードが評価される前にAOはすでに計算されている。プロパティパネルのレンダータブのアンビエントオクルージョン(AO)でそのほかのパラメータを設定できる。ノード単位で法線と色と以外のパラメータを変更することはできない。
ジオメトリ(Geometry)
凸部分(Pointiness)は未サポート。EEVEE: Pointiness doesn't work。
属性(Attribute)
デフォルトでアクティブなUVレイヤーが出力される。"density"、"color"、"flame"、"temperature" をサポートしている。UVと頂点色レイヤーもサポート。
ベベル(Bevel)
未サポート。
ヘアー情報(Hair Info)
ランダムソケットの出力にいつも同じ乱数生成アルゴリズムが使われるわけではない。乱数の生成範囲と統計的な分布は一致するが、乱数値は再生するたびに異なる。
ライトパス(Light Path)
Eevee はパストレーシングではないので、光線の概念がない。しかし CyclesーEevee 間での運用を容易にするためにいくつかの機能がサポートされている。Eevee のライトパスノードは基本的に、シェーダ内で間接照明のベイクの挙動を制御するために使われる。よって Eevee のライトパスノードは Cycles と互換性がないと考えたほうが良い。
Eevee では以下の項目がサポートされている。
カメラレイか?(Is Camera) | サポート |
シャドウレイか?(Is Shadow) | サポート |
ディフューズレイか?(Is Diffuse) | サポート |
光沢レイか?(Is Glossy) | サポート |
シンギュラーレイか?(Is Singular) | 未サポート。光沢レイか? と同じ値を返す |
反射レイか?(Is Reflection) | 未サポート。光沢レイか? と同じ値を返す |
伝播レイか?(Is Transmission) | 未サポート。光沢レイか? と同じ値を返す |
レイの長さ(Ray Length) | 未サポート。1.0 を返す |
レイの深度(Ray Depth) | ベイクとライトキャッシュ時に、現在のバウンス回数を返す |
ディフューズの深度(Diffuse Depth) | レイの深度と同じ値を返す。ただしディフューズのベイク時にのみ機能する |
光沢の深度(Glossy Depth) | レイの深度と同じ値を返す。ただしスペキュラーのベイク時にのみ機能する |
透過の深度(Transparent Depth) | 未サポート。0 を返す |
伝播の深度(Transmission Depth) | 未サポート。光沢の深度と同じ値を返す |
光沢レイか? は SSR と同時に機能しない。ただし反射平面と同時に使える。
パーティクル情報
未サポート。
テクスチャ座標
「インスタンサーから」は未サポート。
UV マップ
「インスタンサーから」は未サポート。
ワイヤーフレーム
ピクセルサイズにチェックを入れても、結果は Cycles と正確には一致しない。これはサイズでも同じ。
そのほかのノード
光の減衰(Light Falloff)
未サポート。
バンプ(Bump)
微分の精度の問題で、精度が悪い。
ディスプレイスメント/ベクトルディスプレイスメント(Displacement/Vector Displacement)
未サポート
IES テクスチャ
未サポート
大気テクスチャ(Sky Texture)
未サポート
画像テクスチャ(Image Texture)
Smart 近似は常に三次式(Cubic)補完を使う。チューブ・球投影とリニア補完とを同時に使うとアーティファクト(不自然な結果)が発生する。これはハードウェアのミップマップと異方性フィルタリングが原因で起こる。このタイプのアーティファクトはテクスチャ座標が連続でないときに発生する。ボックス投影とクリップ・拡張延長との同時使用は未サポート。その場合はリピート延長が使われる。
マテリアル出力(Material Output)
Cycles に比べてディスプレイスメントの結果が悪い。
波長(Wavelength)
バージョン 3.0 でサポート。
Eevee のレンダリングを高速化する
サンプル数を減らす
ソフトシャドウを使わないならば、デフォルトのサンプル数 64 はいくらかオーバークオリティだ。アニメーションならば、ほとんどのシーンで 10~20 あれば十分な品質になる。
スクリーンスペース反射の屈折(Refraction)を無効にする
ガラスが目立つところに置いてあるようなシーンでは有効にする。
スクリーンスペース反射の半解像度トレース(Half Rez Trace)を有効にする
これはデフォルトで有効になっている。
被写界深度のボケを小さくする
レンダリングする解像度を下げる
コンポジットで拡大することで解像度を調整する。
影の解像度を下げる
ソフトシャドウを使うなら、影の解像度を下げても品質に問題がないことがある。ただしソフトシャドウを使う場合はサンプル数が増えるため、逆にレンダリングに時間がかかることもある。
ライトの影を無効にする
影を生成するライトの個数を減らすと、レンダリング時間と GPU のメモリ使用量とを節約できる。
大量のライトを配置してソフトシャドウを実現するには、大容量の GPU メモリが必要になる。それよりは影を生成するライトをひとつ配置して、ソフトシャドウを使った方がよい。