広告
広告

Eevee の使い方

カテゴリ:blender

Eevee は Cycles と同じ物理ベースのレンダラーだ。ただしパストレーシングの Cycles と違って、Eevee はゲームエンジンで使われるラスタライズ法でレンダリングされる。パストレーシング(Cycles)では自動的に処理されるような表現の一部は、ラスタライズ法(Eevee)ではユーザーが明示的にセットアップする必要がある。

目次

AO(環境遮蔽)

鏡面反射

透過・屈折

皮下拡散(Subsurface Scattering)

間接光・放射(Irradiance Volume)

霧(Volumetric)

セルシェーディング

被写界深度

AO(環境遮蔽)

Eevee で AO を使うには Ambient Occlusion にチェックを入れ AO ノードを使う。

ao node
基本的な AO の設定

鏡面反射

平面の反射

鏡のような平面の反射は「Light Probe > Reflection Plane」を使えば表現できる。

reflection plane
Reflection Plane を配置するだけで反射する

メッシュの反射

Eevee は平面でないオブジェクトの正確な鏡面反射は計算できない。代わりに球もしくは箱で反射を近似するかスクリーン空間反射エフェクトかのどちらかが使える。

球もしくは箱で反射を近似する(Reflection Cubemap)

反射するメッシュの位置に Reflection Cubemap を配置すると近似された反射が写るようになる。この例ではスザンヌのマテリアルに光沢(Glossy)BSDF を使っている。

on
Reflection Cubemap あり
off
Reflection Cubemap なし

Reflection Cubemap は SSR(Screen Space Reflection)と同時に使える。

cubemap plus ssr
Reflection Cubemap + SSR

スクリーン空間反射エフェクト(Screen Space Reflection 以下 SSR)

SSR は Screen Space Reflections にチェックを入れると使える。制限はあるが Reflection Cubemap よりも正確に反射できる。

ssr
SSR

SSR はスクリーンに映っている物しか反射しないことに注意。なのでReflection Cubemap と同時使用を推奨する。ただし環境テクスチャは映る。

ssr warning
奥のキューブはスザンヌの側面を反射すべきだが、それがスクリーン上に映っていないため反射できない

透過・屈折

屈折を表現するにはマテリアルにグラス(Glass)BSDF を使い、マテリアルの Screen Space Refraction とレンダータブの Screen Space Reflection > Refraction とにチェックを入れる。

reflaction settings
Reflaction の設定
result
グラス BSDF を使用したスザンヌ

これもスクリーン空間エフェクトなのでスクリーン上に映っていない物は映らない。ただし環境テクスチャは映る。

アルファブレンド

マテリアルで Blend Mode を Alpha Blend にして透過(Transparent)ノードをミックスする。

alpha blend
アルファブレンドの設定

皮下拡散(Subsurface Scattering 以下 SSS)

SSS を有効にするにはマテリアルの Screen Space Subsurface Scattering とレンダータブの Subsurface Scattering とを有効にする。

sss
SSS の設定

Subsurface Scattering ノードよりもプリンシプル BSDF の方が SSS の調整はやりやすい。

sss result
SSS は逆光にするとわかりやすい

間接光・放射

放射(Emission)がほかのオブジェクトを照らしたり、ほかのオブジェクトが反射した光を表現するためには「Light Probe > Irradiance Volume」を配置する必要がある。

irradiance volume
底面の赤と側面の青がスザンヌに反射している

間接光を計算するにはレンダータブで Bake Indirect Lighting を押す。変更時に自動的に再計算してほしいときは Auto Bake にチェックを入れる。Auto Bake が有効な場合、ちょっとした変更で何度も Irradiance Volume が再計算される。なので Irradiance Volume の調整が終わり次第すぐに Auto Bake のチェックを外した方がいい。

bake
間接光のベイク

注意事項

ライトでなくメッシュの放射を大域的な光源として使うのは推奨できない。Eevee の放射は Irradiance Volume 内しか照らさないからだ。Irradiance Volume が巨大だとその解像度も上げる必要があり、キャッシュの計算に待たされることになる。

Irradiance Volume を使っても放射オブジェクトは影を作らない。ラスタライズ法は影の生成にシャドウマップという、光源ごとに影生成用テクスチャを使う方法がよく使われる。シャドウマップで放射の影を生成するとポリゴン一枚ごとにテクスチャを割り当る必要があり、メモリが不足する。

将来的には OpenGL 版の DirectX Raytracing を使った、リアルタイムレイトレでこの影の問題は解決できる見込みである。もしくは反射・屈折・影の生成にリアルタイムでないレイトレを使う実装も考えられる。

霧(Volumetric)

レンダータブの Volumetric にチェックを入れて、プリンシプル Volume ノードを使うのが簡単だ。Volumetric ノードは Material Output の Volume ソケットにつなぐことに注意

volumetric
Volumetric の設定

セルシェーディング

Shader to RGB ノードを使う。一部のスクリーン空間エフェクトは反映されない。環境テクスチャやスクリーン空間屈折(Refraction)、SSAO は Shader to RGB ノードで処理できる。そのほかのセルルックエフェクトはEevee のセルルック技法まとめを参照。

Shader to RGB ノードは Cycles では使えない

npr
手前のスザンヌはグラスBSDFを使い、奥のスザンヌはディフューズBSDFを使っている

被写界深度

被写界深度を有効にするにはレンダータブの「被写界深度」にチェックを入れる。被写界深度の設定はカメラで行う。ボケの量を増やすには F-stop の値を小さくする。ピントの位置は適当なエンプティを配置して、Focus on Ojbect を設定する。

settings
被写界深度の設定

ビューポートで被写界深度エフェクト

ビュー > カメラ設定 > アクティブカメラ(Numpad 0)でカメラからの視点に切り替え、プロパティシェルフ(N)で「カメラをビューにロック」にチェックを入れる。

lock camera
カメラをビューにロック

ソフトシャドウ

影の方式(Method)を VSM にし、ライトの柔らかさ(Softness)を上げる。ESM や VSM は影の中にできる影の品質が低い。だからといって影の品質を上げる(Cube Size を上げる)とぼける量が少なくなる。ソフトシャドウが必要な場合は Cycles を使った方がいいかもしれない。

soft shadow
影の品質を上げると、影が固くなる

影生成アルゴリズムの VSM と ESM について

VSM と ESM はそれぞれ欠点がある。VSM は影の中に影が落ちると、影の輪郭が明るくなるライトブリーディングという欠点がある。なので背景のような、高さの異なる複数のオブジェクトが配置されるシーンでは VSM の使用を避けた方がいいだろう。

ESM は影に欠損ができることがあり、光が漏れやすいという欠点がある。

ESM と VSM を組み合わせた EVSM もしくは MSM(Moment Shadow Map)実装されれば、それが一番いいのだが。

Exponential Shadow Map(ESM)

ESM は影かどうかを0か1かで判定するのではなく、その境界を指数で補間する。補間に失敗して影に欠損が発生することがある。

cutout
オブジェクトの端にできた影の欠損

加えて VSM に比べて光が漏れやすい。

esm light leak
ESM
vsm light leak
VSM

光が漏れる場合は Contact Shadow にチェックを入れると改善される。しかし Contact Shadow は視点によっては表示されないことがあり、ちらつきが気になることがある。

contact shadow
Contact Shadow
flicker
Contact Shadow のちらつき

Variance Shadow Map(VSM)

VSM は影かどうかを0か1かで判定するのではなく、チェビシェフの不等式を使って確率的に求める。影が重なるところで、影の輪郭が明るくなるライトブリーディングが発生する。

light bleeding
影の中に影が落ちるとその輪郭が明るくなる

VSM は影にノイズが乗りやすい。VSM を使う場合は High Bitdepth のチェックが必須だろう。

外部リンク

中級グラフィックス入門~シャドウマッピング総まとめ~

カスケード シャドウ マップ

関連記事

Blender 記事の目次


広告
広告