この記事にはプロモーションが含まれています。

【Blender4.4】EEVEEとCyclesのレンダリング方式の違いを図解

blender

Blender4.4にはEEVEECyclesWorkbenchという三種類のレンダーエンジンがあります。

Workbenchは作業用・プレビュー用の軽量レンダーエンジンなので今回は除いて、EEVEECyclesのレンダリング方式の違いについて解説していきたいと思います。

結果から言うと

  • EEVEEはラスタライズ方式レンダリングスクリーンスペースレイトレーシング+その他
  • Cyclesはパストレーシングでのレンダリング

二つのレンダリング方式を知ることで、どうしてこのような表示結果になるのか、またEEVEEでもリアルなレンダリング結果にするにはどうしたらいいか、より理解しやすくなります。

※図解はイメージ図です。わかりやすさのために一部省略したり正確性を犠牲にしているところもあります。あまりレンダリングに関して知識がない方にもイメージとして掴んでもらえるように描いています。

スポンサーリンク

EEVEE

EEVEEラスタライズ方式のリアルタイムレンダーエンジン(結果がすぐに画面に反映されるレンダリング方式)です。PBR(物理的にリアルな)マテリアル表現に対応しながら高速に処理できます。(近似式で疑似的な表現)

EEVEEとCyclesは同じシェーダーノードを使用してマテリアル作成するため、ノードの変更なしにシーンを簡単にレンダリングできます。Cyclesユーザーにとって、EEVEEはリアルタイムでマテリアルをプレビューするのに最適です。

EEVEEはラスタライズ方式のレンダラーであり、パストレーサーではありません。だからこそ高速ですが、光の反射・屈折・間接光などの精度はCyclesに劣ります。

ラスタライズ方式とは何なのか、またEEVEEがどのようにレンダリングしているのか解説します。

Blender 4.2 から、EEVEE は「EEVEE Next(または EEVEE 2.0)」として大幅にアップデートされました。これによりレイトレーシング機能が追加され、従来よりも高品質で柔軟な表現が可能になっています。

ただし、旧バージョンの EEVEE とは互換性がなく、同じ設定でもレンダリング結果が異なる場合があります。また、設定項目も大きく変更されており、使い方や調整方法に注意が必要です。

スポンサーリンク

ラスタライズ方式

ラスタライズ方式のレンダリングでは、シーンの中のモデル(三角ポリゴン)の角度・位置・カメラとの関係・Z深度(奥行)から、スクリーンに投影しています。

スクリーンに投影して内側にあるピクセルをそのポリゴンの色で塗りつぶし、色を表現します。

明暗は、光の方向ベクトルと、ポリゴンの面からの法線ベクトルを計算し、どのピクセルがどのくらい明るいかを計算しています。

影の表示方法

EEVEEでは、影を表示する方法はシャドウマップシャドウレイの2種類があります。

シャドウマップ

それぞれのライトはシャドウマップという深度テクスチャを持っており、そこにはライト視点から見た各方向にある最も近い物体までの距離(深度)が、テクセル(テクスチャなのでピクセルではなくテクセル)単位で記録されています。

シャドウマップに記録されている「ライト視点から見た深度」と、カメラから見たピクセル位置をライト視点に変換したときの深度を比較します。ピクセルの深度がシャドウマップの値より大きければ、その位置は何かに遮られており「影」と判定されます。逆に、等しいかそれより手前なら、ライトからの光が直接届いていると見なされます。

シャドウレイ

シャドウマップを補填するような形で、シャドウレイを出して影かどうかを判定します。(実際は複数シャドウレイを飛ばして、全部遮られたら真っ黒、少し光源に届いたら少し暗い、などで色を決めます)

シャドウレイのイメージ図

EEVEEラスタライズ方式でどのくらいレンダリングできるかというと、Cyclesでリアルにレンダリングした画像と比較した下図を見てください。床面のスザンヌの反射や、少し発光した青いボールの青い色の影響、ガラスの透過など、全然表現されていません…。

さきほど光の方向ベクトルとポリゴンの法線を計算して明暗を出すと言いましたが、それはほぼ直接光源に限られていて、周囲の青いボールの光や色などの間接光の計算はしてくれません。また、床面の反射、透過なども計算してくれないので、オブジェクト自体の色やライトからの影響の明暗しかなく、ちょっと味気ない仕上がり。

ここに周囲のボールの青い光や、床の反射などを追加するにはラスタライズ方式のレンダリングにレイトレーシングを追加する必要があります。

スポンサーリンク

レイトレーシング

私たちが物を見るというのは、太陽などの光源からの光が物体に当たって反射し、その光が目に届くからです。

コンピュータではこの仕組みを再現するために、カメラからレイ(光の経路)を飛ばして、物体に当たる場所や光の反射の様子を計算します。これにより、実際の光のふるまいに近い、リアルな画像を生成できます。この技術はレイトレーシングパストレーシングと呼ばれます

現実では無数に光源からの光線が飛んでいますが、レイトレーシングで目に届いた光線のみをシミュレートすることで計算を可能にしているんですね。

EEVEEで使えるのはスクリーンスペースのレイトレーシングです。

EEVEEのレイトレーシングにチェックをつけるとデフォルトでMethodがScreen-Traceに設定されており、これは、スクリーン上に表示されているピクセルの深度情報を使ってレイをトレースする手法で、画面外のオブジェクトや、他のオブジェクトに隠れている裏側の物体は検出されません。そのため、正確な反射や影が得られない場合があります。(Method:Light Probeの場合Light Probe Pleneが使えないため平面からの反射がなくなります)

EEVEEのレイトレーシングを使うにはレンダープロパティのレイトレーシングにチェックを付ける

画面外左にピンクに発光した物体を置きます。ビューポート上ではスザンヌの左側もピンク色の影響が出ていますが、レンダリングをすると画面外の発光の影響はなくなります。また、後ろの鏡を見ると、物体の後ろ側はうまく表示できていません。ガラスの反射もおかしいですね。

レイトレーシングをするといっても精度の良いものではないので、他にLight Probeその場所にどんな光が届いてるかを記録しておく光のセンサー)などの機能も追加する必要があります。

  • 床や鏡の鏡面反射用のLight Probe Plane
  • ガラスコップ反射用のLight Probe Sphere
  • 周囲の間接光用のLight Probe Volume

を設置することにより、間接光や画面外の光、映り込みなどが改善されました。(コップの透過はマテリアルをTransparent BSDFを入れることにより改善している部分もあります)

スポンサーリンク

EEVEEのレンダリングまとめ

EEVEEのラスタライズ方式レンダリングはオブジェクトそのものの色(拡散反射の色)と、シャドウマップ、シャドウレイなどで表示した影くらいしか出力しません。

そこに間接光や反射の表現を入れたいなら、レイトレーシング、Light Probeなど追加の機能で精度を上げていく必要があります。

ちなみにAO(環境光が遮蔽されたところの影)が弱いと感じたら

Fast GI Approximation > MethodでAmbient Occlusionを選択すると影の部分が暗くなります。

このようにEEVEEは他の機能を追加したり、適切に設定をすることで画質を上げていく必要があります。設定の手間はありますが、Cycles に比べて非常に高速で、リアルタイムに近いレンダリングが可能です。

また、EEVEE の描画精度や機能は年々向上しており、最終レンダリングを EEVEE で行う作品も増えてきています。特に2Dアニメのようなフラットな表現だとEEVEEで十分というケースは結構あるようです。

スポンサーリンク

Cycles

Cycles は、物理ベースのパストレーサーです。現実世界の光の挙動(反射・屈折・散乱・遮蔽など)を数学的にシミュレートするレンダリング方式で、具体的には パストレーシング手法を用いて画像を生成します。

スポンサーリンク

パストレーシング

レイトレーシングのところで説明したように、パストレーシングも同様にカメラからレイを出して現実の光の挙動を逆にトレースしています。

ディズニーがパストレーシングを説明してくれる素晴らしいアニメです。オススメ

レイトレーシングとパストレーシングの違い

レイトレーシングパストレーシングの違いは、パストレーシングはより現実の光の挙動に近づくように、光線が物体に当たったらランダムな方向にレイを飛ばし、何回もバウンスさせるところです。

レイトレーシングは、光線をシーン内で反射や屈折させながら追跡しますが、単に視覚的な効果(シャドウ、反射、屈折など)を得るために1~数回のバウンスで止めることが多いです。

一方、パストレーシングは、光の動きを物理的により忠実に再現する手法で、光がシーン内で何度も反射や屈折する経路を、ランダムに多数試していきます。
これにより、間接光やグローバルイルミネーションなど、現実の照明に近い効果を再現でき、統計的なモンテカルロ法を使って最終的な明るさを推定します。

何回もバウンスさせ、いろんな方向にレイを飛ばすことで周囲の間接光をより取り込めるようになり、複雑な描写が可能になります。

バウンスする方向や確率は、そのオブジェクトに適用されたマテリアル(シェーダ)によって決まります

たとえば:

  • ラフネスが低い(ツルツルした)表面では、レイは鏡のように鋭い角度で反射する傾向が強くなります(鏡面反射)。
  • ラフネスが高い(ザラザラした)表面では、レイはランダムな方向に拡散反射しやすくなります(拡散反射)。
  • 透過シェーダや屈折を持つマテリアルでは、レイは表面を透過し、屈折して進むようになります。

これらの特性は、マテリアルのBSDF(Bidirectional Scattering Distribution Function)によって定義されており、どの方向にどのくらいの確率で光が跳ね返るかを計算します。

これらを全ピクセルで大量に繰り返すことで、より細かく周囲の光(間接光、反射、透過、拡散光)を表現できるようになります。

処理負荷が高いのでレンダリングに時間がかかることがあります。

スポンサーリンク

Cyclesのレンダリングまとめ

CyclesはBlenderに搭載されている物理ベースのパストレーサーです。
現実世界の光の挙動(反射・屈折・間接光など)を数学的にシミュレーションして、高品質な画像をレンダリングします。

EEVEEと比較すると、そんなに設定をしなくてもデフォルトの状態でかなり綺麗な画像を出力できます。マテリアルもガラス表現などで透過のBSDFを追加しなくても自動で透過してくれるなど、簡易になっています。

円柱や映った像、影、間接光の混じり合いなども正確です。

しかし複雑なマテリアルや高解像度のテクスチャ、多数のライトや間接照明があるとレンダリングに膨大な時間がかかることも…。性能の良いPCや、Cyclesへの深い理解があれば、各種設定で時間を短縮することも可能です。

Cyclesのパストレーシングは高精度ですが、それをフルに活かすにはPCのGPU性能も非常に重要になってきます。

スポンサーリンク

参考サイト

以下のサイトなどを参考にさせていただきました。もっと詳しく知りたい、正確な情報が知りたいという方はアクセスしてみてください