Glass Shader

※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

Node Type: Surface Shader

ノード説明と目的:

『Glass Shader』は『Water Shader』に似ていますが、いくつかの水固有の機能を削除することでUIを簡素化しました。また、ガラスやガラスのような外観を持つ他のマテリアルで作成されたオブジェクトに必要な片面/両面の屈折処理など、さまざまなガラスのレンダリング状況に対応するために特別に設計された多数の設定と機能が含まれています。

『Glass Shader』はサブサーフェス・スキャッタリングをレンダリングする事が出来るため、この効果を持つさまざまなマテリアルに役立ちます。氷、スモークガラス、セラミック、皮膚などが、サブサーフェス・スキャッタリングを含むマテリアルの例です。サブサーフェス・スキャッタリングを使用する場合、パストレースを使用してレンダリングすると最適な結果が得られます。

レイトレースによる反射や屈折性のプロパティを扱う場合、TGは『Surface Shader』に入力する前の、例えば『Default Shader』の後に、この『Glass Shader』を追加する必要があります。

インポートされた.OBJオブジェクトに『Glass Shader』が適用され、パストレースによってレンダリングしたサンプル。左画像がデフォルト設定、右画像がサブサーフェス・スキャッタリングのパラメータの操作を適用しています。

現在、オブジェクトはガラスの透明度に対しての影の形を変える事はありません。適切にレンダリングするには、TGがコースティクスに対応する必要があるので、将来、ガラスの影の様子を変える事が出来るオプションを追加する予定です。また、ガラスの容器に入った液体を通した光の演算、 ランベルト・ベールの法則 にも、現在未対応です。

設定

Mainタブ

Double-sided surface/Thin-walled 両面サーフェス/薄肉 チェック時、ガラスの内外のサーフェスを有効にします。これは、ボリューム(容積)を閉じるための裏側がない開けたオブジェクトで私用する事を想定しています。例えば、2つの面ではなく1つの面で表現される窓ガラスをレンダリングする場合にオンにします。これにより、薄い表面をあたかもオブジェクトの両面であるかのようにレンダリングするため、"double-sided"という名前が付いています。これには、以下のような効果があります:
・屈折を防ぎます。ガラスの中を光が一直線に通過します。
・距離に基づく吸収やサブサーフェス・スキャッタリングを防ぎます。サーフェスを通過した光線は、すぐに表面下の媒体から出ていきます。
・薄いガラスをシミュレートするために、ごくわずかな光線の長さの「仮想的な」内部反射をいくつか近似します。
これらの効果を生かし、例えば『Plane』オブジェクトの場合、正面の裏側にはサーフェスが割り当てられていませんが、このパラメータにチェックを入れる事で裏側もガラスの効果を得る事が出来ます。例えば、"Thin Walled"は、薄い壁(シャボン玉や和紙など)の裏面から光が通過したような半透明のような効果を生み出します。
Reflectivity 反射率 粗さが低い場合に、サーフェスが光を反射して視射角で光を反射する能力。ガラス面の反射率が高いほど、環境光の影響を受けて全体が明るくなります。視射角では、この比率は透過(屈折)された光からも除去されるため、エネルギー保存の法則を順守します。言い換えれば、反射率は、粗さが低い場合に、視射角での反射と屈折の混合をコントロールします。
Reflection tint 反射の色調 反射率が計算された後に反射される光の乗数。反射と透過の混合には影響しません。サーフェスに吸収性のマテリアルがあるかのように、反射の明るさや色を変えるだけです。これにより反射の拡散色をコントロールする事が出来ます。直接カラーアイコンをクリックしてカラーピッカーでで任意の色を設定する事で、反射による拡散色が色付きます。
Transparency 透明度 ガラスの透明度を設定します。数値が高いほど透明度が高くなりますが、一定値を超えると光の拡散が過剰となり白くなります。

例えば宝石のようなオブジェクトをシミュレートする場合、"Reflectivity"と"Transparency"はどちらも1である必要があります。光の減衰がオブジェクトに対して短すぎる場合は、強度が失われますが、透明度を1以上に上げるのは現実的ではありません。オブジェクトのサイズを指定して、必要に応じて彩度の色を飽和させる事が出来ます(ただし、彩度の低い色の方がうまく機能する場合もあります)。
Index of refraction 屈折率 ガラスの屈折率1.5がデフォルトで設定されています。 ガラスの種類 によって、仕様に合った値を入力する事も出来ます。これは、反射率の計算方法に影響を与えるサーフェスの物理的特性であり、単なる屈折ではありません。屈折率は、垂直角度または粗いサーフェスでの反射率に影響を与えます。また、光がオブジェクトに透過した時に、光がどれだけ屈折する(曲がる)程度にも影響します。屈折率は少なくとも1である必要があります。屈折率が1の場合、反射は発生せず、光は屈折せずにオブジェクトに完全に透過します。屈折率が高いほど、より多くの光が反射され、透過される光が少なくなり、透過した光に多くの屈折が起こります。水の場合は1.33程度、ガラスの場合は1.45~1.9(通常は1.5程度)です。実際のマテリアルでは、屈折率が4.0を超える事はほとんどありません。ただし、金属をシミュレートするには、これより高くする必要がある場合があります。より高い屈折率を使用して、垂直角度でより高い反射率を生成する事が出来ますが、これは基本的に単なるごまかしであり、金属をレンダリングするための物理ベースの方法ではありません。
Highlight intensity ハイライト強度 スペキュラ(鏡面反射[輝き])のハイライトは、太陽や光源から発せられた光が対象物の表面に当たる明るい部分の輝力をコントロールする事が出来ます。反対に、スペキュララフネス(鏡面の粗さ)は、表層に細かな凸凹を付ける事で乱反射し、値が大きくなるほど艶が失われていきます。この"Highlight intensity"と"Specular roughness"のパラメータは相互に依存するため設定に注意が必要です。
間接反射ではなく、直接光源(太陽光、光源、スポットライトなど)からの反射光の輝度の乗数。Terragen 4.4以降では、直接光源がサーフェスを通して目に見えて屈折している場合の明るさにも影響します。反射の場合、物理ベースのレンダリングでの正しい値は1のみですが、鏡面反射モデルは完全ではないため、これを少し変更するのが妥当です。
Caustic intensity コースティクス強度 オブジェクトの内部で光が跳ね返る事を可能にする重要な部分がこのパラメータです。コースティクスは、透明と反射を扱う『Glass shader』と『Water shader』のサーフェスマテリアルに光が入った場合に、光が集積する効果です。パストレースによってレンダリングが可能となります。0は効果を無効にします。有効にする場合は、デフォルトの1のままにします。ただし、高密度のボリューム(大量のサブサーフェス・スキャッタリング)は、照明のほとんどがSSSによるものであり、個別に計算されるため、これは必要ありません。
現実の世界では、光が反射したり、光沢のあるオブジェクトを透過して屈折したりすると、周囲のオブジェクトにコースティックスが発生する事があります。『Glass Shader』では、「コースティックス」という用語はもう少し具体的です。これは、直接光源(太陽など)の反射/屈折であり、拡散面に着地するもの、または粗い反射/屈折と相互作用するもののみをコースティクスと意味します。"Caustic intensity"は、この『Glass Shader』が他のオブジェクトに投影するコースティクスの明るさをコントロールします。コースティクスはサンプリングが難しいため、パストレースレンダリングで不要なノイズが発生したり、ライティングをキャッシュするものではちらつきが発生します。Terragenは、これを改善しようとコースティックスを大まかに近似させるだけでサンプリング化しやすくしています。それにもかかわらず、うまくレンダリングする事が依然として難しい場合があるため、"Caustic intensity"では、その強度をコントロールしたり、完全にオフにする事が出来ます。
Specular roughness 鏡面のラフネス サーフェスのミクロ的(またはサブピクセル)粗さ。このラフネスにより、反射や屈折がぼやけたり拡散したりする原因となり、明るい光源からのハイライトの見かけ上のサイズが(露出オーバーによって)変化します。標準レンダラでレンダリングする場合、ラフネスは太陽などの直接光源の反射/屈折にのみ影響します。パストレーサを使用してレンダリングする場合、ラフネスがより正確に適用され、あらゆる種類の反射やサーフェスからの屈折のぼやけに影響を与えます。
Roughnes function 粗さの関数 『Image map shader』などを使い、任意の光沢をマッピングした画像を関連付ける事が出来ます。


Sub-surfaceタブ

Decay distance 減衰距離 ガラスの透明度の維持距離を意味します。数値が高いほど、より深く透明度を維持します。ガラスを通過する光は、指数関数的に減衰を使用して吸収されます。" Decay distance "とは、エネルギーの約37%が残るまでに光がどれくらいの距離(メートル単位)を移動するかの事です("Decay tint"が純白な場合)。減衰距離の2倍の距離になると、光の14%だけが残ります。減衰距離の3倍の距離に到達出来るのは、エネルギーのわずか5%だけです。"Decay tint"が純白以外の場合、光はこれよりも短い距離で吸収されます。
Decay tint 減衰の色合い 減衰距離のRGB乗数。数学的には、光の赤、緑、青の各成分に対して個別に減衰距離を乗算することで機能しますが、結果ははるかに興味深いものになります。直感的には、減衰距離に到達した光の色と考えるかもしれませんが、光の移動距離に応じて、興味深い色相と彩度の範囲を作り出す事が出来ます。現実的な結果を得るには、光が減衰距離よりも遠くに移動する場合は自動的に色が濃くなるため、淡い色を使用する事をお勧めします。
0=黒を基調として、任意の色に白を加えた水深の色を表現します。このスライダーは任意で設定した色の明度を調整するもので、クリスタルガラスなどの色を直接カラーパレットなどを使って、色付いたガラスを設定する事が出来ます。
Volume density ボリューム密度 微小粒子がどれほど「密」であるかを示すもので、光を散乱させてオブジェクトの外に戻すだけでなく、オブジェクトを通過する光を減らします。これにより、サブサーフェススキャタリング(SSS)と呼ばれる効果が得られます。これは、雲の中の水滴の量、氷の中の気泡の量、紅茶1杯あたりの牛乳の割合に例えられるかもしれません。この密度は"Decay distance"に対する相対的なもので、減衰距離が短い場合、散乱粒子の絶対密度は高くなります。このように機能するので、"Volume density"は吸収に対する散乱のバランスをコントロールし、減衰距離が広いとでSSS効果の色をコントロールしやすくなります。
ガラスの密度や色を任意の設定でコントロールしたり、関数やシェーダを関連付けてより細かなディティールを追加する事が出来ます。透明度の高い結晶などのオブジェクトを扱う時は0または0に非常に近い必要があります。色はすべて、"Volume 1 colour"ではなく"Decay tint"に由来する必要があります。
これらのパラメータを使用し、サブサーフェス・スキャッタリング(光が半透明な物体のサーフェスを透過し、内部で散乱した後に表面から出て行く効果。表面下散乱とも呼ばれます)を使用してオブジェクトをレンダリングするために使用する事が出来ます。
Volume colour ボリュームカラー 光を散乱させてオブジェクトの外に戻ってくる粒子の色。これは、正確に粒子のアルベドではなく、複数の散乱の累積効果の色です(あくまでも近似値です)。
Volume density function 密度関数 密度値の乗数として機能するシェーダ、シェーダネットワーク、関数ネットワークへの接続。例えば、これは"cloudiness(曇量)"マップであったり、"bubble density(気泡密度)"マップを読み込む『Image Map Shader』などが考えられます。これにより、単に色を調整するよりも、より豊かな視覚的結果を得る事が出来ます。
これはミルクティー(紅茶とミルク)のたとえが適切です。紅茶はほとんどの場合、光を散乱させずに吸収します。これは、オレンジがかった赤みを帯びた色調でシミュレートする事が出来ます。ミルクを加えると、明るい黄褐色の色になります。色は、白いミルク("volume colour"を白)と紅茶のバランス(volume density)の結果(decay distance、decay tintを赤みがかったオレンジ)。"Volume density function"を使えば、このバランスをテクスチャマッピングする事もでき、たった2色から豊かな色相のスペクトルが生まれます。単に2色を線形混合させただけのものより視覚的に面白いものになります。
Volume colour function カラー関数 ボリュームカラーのRGB乗数として機能するシェーダ、シェーダネットワーク、関数ネットワークへの接続。例えば、これはサブサーフェススキャッタリングテクスチャを読み込む『Image Map Shader』などが考えられます。
Evaluate colour function volumetrically (without UVs) カラー関数の容積を算出(UVsを除いて) チェック時、シェーダは各散布点で3Dワールド空間で算出されます。デフォルトはオフです。これは、サーフェスのテクスチャを算出し、UVマッピングされたテクスチャを使用出来るようにします。
Lighting method in Std 標準の照明方式 「Standard Renderer」を使用してレンダリングする時に、サブサーフェススキャッタリングをシミュレートするために使用される方法。これには、"Pseudo-volumetric(疑似ボリューメトリック)"と呼ばれるモードが1つだけあります。
Lighting method in PT パストレースの照明方式 「Path Tracer」を使用してレンダリングする時に、サブサーフェススキャッタリングをシミュレートするために使用される方法。3つのオプションがあります:
Hard surface approximation(硬質表面の近似): サーフェスでの拡散照明で近似したサブサーフェス効果の高速プレビュー。
Subsurface scatter towards nomal(法線に向かったSSS): 水をレンダリングするために設計されていますが、テーブルや大理石のSSSのかなり高速な近似ですが、エッジが見えないテーブルや大理石の平板のようなエッジが見えない単調なオブジェクトにも適しています。また、オブジェクトの曲率に比べて減衰距離が短いさまざまなオブジェクトにも役立ちます。
Subsurface scatter in all directions(全方位にSSS): 最も遅いオプションで、閉じたオブジェクト、特に逆光の場合光を正確に散乱させるように設計されています。光はオブジェクトのエッジや薄い部分をよりリアルに通過し、必要に応じてより深い影を作成する事もあります。

補足

『Glass shader』でガラスの容器に入った液体をレンダリングすると、液体の縁にギザギザが生じる事があります。これはサブディビジョン設定『Render subdiv settings』上の"Ray Detail Multiplier"の値に完全に依存しているためです。『Render subdiv settings』ノードは、アニメーションを最適化させる場合などに自動で作成します。"Ray Detail Multiplier"はデフォルトで0.25に設定されており、これは屈折(または反射)の法線のディティール設定が全体の1/4を意味し、かなり低減しています。静止画をレンダリングする場合、"Ray Detail Multiplier"の値を0.5から試行して確認してみて下さい。場合によっては0.7から1(これはメインの"reflections/refractions"のディティール設定と同じ)にする必要があるかもしれません。良い結果を得るために必要な値は、どれくらいの屈折/歪みがあり、どのようにオブジェクトが反射するかによって異なります。表面が滑らかで、反射率が高く、透明性が高く、屈折性の高いオブジェクトの場合、ギザギザが際立って目立つため、高い値が必要です。ディスプレースメントやその他の効果による反射/屈折の歪みのあるオブジェクトの場合は、その欠陥は歪みによって隠されるため、レイディテールが低くても問題ありません。

設定した"Ray Detail Multiplier"の値が、透明な水を含むすべての反射と屈折に影響する事に注意して下さい。

参照トピック: Glass Shader Quality より
最終更新:2020年04月04日 02:20