水面下のコースティクス

「水面下のコースティクス」の編集履歴(バックアップ)一覧に戻る

水面下のコースティクス - (2017/06/16 (金) 13:00:49) の編集履歴(バックアップ)


コースティクスとは、光線が曲面により鋭く反射する包絡線に沿って、屈折することによって集められ明るく輝く曲線模様を言い、例えば陽を受けた水面の波紋や波の反射が、透明度の高い川底に屈折して差し込むシーン等がそれに当たります。
Terragenで、そのコースティクスを偽造的にシミュレートする簡単な方法を解説します。
(最後にチュートリアルファイルを配布しているので、詳しくはDLしてご確認下さい。)

工程 1

1.TG4を起動し、【Objects】タブに移動します。このチュートリアルのシーンでは、地表に『Plane』オブジェクトで作業を行うため、新しく『Plane』を作成します。これを"Ground plane"と名付け、サイズを100 * 150(m)に設定します。「translation」はx=5、y=0、z=5です。

2.『Planet 1』をクリックし、「Render surface」のチェックを外します。これにより画像をレンダリングする時に、『Plane』オブジェクトの前に不要な下地の地形を最初にレンダリングさせない事で、レンダリング時間を大幅に短縮します。さらに「Surface shader」の関連付けを"Break connection~"で『Base colour』から切り離して下さい。これにより、TG 4はこれから構築するすべてのシーンは、作成した『Plane(Ground plane)』が地表として取り扱われます。(現段階では、『Ground plane』のInput端子の「Surface shader」が関連付けられていません。)

3.水面下の岩地となる『Rock Base』は、「Colour function」のために3つの異なる『Power Fractal Shaders』を持つ通常のサーフェス・レイヤーです。これらはグループの"RB Shaders"の内部ネットワークに格納されています。

4.『Rock Base』の次に『Fake stones shader』を追加し、テクスチャも同様に行います。これらはグループの"FS Shaders"の内部ネットワークに格納されています。『Rock Base』とは異なり、こちらは「Surface shader」のインプット端子に関連付けられます。

5.新しい『Surface layer』を作成し、"Caustics ground function"と名付けます。「Coverage」を0.5に設定し、「Apply colour」のチェックは外して下さい。一旦ここで、このノードの作業は終ります。この時、作成時に付帯された『Fractal breakup shader』は削除します。このプロジェクトでは使用しません。

6.最後に、5.で作成した『Caustics ground function』を、オブジェクトの『Ground plane』のInput端子(Surface shader)に接続して下さい。

ここまでが、このチュートリアルの前準備段階です!

工程 2

1.ネットワーク・ビューの"Waterグループ"のエリアにアクセスし、右クリックでポップアップメニュー「Create Object」->『Plane』を作成します。サイズは見た目が判り易くなる様、"Ground plane"より少し小さめに設定します。Y値は0.4("Ground plane"から40cm上)です。これを、"Water Plane"を名付け、"Waterグループ”の一番下に配置します。

2.新しく『Water shader』と『Surface layer』を作成し(『Fractal breakup shader』は削除します)、"Water surface displacement"と名付けます。さらに新しく『Image map shader』と『Merge shader』を作成します。これらの接続は下記ネットワークビューの画像を参照して下さい。『Water shader』は、『Water surface displacement』の"child layer"として関連付けます。そしてOutput端子は、『Merge shader』のInput端子に接続し、このOutput端子は、『Water Plane』に接続します。『Merge shader』の"shader A"端子には『Image map shader』を接続します。現段階では『Image map shader』の画像ファイル指定は空白のままにしておきます。これは"Subsurface image map"と名付けます。

3.現段階では、『Water Plane』ノードは無効にします。このエリアは工程 4で引継ぎます。

工程 3

1.【Camera】タブに移動して、新しい『Camera』を作成し、"Directors camera"と名付けます。「Translation」をx=5、y=100、z=5に設定します。現在このカメラは、『Ground plane』から100メートル上空に設置されています。「Rotation」をX=-90に設定して、そこに残します。

2."Waterグループ"のエリアに戻り、新しい『Group』を作成して、"Caustics"と名付けます。そのエリア内に新しく『Image map shader』を作成し、"Caustics image map"と名付けます。用意された画像ファイル、"caustic greyscale.jpg"を指定し、「Projection type(投影方法)」に"Through camera"を選択します。「Projection camera」は、『Directors camera』を設定します。[Flip,Repeat]タブの"Repeat x"と"Repeat y"のみチェックを入れます。

3."Shadersグループ"に移動し、『Caustics ground function』ノードを開きます。[Luminosity]タブを開き、「Luminosity function」に『Caustics image map』を設定し、「Luminous」は1.2、「Luminosity tint
は1(白)に設定します。

4.3Dプレビュー上でコースティクス画像が、上空から『Ground plane』上に投影されているのを確認して下さい。

5.『Water Plane』は無効にした状態です。【Renderers】タブに移動し、新しい『Render』を作成し、"Quick Render"と名付けます。[Quality]タブの[Micropoly detail」を0.5で設定します。『Water Plane』には前工程の"Waterグループ"で空白にしておいた『Subsurface image map』が関連付けられます。一度レンダリングを行い、その画像を保存したものを、『Subsurface image map』の画像ファイルとして使用します。



このチュートリアルを作成されたdandelO氏による最新の「Water Caustics」技法が公式フォーラムのTopic: Functional Caustics - by dandelO に掲載されています。こちらも併せてご参照下さい。