Power Fractal Shader v3

Node Type: Fractal Shader

ノード説明と目的:

『Power Fractal Shader』は、Terragenで使用される最も重要で基本的なシェーダの1つです。フラクタル形式の選択に基づいて、TGプロジェクトの多くの機能からなる散布とディスプレースメントを作成し、コントロールする能力をユーザーに提供します。このシェーダによって提供されるフラクタルディテールは、ユーザが定義する事で、小さな砂粒から惑星構造体までの規模の範囲を変動し、必要に応じた任意のスケールにする事が出来ます。

通常、『Power Fractal Shader』は『Surface Shader』や『Cloud Layer』などの他のシェーダに情報を提供し、提供を受けたシェーダが実行する機能に関連付けたフラクタル情報として解釈します。

フラクタルは、ディスプレイスメント、カラー、ディスプレイスメントとカラーの両方という3つの使用法があります。フィーチャ(特徴)の振幅を引用する時は、ディスプレイスメントに使用する時の「変位振幅」、カラーに使用する時の「色コントラスト」に関連付けます。シェーダによって生成される色は、他のシェーダに接続された時に他の方法で解釈される事が時々あります。例えば、『Cloud Layer』に適用される『『Density fractal(Cloud fractal shader)』や『Surface Shader』に適用される『Fractal breakup(Power Fractal Shader)』がそれです。

スケールは、テクスチャスペースで測定されます。これは、フィーチャの"Tallness(高さ)"と同じではありません。つまり、例えば100kmのフィーチャスケールを持つ事は出来ますが、フィーチャの高さはわずか10mです。

デフォルトシーンにあるノード:

デフォルトのシーンには『Power Fractal Shader』が含まれています。このシェーダは『Base colours』という名前に変更されています。デフォルト設定では、このパワーフラクタルは惑星表面に色を提供します。正確に言うと、灰色から黒に及び、ある程度のフラクタル・ディティール、コントラストと色の粗さをフラクタル散布によって色を提供します。デフォルトプロジェクトの『Base colours』ノードで、このシェーダはディスプレースメントが無効になっているため、惑星表面に3D構造(凹凸)を提供していません。

設定

Name ノード名 ノードに任意の名前を付ける事が出来ます。デフォルトでは標準のノード名+カウント数(01、02)が添え付けられます。
Enable 有効 ノードの機能の有効/無効を切り替えます。チェック時はノードの機能を有効にします。
Seed シード この数値ごとに生成ノイズパターンをコントロールするので、同じ数値を入れる事で同じ形を作る事が出来ます。
Random seed ランダムシード ボタンをクリックする度に、シードの数をランダムに発生させます。


Scaleタブ

Feature scale 特徴スケール フラクタルの主要な特徴は、このパラメータで発生し、フラクタル全体の中間的スケールを定義します。"Feature scale"よりも小さな特徴は振幅が小さくなります(ラフネスパラメータに応じた割合でスケールが小さくなるにつれて振幅は減少し続けます)。単位はメートル。

『Power Fractal Shader』はあらゆる場面で適用が可能です。
Lead-in scale リードインスケール 上限可能なフラクタルの最大スケールをコントロールします。Lead-in Scareを参照すると、作成されるオクターブによって"Feature scale"の値を単に大きくしても外観が大きくならない事が分かる事から、パラメータ名が"Maximum scale"とならない理由です。
Smallest scale 最小スケール フラクタルは、無限のレベルまで細部を生成し続けるわけではなく、このパラメータでコントロールします。フラクタルはこのスケールの下にディテールを作成しません。これがあなたのサーフェスまたはテクスチャ内の唯一のフラクタルである場合、このスケールより滑らかになります。"Smallest scale"は"Noise octaves"の数に関連付けられているため、特定の値のみを使用する事が出来ます。一方を設定すると、もう一方の値が決められているため、どちらを変更しても相対するパラメータの値が分かります。これは他のスケール値を変更した時にも作用されます。
Noise octaves ノイズオクターブ ノイズの各レベルやオクターブ("Lead-in scale"と"Smallest scale"で設定された"Feature scale"を中心とした規制の範囲で生成されます)は、他の作用にも追加され、より複雑な形状を形成します。より多くのオクターブ、より多くの「ノイズ」、それは単に最大のリアリズムのためにオクターブを増大させる事が本質ではありません。余分なノイズや完全な無作為性を避けながら、リアルであるのに十分なオクターブの調整が必要です。オクターブの数は、最終的にシェーダでどれ位のディテールを使うかを決定づけるかを導くパラメータで、ノイズパターンに細かいディテールを加える効果があります。"Feature scale"と"Smallest scale"の差が大きいほど、オクターブの値は大きくなり、パワーフラクタルによって生成されるスケールの範囲が大きくなります。ただし、計算に掛かる時間数も増大する事に注意が必要です。
Obey downstream smoothing filters 下流にスムージングフィルタに追従 チェック時、ノード下に追加した『Smoothing filter shader』ノードの効果を有効します。
Noise stretch XYZ XYZ軸にノイズを伸縮 オクターブ数を変えずに、ノイズパターンを任意の座標に伸ばしたり、拡大縮小する事が出来ます。『Power Fractal Shader』ノードは3次元処理を行いますが、ノイズパターンは2次元の平面マップなので、Y軸のパラメータは影響を及ぼしません。
Mask by shader シェーダでマスク処理 チェック時、指定されたシェーダまたはFunctionノードを使用してこのシェーダをブレンド(マスク)します。指定されたシェーダまたはFunctionがこのシェーダのマスクになります。指定されたシェイダーによって生成された拡散色またはブレンド関数によって生成された値は、ブレンド量として解釈されます。1は100%のブレンド量であり、0はブレンドしません。これらの量は、このシェーダの色と変位が入力にどれだけ適用されるかを決定します。0以下または1以上の値が使用可能となります。旧パラメータ名は"Blend by shader"と呼ばれている通り、抽出した特定のエリアに対して覆い隠したり、強調させたり、あるいは他シェーダによって効果のブレンドを行います。

Terragenを起動した時のデフォルトでは、手前に平らな地面があり、カメラの向こうに山が見えています。これは、『Fractal terrain(Power fractal shader)』で作った地形に、『Simple shape shader』が割り当てられており、原点(0、0、0)からサイズ10000メートル四方の円形状をマスク処理しています。例えば、特定のエリアの形状を画像レタッチソフトで作ったマスク画像を『Image map shader』で使用する事なども出来ます。
Fit mask to this マスクに適合 チェック時、指定されたシェーダに、このシェーダのテクスチャスペースに再マッピングするための異なるテクスチャ座標が与えられます。すべてのシェーダがテクスチャ座標を使用するわけではないので、効果の無い場合もあります。実際には、マスクシェーダの入力を、マスクシェーダと同じスケールまたはエリアに拡大縮小する事を意図しています。常用する設定ではないですが、、例えば、マスクシェーダとして『Image map shader』(範囲内を覆うなど)を使用する場合には有用かもしれませんが、マスクシェーダとしての別の処理上のプロシージャル入力としての用途には不適切です。
Invert mask マスクの反転 指定したマスク処理を行う特定の範囲を反転します。

上記の"Mask by shader"のサンプル画像は、"Invert mask"をチェックする事で、特定の範囲外のエリアだけに地形を適用する事で範囲内を平地にしていましたが、チェックを外すと、上の右画像のように範囲内だけに地形が適用されます。左画像はマスク処理する前の元地形です。


Colourタブ

このタブでは、フラクタルによって生成された色情報を調整する事が出来ます。Functionノードやこのフラクタルからの情報を読み取るノードによっては、ここで調整可能な設定が大きな影響を与える場合があります。例えば同じ『Power Fractal Shader』でも、デフォルトの『Fractal terrain 01』では色情報に効果はありませんが、『Base colours』の色情報はシーン内の色として影響を与えます。
例外のサンプルとして、上記画像の場合、『Fractal terrain 01』で設定した"Apply high colour"の色情報が、『Simple shape shader 01』をマスク処理した『Base colours』によって影響を受けています。
Apply high colour ハイライトの適用 フラクタルは指定されたハイライトとロウライト(=シャドウ)間の範囲の色を生成します(フォトショップの「カラーバランス」と同じような機能)。0から1の間のスライダー値、またはカラーピッカーによって選択された色は、ほとんどの状況で実用的です。それぞれの設定をチェックの有無で有効/無効を切り替える事が出来ます。スライダー値によってそれぞれの適用量を調整する事が出来ます。またどちらか一方を有効にしなかった場合は、任意の色から明度が自動で設定されます。
Apply low colour ロウライトの適用
Colour contrast カラーコントラスト フラクタルによって生成されるノイズの色間のコントラストをコントロールします。
Colour offset カラーオフセット ハイライトとロウライトのバランスをコントロールします。0以下はロウカラー寄り、0以上はハイカラー寄りでオフセットされます。
Colour roughness カラーラフネス フラクタルのノイズの粗さをコントロールします。値が小さい程滑らかになり、大きくなるほど粗くなります。このパラメータは、"Colour contrast"や"Feature scale"の値から大きく影響を受けます。
Clamp high colour ハイカラーの固定 フラクタルが白(1)を超える値や黒(0)以下の値を生成しても、これらのパラメータを有効にする事で、範囲外の色(0-1以外)を生成するのを抑えます。
Clamp low colour ロウカラーの固定


Displacementタブ

ディスプレースメントは、『Power Fractal Shader』の2大機能の1つです。このシェーダでディスプレースメントが有効になっている場合、フラクタルによって生成されたカラー情報は、ハイカラーが最大仰角に等しく、ロウカラーが最小仰角として判断されます。サーフェスシェーダなどの他のシェーダは、この情報を使用して最終的にはオブジェクトのストラクチャと同様に、惑星や偽造石、イメージマップなどに適用する事が出来ます。

高度情報は、「Colour」タブで設定した色とは関係ありません。実際、『Power Fractal Shader』では色を完全に無効にする事ができ、他のシェーダやFunctionでも使用出来るようにディスプレースメント情報が生成されます。

ディスプレースメントの詳細については、Surface Layerの「Displacement」タブを参照して下さい。ディスプレースメントパラメータの使用に関する情報は、このシェーダの設定にも同様に適用されます。
Apply displacement ディスプレースメントを有効 チェック時、シェーダはディスプレースメントを生成します。右のポップアップは、ディスプレースメントが適用される方向を選択する事が出来ます。ポップアップリスト内の "(requires computed normal)"オプションは、ノードネットワーク上で接続された『Compute Terrain』または『Compute Normal』が適切に動作する事を必要とします:
-Along vertical: ディスプレースメントは、変位を適用する元となるオブジェクト(すなわち、惑星またはモデル)の法線に沿って生じます(デフォルトの場合、『Planet』の平面上からの変位なので"垂直"に生じます)。
-Along normal: ディスプレースメントは現在のサーフェス法線に沿って生じます。
-Vertical only (requires computed normal): ディスプレースメントは、元となるオブジェクト(すなわち、惑星またはモデル)の法線に沿ってのみ生じます。ディスプレースメントは、オブジェクト法線(プリミティブオブジェクト、デフォルトでは『Planet』オブジェクトの法線)とサーフェス法線(作成したサーフェスによって生成された法線)の差でスケーリングされます。ディスプレースメントは、法線間の角度が90度に近づくにつれて減少します。
-Lateral only (requires computed normal): ディスプレースメントは、側面の平面内でのみ、すなわち下層のオブジェクトの法線に対して直角にのみ生じます。
-Lateral normalized (requires computed normal): これは"Lateral Only"と似ていますが、ディスプレースメントの大きさ(長さ)が保持され(長さが1になるようにスケーリングされます)、ディスプレースメントの方向のみが変更される点が異なります。これは、ディスプレイスメントが真上を向いているサーフェスでフェードアウトしないことを意味します。
Displacement amplitude ディスプレースメント振幅 ディスプレースメントが有効時、この値で変位の振幅を決定します。例えば、パワーフラクタルでプロシージャル地形を生成するために使用する場合、振幅は、最大地形の特徴がどれだけ高くまた低くなるかを決定します。
Displacement offset ディスプレースメントのオフセット この値は、"Displacement multiplier"パラメータで乗算された後に、ディスプレースメントの入力値に加算されます。これにより、ディスプレースメント方向に沿った設定量だけディスプレースメントをオフセットする効果が生じます。正の値はディスプレースメントを押し出して、それが台座に座っているかのように見えます。負の値は、ディスプレイスメントが表層の中に沈みます。それはディスプレースメントを逆にするのではなく、むしろ表層に穴を作り、穴の底にディスプレースメントを適用する事に近いです。
Displacement roughness ディスプレースメントの粗さ このパラメータを使用して、ディスプレースメントの粗さをコントロールします。1より小さい値は、ディスプレースメントの粗さを減少させ滑らかになります。
Displacement spike limit ディスプレースメント・スパイク制限 ディスプレースメントで発生する個々のノイズ(=スパイク(突起物))の要素が振幅が高くなり過ぎるのを防いで減少させるのに役立ちます。特にフラクタルでリアルな地形を生成するのに使用する場合、スパイクと粗さの両方を減らす時に重宝します。
Continue spike limit スパイク制限の継続 未チェック時、各オクターブの振幅を個別に制限します。チェック時は、特定のノイズ要素がスパイク制限の影響を受けるたびに振幅の減少を記憶し、同じ領域に重複するオクターブをさらに細かく(より小さいスケールで)適用します。これにより、粗さとノイズの変化は、より大きなスケールのオクターブが過剰な振幅を生成する急峻な表面のより滑らかな(より多様な)外観を結果として生じているフラクタルの一部であってもより小さなスケールへの適用を及ぼし続けます。
Adjust coastline 海岸線を調整 惑星規模の地形を生成する時、高度制限を使用して適切な水位の配分を得るためには、惑星全体に広大な低地を必要とします。これを有効にする事で、海岸線の高度と平滑化を使って海岸線を調整する事が出来ます。
Coastline altitude 平滑化を開始する高度 平滑化を開始する高度を設定します。
Coastline smoothing 平滑化係数 平滑化係数を調整します。最高100で段差は絶壁になります。


Tweak Noiseタブ

このタブには、フラクタルに使用される"ノイズ"パターンをコントロールするためのパラメータがあります。フラクタルに関連して、"ノイズ"とは擬似ランダムで空白詰めのテクスチャプリミティブです。生成されたテクスチャの実際の外観は、ノイズ関数の計算を始める異なるシードを選択する事で変化します。"ノイズ"は、フラクタルに擬似乱数のバリエーションを追加する方法として捉えて下さい。このバリエーションは、すべての規模を通じて 自己相似 です。従って、フラクタルによってあらかじめ定義された構造と組み合わされた"ノイズ"は、TGがプロシージャル地形の生成や雲のほか、マスキング、ディスプレースメント、建造物の色付けなどのために使用する多次元の密度関数を生成します。

フラクタルノイズがどのように変化するかについては、ノードパレットの上部のプレビューアイコンをクリックして、プレビューウインドウを表示させながら操作する事で確認する事が出来ます。
Noise Flavour ノイズフレーバ TGは現在、以下の異なる種類のノイズに対応しています。
-Perlin: パーリンノイズ 。切れ間の無いフラクタルノイズを生成します。

-Perli billows: 柔らかく盛り上がりのあるノイズを生成します。積雲などに有用です。

-Perli ridge: 尾根のようなエッジの利いたノイズを生成します。水面の波形などにも有用です。

-Perlin mix 1: Perlin ridgesの基底関数は-absであり、Perli billowsはabsです。"mix 1"と"mix 2"は、"billows"と"ridges"の2つの基底関数を交互に使用します。

-Perlin mix 2: "mix 1"を反転したようなノイズを生成します。

-Voronoi billows: ボロノイ図 を使ったノイズを生成します。パーリンノイズと同様に"billows"と"ridge"の2パターンを用意しています。

-Voronoi ridge: "Voronoi billows"を反転したようなノイズを生成します。
Ridge smoothing 尾根を平滑化 このパラメータは、フラクタルによって生成された尾根の平滑化をコントロールします。0の値は尾根が最も鋭くなります。値が大きいほど、より増して尾根が滑らかになります。このパラメータは、いくつかのノイズフレーバでのみ使用する事が出来ます。
Gully smoothing 峡谷を平滑化 このパラメータは、 "billows"パターンで作成された低地の峡谷の平滑化をコントロールします。0の値は峡谷が急勾配になります。値が大きいほど峡谷の勾配は小さくなり、埋め立てられたような効果があります。このパラメータは、いくつかのノイズフレーバでのみ使用する事が出来ます。
Noise Variation ノイズ変動量 この設定はフラクタル全体の変化量をコントロールします。変動量はフラクタルパターンにおいて、大小の特質の分布に関連します。変動量が0に設定されている場合、大小の特質は均等に分布されます。値が大きくなるにつれて、ノイズはより少なく均一に変化し始め、大小の特質の間でだんだんと分布が不均一になるパターンが得られます。
機能的にはコントラスト同様、0は明暗がくっきりと分かれ、値が大きい程白っぽく段調が低減します。
Variation Method 変動方法 このポップアップで、変動量をフラクタルに適用するためにいくつかの方法を選択します。
-Clamped multifractal: 生成されたフラクタルノイズ中には(-0.5~1.5)までのパターンが存在しますが、(0-1)の範囲で固定する事で、白や黒一面の面積を発生しないようにグラデーションを調整します。"Noise Variation"の値で、範囲外になる広さが決まります。
-UnClamped multifractal: 生成されたフラクタルに制限を掛けないため、白や黒一面の面積が大きなパターンを生成する事があります。
-Multi-scale modulator: フラクタルノイズの算出計算を特定回数繰り返してより複雑なパターンを生成します。
Buoyancy from variation 変動の浮揚性 変動寸法をどれだけの浮揚量で変動させるかをコントロールします。値が大きい程、ノイズの塊が細かく分散されていきます。このパラメータは、"Variation Method"で、"Multi-scale modulator"を選択している時のみコントロールが可能となります。
Clumping of variation 変動の凝集 変動の変化の分布をコントロールします。値を大きくすると、ノイズの"clumping(凝集)"効果が得られます。例えば、フラクタルがプロシージャル地形を作成するために使用する場合、高い値は、特に"Noise Variation"のデフォルト値よりも高い場合と組み合わさった時に、平原と山々の明確なエリアを占めます。
Better colour continuity 改善した色との連携 チェック時、シェーダはより正確な数式を使用して、"Variation Method"機能で C1級関数 の微分不可能点の切れ目を取り除きます。また、最適な結果を得るために、尾根と峡谷の滑らかさをどのように実行するかを、"Perlin Billows"と"Perlin Ridges"と"Perlin Mix"のいずれかが選択された時に変更します。"Better colour continuity"は、新しく作成されたノードに対しては自動的に有効になりますが、既存のノードに対しては自動的に有効になりません。
Better displacement continuity 改善したディスプレースメントとの連携


Warpingタブ

このタブには、シェーダによって生成されたノイズをすべて反り返す、または歪める設定があります。歪曲は、変位と同様ノイズに変化をもたらせますが同じではありません。歪曲は入力または内部機能に基づいて、各点のボリュームテクスチャ座標(3DのXYZ座標)を他の位置に変更します。ノードのタブとして付帯する歪曲機能の場合は、あくまで内部機能として歪曲を発生させるに過ぎません。これはサーフェスや地形の表層ではなく、ノイズパターンのテクスチャ空間で起こるため、Y軸上に反りを発生させた場合もオーバーハングを引き起こす事はありません。ポイントの位置は変更されますが、ワーピングノイズ関数の出力をあるノードの"Dissplacement"に適用すると、歪曲していないノイズ関数と同じように(見た目と形状は歪曲のために異なりますが)動作しますが、本質的にオーバーハングのような突起物を生成しません。
『Warp Input shader』の機能が『Power Fractal Shader』の「Warping」タブに組み込まれているものと認識して下さい。同様に、『Power Fractal Shader』の内部で生成された"ワープソース(歪曲の発生)"をマスクや他ノードに出力する事も出来ます。
Distort by normal 法線の歪曲 地形やオブジェクトの起伏の緻密な変化を拾ってフラクタルを歪ませ、興味深いパターンをもたらせます。それは歪みのないプレビューではないにもかかわらず、フラクタル中に高いディテールを占める事が出来ます。ノイズ全体に影響を与えますが、平坦な対象物では変化が発生しません。テクスチャ機能としてのみ効果を与えます。
Lead-in warp effect 歪曲効果の導入 歪曲効果に伴うノイズを選択する事が出来ます。
-None: 無し。追加のノイズを発生させません。"None"の場合、以下の設定もすべて影響を与えません。
-1 Octave Perlin warp: 歪曲に追加するパーリンノイズを1つ追加します。オクターブとは、追加するノイズの数を言い、ここでは1つのノイズを追加します。ノイズのサンプリング周波数は2のべき乗で上がる事から(周波数が2倍高い音を1オクターブ上と同意)名付けられています。
Lead-in warp amount 導入する歪曲量 歪曲量をコントロールします。値が大きい程効果が増します。
Less warp at feature scale フィーチャスケールの歪曲低減 中規模の歪曲を低減し、歪曲の効果を抑えます。
Allow vertical warp 垂直歪曲を付与 フラクタルノイズの3D座標の各ポイントについて、垂直に歪曲を施すために、2Dマップ上では多少のノイズの誤差が生じる程度なので大きな変化を見て取る事は出来ません。雲などの3Dのボリュームテクスチャ座標などには影響します。


Animationタブ

4D noise 4Dノイズ チェック時、このノードを使ってノイズを発生させた時、アニメーションによって時間が進むと共にノイズに変化を与えます。これは、単純にXYZの3D空間のノイズを移動するのではなく、4Dノイズによって実際にノイズ関数の位置を変更させるアニメーションを行います。例えば、雲のアニメーションを進化させるのに非常に便利です。オブジェクトのメッシュ変形にも使用する事が出来ますが、それは、4Dノイズの有無に関わらずメッシュ変形を任意のディスプレースメントシェーダーで操作する事が出来ます。3Dノイズの場合、『Transform input shader』ノードなどで移動する事は簡単ですが、4Dノードの場合、"Seed"値を変更したかのような不確かな移動を行うため、明示的にコントロールするのは容易くありません。

上記画像の場合、雲になんのパラメータも追加せず、単に20フレームのアニメーションを行ったものです。時間の経過で4Dノイズが発生しているのを確認する事が出来ます。
4D noise speed 4Dノイズ速度 4Dノイズは時間の経過によって移動を行うため、ここでは"量"ではなく、"速度"として表現しています。フレーム間でのノイズの変化量をノイズ速度としてコントロールします。
Reference frame number 参照フレーム数 速度の変更が効果を及ぼさないフレームを言います。例えば、参照フレームが1の場合、ノイズ速度の値に関係なくフレーム1は同じに見えます。言い換えると、道路に沿ってドライブする車の相似を続ける場合のスタートラインのようなものです。他のすべてのフレームは、このフレームからの時差に従って計算されます。ノイズの形状は、時差にノイズ速度を乗算した値に依存します。