元記事:blender.org -- transmissivity


透過率(transmissivity)



2.41までは、Blender の Material のすべてのプロパティは表面の特性を示すものでした。つまり、レイ(光線)がその Material の表面に触れるとすぐ、そのピクセルカラーに対するのすべてのエフェクトが完了する、ということです。レイが複数の Object の内部を通り抜ける時、それらの Object の大きさと形状はレイには影響しませんでした。レイが透明 Object から離れる時に、遠い方の面の特性をレンダリングする二度目のチャンスがあります。

2.42では、Blender はレイがある Object を通り抜ける時、それぞれのレイの長さを計算するようになりました。このレイの長さは光が Object を通るにつれ、どれだけフィルタリングされるかを計測するのに使用できます。この物質科学上の性質を、透過率(Transmissivity)と呼びます。

簡単に説明しますと、厚い透明の Object がより厚く見えるのは、単に光の性質により、Object を通り抜ける際に吸収もしくは拡散されているだけなのです。これは表面の特性ではなく、素材の重要な特性なのです。

透過率なし

透過率なし

これは現在の Blender 内部レンダリングエンジンの、表面の機能のみを見せるものです。Material は単に表面機能の見本に過ぎません。これらのガラスブロックの厚さの変化が考慮されないため、空気を囲む空洞のセロファンの殻と同じようにしか見えません。

全反射あり

全反射あり

この二つめの機能により、時期尚早に消失させられていたいくつかの光子の命が、全反射のおかげで救われています。


二つの新しい Material プロパティ


デフォルトでは、透過率はOFFになっているため、現存の Material は以前のバージョンの Blender で使用されていたのとほぼ同じようにレンダリングできるでしょう。"Filter" と "Alpha" 値を選択することで、これらのエフェクトは以前のように、それぞれの表面で計算されます。

クリエイティブかつリアリスティックなレンダリングオプションを、と考え、二つの新しいパラメータが "Ray Transparency" Material オプションに追加されました。
"Ray Length Limit(レイの長さの上限)" と "Ray Filtering Power"(レイのフィルタパワー)」で、それぞれ、"Limit" と "Falloff(訳注:元記事では Power)" と書かれたスライダで設定します。他に透明 Object をいじるときの重要なパラメータは、レイのフィルタリング量("Filter")と、Object や Texture 全体の Alpha 値です。

* Alpha
* Filter
* Limit (新規)
* Falloff(新規)(訳注:原文は Power)

もし (Material 全体もしくはいずれかの Texture チャネルに沿って計算された)Alpha 値が1未満なら、レイは入射し、Object を通過できます。一般的にこれはすべての透過レンダリングの必要条件です。

もし Filter 値が0以外であれば、Object にレイが出入りするのと同様、光量がいくらか散乱もしくは吸収されます。

Limit スライダが0.0より上の値に設定された場合、透過率エフェクトが有効になります。透過率を有効にしたいほとんどの人には、最大値を100.0Blender単位に設定するのがおすすめします。この Limit より長い、Object を通過するレイはその長さとみなされるため、透過率エフェクトに上限値を与えます。基本的に Filter と Alpha 値は、このレイの長さによってスケーリングされます。

もし Falloff スライダが1.0に設定されていれば、透過率エフェクトはリニアにかかります。つまり、レイの長さがそのままエフェクトに比例します。これは一般的にリアルな材質の外見です。もし2.0なら、エフェクトは二乗でかかり、非常に早く曇った感じになります。0.5では、エフェクトは長さの平方根に限定され、非常にわずかなエフェクトになります。


透過率の欠点


Material の透過率計算により、新たにしわよせがきた部分があります。アーティストが Material を開発する時、他の多くの Texture と共に、彼らのモデルの最良の尺度を考える必要があるのです。ガラスはもうユニットレスになりましたが、光の吸収・発散はそのガラス Object の大きさに左右されます。水滴はもはや水族館や海とイコールではなくなったのです。

多分、ディテール指向の、リアリズムを追求するアーティストにとっては、これは別段新しいことではないでしょう。恐らく彼らは違う Filter 量をカバーすべく、5・6つの違う水の Material を持っています。彼らは象の皮膚とねずみの毛皮を、皆さんもご存知の Orco のスケールで作成する必要を理解しています。
この透過率の変更は実際には、多数のユニットスケールにしばられているアーティストの、手持ちの Material をシンプルにするでしょう。彼らは同じ Material タイプの、違う Filter 量を管理する必要はなくなります。

初心者の人たちの中には、なぜ Filter と Alpha のプロパティが0.5だけなのにもかかわらず、透明 Object が溶接工のマスクのように真っ黒になるのかと少し疑問に思う人もいるでしょう。数メートル用に設定された Material では、1ユニットが1インチのモデルと組み合わせると、見た目がおかしくなります。


厚い影


もし影の透過率エフェクト(もしくは一般的な Alpha 透明度による挙動)を見たい場合、影を受け取る表面の Material の "Transparent Shadows" フラグをON にしておく必要があります。例えば、木のテーブルの上のガラスのつぼをモデリングしたとすると、木の Material の TraShadow をONにするのを忘れないで下さい。透過率 Object の範囲にはフラットシェーディングの影の代わりに、スムースに変化する影ができます。


全反射(Total Internal Reflection)


レイが密度の高い素材に入ったとき、速度が遅くなり、より鋭い入射角度に屈折します。反対に、レイが密度の高い素材から出て行くときは、このプロセスが逆転し、レイがより浅い入射角で出て行きます。
しかし時には、これらの浅い角度のレイがその密度の高い Object の表面と平行になったり、素材の内部に残ることがあります。この時、フォトンの軌跡がこの密度の高い素材内にとどまってしまい、その軌跡の、屈折率を元にしたコースの変更を計算できません。単に他の鏡面反射のように曲がるだけです。

この Object 内部の反射の出現は非常に顕著であり、通常は驚くほどの銀色になる、もしくはレイが最終的に他のルートから脱出した後に、その環境から強い発色が得られます。この現象は全反射(Total Internal Reflection)と呼ばれます。

前述のように、以前のBlender の内部レイトレーサでは、屈折するレイが Mesh を脱出できない場合はお手上げでした。つまり、脱出の決定要因が0より下(角度が浅すぎる)であるレイの脱出はすべて、単に Object からそのまま出て行くまで放置するだけに甘んじていました。

現在、Blender のレイトレーサはこのようなケースでは、レイをその Object へ正しく反射して戻すようになりました。これらの反射はまだ Material に設定できる RayTransp の Depth に不利になりますが、RayMirror の Depth 量には不利にはなりません。

透過率なし(リミックス)

透過率なし(リミックス)

再び、古い質素なセロファンの立方体です。屈折はしますが、あまり大差ありません。

全反射あり

全反射あり

最後に、この立方体では、少しの追加のサイクルの間に、いくつか内部で捕らえたレイを反射し、更なる銀色の輝きを内部の鏡面に与えます。


Last update: Jul 10 2006.
This section is maintained by Ton Roosendaal.


元記事:blender.org -- transmissivity