見出し画像

文系の blender 4.2 レイの可視性 Ray Visibility ってなに?

cycles のレンダリング方式は、レイトレーシング(Ray Tracing)と呼ばれ、レイはレンダリングに不可欠の概念ですが、とくにわたしのような文系にはややこしく、ごく薄い理解にとどめていました。

ただ、その仕組をすこし理解できると、実用的になにかと便利なこともあります。ここでは、レイ関連の機能を、すこしだけ踏み込んでまとめてみました。

レイトレーシングは、4.2 から EEVEE にも本格的に導入された。


環境 Blender 4.2.0 , Mac Mini M1 OS 14.4


なお、記事中の技術的、光学的な解説については、わたしの乏しい理解範囲内によるものです。間違いはコメント等でどうぞご指摘ください。


レイとは


レイ(Ray)とは、カメラから発せられ、現実の光とは逆方向に辿り、周囲を認識する光線のような存在。(レントゲンは X-ray )

引用元 : Ray Tracing NVIDIA Developer

ただ、あまり突き詰めると混乱のもととなるので、ここでは、シーンを探って調べる探査レーダーのようなものと考える。

レイには形状、影、光沢など、探査対象ごとに分担があり、オブジェクトプロパティの「レイの可視性」設定では、cycles では6種、EEVEE では2種のレイを、オブジェクトごとに一時的に無効することができ、一種のチートとして便利だ。

また、マテリアルのライトパスノード、コンポジターのライトパス、も同じ原理で、本格的なレイヤー合成にも応用できる。



Ray Visibility


オブジェクトプロパティ 可視性 > レイの可視性 で「オブジェクトごと」にレイの各機能を無効にできる。

EEVEE では、カメラ、影 の 2 項目

カメラ

カメラ、影レイについては比較的わかりやすい。カメラレイは、オブジェクトそのもの(形状)を探知するレイであり、影レイは、影を探知するレイだ。

照明は、HDRI 背景光と、背後からのサンライトのみ。

上のサンプルシーンから、リンゴオブジェクトの「カメラ」のチェックを外す。

cycles
EEVEE(レイトレーシング ON)

cycles では、リンゴの上半分だけ非表示となった。後述する伝播レイは機能しているので、ガラス越しの下半分はレンダリングされる。また、よくみると、後ろのミラーボールにはリンゴは映り込んでいる。同様に後述の、光沢レイは機能しているためだ。

EEVEE では、伝播、光沢レイの選択肢がないため、リンゴはまるごと非表示になり、影のみが表示されている。

影 Shadow

上は、手前のガラスと、緑のボックスの「影」レイのチェックを外した。わかりやすく、影のみ表示されない。

cycles , EEVEE ともに可能で、影だけほしい、映り込みのみほしい、などのチートに利用しやすい。


ディフューズ Diffuse(cycles)

ディフューズとは、素材の内部で起こる拡散反射のこと。素材の色(ベースカラー)は、このディフューズによるもの。

効果がわらりづらかったため、シーンを変更

緑、青のボックスオブジェクトの「ディフューズ」レイのチェックを外す。

ベースカラーじたいは非表示にはならない。すこしわかりづらいが、底面の間接光(ベースカラーを帯びている)が非表示になる。

つかいどころもむつかしいかもしれない。上のように色が鮮明なオブジェクトによる、色を帯びた間接光が邪魔になる場合に有効か。


光沢 Glossy(cycles)

素材の表面で起こる鏡面反射のこと。スペキュラー(Specular)とも呼ばれる。

リンゴ、および、緑のボックスの「光沢」レイのチェックを外した。

どちらも背後のミラーボールに写り込まなくなる。また、よくみると、リンゴに底にみられた緑色の間接光も表示されない。リンゴの表面はなめらかである程度の光沢(鏡面反射)があるので、ボックスからの緑を帯びた間接光を反射していたたためだろう。

ある意味、よけいな反射が消え、すっきりとしたレンダリングになった。もちろん物理的には正しくないが、やりすぎない程度で有効と思う。

ボリュームの散乱 Volume Scatter(cycles) レイはやや特殊で、使用例を見いだせなかった。ここでは省略する。


伝播 Transmission(cycles)

伝播は、ガラスなどの透明な素材の内部で、光が屈折しながら通り抜けること。

リンゴの「伝播」レイのチェックを外した。

ガラス板から通り抜けてくる光のみ非表示になる。これも使い所は微妙だが、インテリアシーンの窓の外の風景の操作などに使えるかもしれない。



Light Pass 


シェーダーエディターの「ライトパス」ノードを使用し、マテリアルごとに、レイの可視性同様の操作を加えることができる。

背後のミラーボールの金属マテリアルのみ非表示にする場合(レイの可視性のカメラレイ OFF と同じ)

ミラーボール本体(のマテリアル)は非表示。影のみ表示されている

上では、カメラレイのみ 「透過 BSDF」(カラーが100%白なので、かんぜんな透明)を適用し、そのほかのレイは、プリンシプル BSDF(金属マテリアル)を適用している。結果として、レイの可視性の操作と同じになる。

ここでは非表示にするため「透過 BSDF」を適用しているが、もちろんほかのシェーダーでもよい。このため、カメラレイのみ、ガラスマテリアル、あるいは、異なる色のマテリアルを適用するなどの操作も可能。
なお、EEVEE での対応はマニュアル Light Path (ライトパス)ノード を参照。

シンギュラー(Singular)レイは、粗さ 0.0 のかんぜんになめらかな表面のオブジェクトに適用される。また、反射(Reflection)レイは、鏡などの映り込みに対してのみ適用される。光沢(Glossy)レイと似ているが、光沢レイは鏡面反射(映り込みも含まれる)全般に適用されるようだ。

緑のボックスマテリアルに適用。左 光沢レイ 右 反射レイ 

ミラーボールの映り込みが消えるのは同じだが、光沢レイでは、手前の板ガラス(表面がなめらかで鏡面反射がある)に対しても緑ボックスが透明/非表示になっている。

「レイの長さ」 同一のマテリアルだが、遠くのボックスはイエロー
(床やミラーボールへの映り込みなどは緑のまま)

「長さ、深度」のあるレイについては、カメラからの距離が影響する。同じマテリアルでも距離のはなれたオブジェクトに透明感を与えるなどの効果を表現できるか。各レイの詳細は省略する。

レイの可視性と異なるのは、オブジェクト単位ではなく、そのマテリアルが適用されているすべてのオブジェクトを操作できること、また、非表示のみではなく、別のマテリアルと置き換えることができることだ。

やや特殊なチートになるが、実用的にも応用範囲は広いだろう。



Render Pass


上の各レイについて、ビューポートで特定のレイのみレンダリング結果を表示することができる。

通常は、コンポジットノードで、独立したレイヤーとして出力し、加工、合成するといった、やや上級者向けの操作になるが、出力するだけでも、各レイの役割をビジュアルで確認でき、理解を深める手段にもなるだろう。

  • レンダーパスをビューポートで表示するには、ビューポートシェーディング画面の「レンダーパス」のプルダウンから各レイを選択する。

オプションは多いが、一例のみ紹介する。

直接光沢

光源(ここでは背景光、サンライト、右の発光マテリアル)から発せられた光の鏡面反射のみ表示する。

間接光沢

間接光(ここでは、床や、各オブジェクトに当たって跳ね返った光)の鏡面反射のみ表示される。

背景光以外の、いわゆる映り込みは、間接光によるものであることがわかる



Composite

詳細は省略するが、コンポジットノードでレンダーパスを出力するには、

  • ビューレイヤープロパティ パス > ライト で必要なレンダーパスを選択

  • レンダリング後、コンポジットノードを表示

  • レンダーレイヤーノードのパス(光沢直接照明ならば、GlossDir)から接続

通常、各レイヤーをミックスカラーノードやPhotoshopなどで合成、シーン全体の光沢のみ抑える、強調する、などのポストプロダクトに使用する。

参考

英語で、ソフトウェアは Maya だが、レンダーパスについて詳細な解説がある。


まとめ


文系のわるいクセで、理屈を理解する能力に欠けているので、どうしても試行錯誤による経験でなんとか乗り切ろうとしがちです。それも、思うほど悪くはないのかもしれませんが、すこしでも理屈を頭に入れておくと、正しい選択肢を選びやすくなり、チートをふくめたテクニックの幅も広がります。

レンダリング画像はもちろん、目にみえるすべては「光」そのもの。光とそれにともなう影を上手にコントロールすることが、上手なレンダリングの近道ではないでしょうか。やや理屈の多い記事になりますが、文系仲間の方々にも参考になれば幸いです。


ずいぶん前に、「レイの可視性」動画チュートリアルをみたのですが、それは、赤いリンゴが鏡に映ると青いリンゴになるよ、というような内容だったので、そんな手品みたいな技はいらない、と頭を素通りさせていました。あとになって、適切に使うととても便利な機能だとようやく気づきました。ただ、あまりやりすぎると、副作用がでたときに収拾がつかなったりしますので、ほどほどに。

この記事が気に入ったらサポートをしてみませんか?