Distribution Shader v4

Node Type: Colour Shader

ノード説明と目的:

『Distribution Shader』ノードは非常に便利なシェーダです。任意の色がどこに現れるかをコントロールしながら、何かに色を適用する事が出来ます。これを使用して、他のシェーダをマスクする、またはポピュレーションが現れる場所をコントロールするなどの作業に役立てるマスクを生成する事も出来ます。この、高度や勾配に基づいて何が表示されるかをコントロールしたり、同様に適用範囲と分散の設定を備えているのは、『Surface Layer』と同じ構成概念の多くを共通しています。単純に、『Surface Layer』から"Luminosity"、"Displacement"、"Smoothing"タブを取った基本的なバージョンです。

例として、草のポピュレーションがあります。これを斜面45度以上の急勾配には生やしたくない場合、『Distribution Shader』をポピュレーションの密度シェーダに関連付けます。『Distribution Shader』、「Slope constraints」タブに移り、"Limit maximum slope"のチェックボックスを有効にし、"Maximum slope angle"に45の値を設定します。ポピュレートを実行すると、草は勾配45度以下の地形の部分にだけ生えている事が確認できます。

このシェーダの出力として最も一般的な使用方は、"マスク"として働きます。

設定

Colour カラー これは、マスクの生成に使用する色を設定します。マスクはここで設定した色から黒にグラデーションします。通常は、白色を使用してマスクを生成します。

Coverage/Breakupタブ

Coverage カバレッジ シェーダによって生成されたマスクのカバレッジ(適用効果)をコントロールします。これは、マスク全体の透明度を変更するようなものです。カバレッジ値が低い程適用効果が薄れます。

デフォルトの地形サーフェスに白色を塗りつぶしたサンプル。左側がCoverage値が0.5、右側が1.0での比較画像。
Fractal breakup フラクタル分散 チェック時、関連付けたフラクタルノード(デフォルトで『Fractal breakup 01(Power fractal shader)』ノードが設定されています)を使用してマスクを分散します。これにより平凡なマスクにランダム性とテクスチャの風味をより多く取り入れます。フラクタル分散量は、すぐ下のコントロールで設定しますが、"Coverage"の量と相互作用するため、例えば、"Coverage"が1の場合は分散は大幅に低減し、"Coverage"が1未満の場合、"Fractal Breakup"の値が高くなるほど分散効果が高まります。推奨値は、"Coverage"が0.5、"Fractal Breakup"が1でおよそのシーンに対応する事が出来ます。ただし、"Coverage"が1であっても、高度/斜面の制限のファジー領域には分散効果は得られます。
Invert breakup 分散の反転 チェック時、フラクタル分散のノイズパターンを反転した効果を与えます。
Mask by shader シェーダでマスク処理 チェック時、関連付けたシェーダを使って、マスクが出現する場所をさらに詳細にコントロールする事が出来ます。デフォルトでは、マスクは惑星全体を覆っています。しかし、『Image Map Shader』を使用して、画像による形状をマスク適用する事が出来ます。また、『Painted Shader』を使用して、マスクが出現する場所を描画して指定する事も出来ます。さらに、『Simple Shape Shader』を使用してマスクを六角形のエリアに限定する事など、関連付けるシェーダで多彩な表現が可能です。
シェーダのノイズパターンの白い部分はマスクがより不透明度を示し、黒に近付く程マスクの透明度またはカバレッジをコントロールします。RGBチャンネルを個別にコントロールする事も出来ます。
Invert mask マスクを反転 チェック時、指定したマスク処理を行う特定の範囲を反転します。
Mask as coverage マスクをカバレッジとして使用 Terragenでは、ディスプレースメントパイプラインとカラー/シェーディングパイプラインを別々の時間に処理します。まず、すべてのシェーダを使用してオブジェクトのサーフェスを変位させて最終変位が分かるようにします。次に、すべてのシェーダを使用して最終変位に応じたカラー/シェーディングを計算します。このため、シェーダをマスクのカバレッジとして使用する場合、デフォルトではディスプレースメントとカラー/シェーディングの値を持つため、入力として変位と色をからマスクを生成します。ディスプレースメントを持たないシェーダを関連付けた場合は、色のみでマスクを生成します。例えば、『Displacement shader to scalar』ノードを使用して値に変換する必要があります。このノードは、カラー/シェーディングパイプライン中の入力からの変位を要求し、スカラまたはグレースケールの色として使用できる値に変換します。これはマスクとして使う事が出来ますが、『Colour adjust shader』や『Smooth step scalar』ノードなどを使って値を0と1の間の範囲に再マップする必要があります。
覚書: データは通常、上から下へ(シェーダの出力端子から別のノードの入力端子へ)流れているように見えますが、処理は実際には逆に計算しています。オブジェクトまたはシェーダは、その入力端子からデータを要求します。従って、シェーダによって生成される値は、それらが要求される内容物に依存します。

Topic: question about maskより


Altitude Constraintsタブ

このタブには、高度や高さによってマスクが出現する場所をコントロールする設定があります。マスクはある任意の高度上にのみ、または任意の高度下に、または2点の高度間にしか出現しないようにする事が出来ます。

3Dプレビューを使用してマスクを出現させる高度を選択する簡単な方法があります。山腹の高山植物のポピュレーションをコントロールして雪線(万年雪のある最低境界線)と樹木限界線の間にしか出現しないようにする場合。雪線は山を下る3分の1のところにあり、樹木限界線は中腹にあります。設定は以下の様に行います:
  1. 山が見える位置に3Dプレビューを合わせます。
  2. 3Dプレビューが妥当なディティールレベルに絞り込まれるのを待ちます。多く絞り込まれるほど次のステップはより正確になりますが、確実な正確さは必要ではないので、妥当なレベルで行います。
  3. 山の樹木限界線を設定する高度を右クリックします。コンテキストメニューで、"Copy Altitude"を選択します。これによりマウスポイントのシーン内の高度をクリップボードにコピーします。
  4. コピーした高度を、"Minimum altitude"のパラメータのテキストフィールドにペーストします。
  5. "Limit minimum altitude"にチェックを入れ、最小高度制限を有効にします。
  6. 今度は山の雪線を設定する高度を右クリックします。コンテキストメニューで、"Copy Altitude"を選択します。
  7. コピーした高度を、"Maximum altitude"のパラメータのテキストフィールドにペーストします。
  8. "Limit maximum altitude"にチェックを入れ、最大高度制限を有効にします。
現在、設定したポピュレーションは樹木限界線と雪線間で、山腹上に帯状で出現しているでしょう。
Limit maximum altitude 最大高度制限 チェック時、最大高度制限が有効になります。これにより、最大高度パラメータで指定された高度より上に出現するマスクを留めます。
Maximum altitude 最大高度 マスクが出現する最大高度をコントロールします。
Max alt fuzzy zone 最大高度のファジーゾーン 最大高度制限のためのファジーゾーン幅をコントロールします。ファジーゾーンは、最大高度より下のエリアでマスクをどう混合するかをコントロールします。ファジーゾーンについては、Fuzzy Zonesで詳しく説明します。
Limit minimum altitude 最小高度制限 チェック時、最小高度制限が有効になります。これにより、最小高度パラメータで指定された高度より下に出現するマスクを防止します。
Minimum altitude 最小高度 マスクが出現する最小高度をコントロールします。
Min alt fuzzy zone 最小高度のファジーゾーン 最小高度制限のためのファジーゾーン幅をコントロールします。ファジーゾーンは、最小高度より上のエリアでマスクをどう混合するかをコントロールします。ファジーゾーンについては、Fuzzy Zonesで詳しく説明します。
Altitude key 高度キー 高度制限するための基準となる高度を下記のどちらかから選択します。
-Final position(最終位置):カラーとディスプレースメントは同じ高度の制約に基づいており、すべての要素を計算した最終位置を基準とします。
-Position in terrain/texture(地形/テクスチャの位置):地形/テクスチャの座標にのみ基づいて、『Compute Terrain』によって計算され、実際の地形のやや平滑化された位置を基準とします。これによって実際の地形と計算された地形の違いを、"Intersect underlying"機能などの特殊効果によって使用する事が出来ます。
Use Y Y軸を使用 地形以外の、例えばオブジェクトのサーフェスに使用する場合は、このパラメータにチェックを入れる事でY軸を高度として計算します。


Slope Constraintsタブ

このタブには、傾斜によってマスクが出現する場所をコントロールする設定があります。これらの設定を使用して、より平坦な部分やより急峻な部分、または2点間の傾斜にのみマスクを出現させる事が出来ます。設定は「Altitude Constraints」タブと同様です。
Limit maximum slope 最大傾斜制限 チェック時、最大傾斜制限が有効になります。これにより、"Maximum slope angle"パラメータで設定した角度より急な斜面に出現するマスクを留めます。
Maximum slope angle 最大傾斜角度 マスクが出現する最大傾斜角度をコントロールします。
Max slope fuzzy zone 最大傾斜ファジーゾーン 最大傾斜制限のためのファジーゾーン幅をコントロールします。ファジーゾーンは、最大傾斜より緩やかな傾斜エリアでマスクをどう混合するかをコントロールします。ファジーゾーンについては、Fuzzy Zonesで詳しく説明します。
Limit minimum slope 最小傾斜制限 チェック時、最小傾斜制限が有効になります。これにより、"Minimum slope angle"パラメータで設定した角度より緩やかな傾斜に出現するマスクを留めます。
Minimum slope angle 最小傾斜角度 マスクが出現する最小傾斜角度をコントロールします。
Min slope fuzzy zone 最小傾斜ファジーゾーン 最小傾斜制限のためのファジーゾーン幅をコントロールします。ファジーゾーンは、最小傾斜より急勾配なエリアでマスクをどう混合するかをコントロールします。ファジーゾーンについては、Fuzzy Zonesで詳しく説明します。
Slope key 傾斜キー ポップアップより、傾斜角の対象を選択します。
-Final normal:シーン内のすべての要素を計算した最終の法線を基準とします。
-Terrain normal:地形の法線を基準とし、これは『Compute Terrain』ノードの計算結果から取得します。
-Planet/object normal:これはディスプレースメント適用後に割り当てられた惑星/オブジェクトのサーフェスからの法線です。
Use Y Y軸を使用 傾斜は、通常"Slope key"パラメータを使用、指定された法線に基づいて計算します。これはシーン内のどこを移動しても"惑星/オブジェクト"の傾斜は、サーフェスに対して相対的である事を意味します。このパラメータにチェックを入れると、法線からのY値が代わりに使用されます。これは、角度がY軸に相対的である事を意味します。TGでは、惑星の基点(0, 0, 0)から遠ざかるにつれて傾斜が変わります。これはグローバル規模の惑星全体の効果を生み出すのに最も役立ちます。通常の状況ではこの設定を無視する事が出来ますが、地形以外の、例えばオブジェクトのサーフェスに使用する場合は、このパラメータにチェックを入れる事でY軸を高度として計算します。


Tweaksタブ

Fuzzy zone softness ファジーゾーンの滑らかさ 設定したファジーゾーンの境界をさらに滑らかに馴染ませます。0値は一切のグラデーション効果がなくなり、くっきりした境界を作ります。
Smoother Fuzzy Zones (better curve continuity) 滑らかなファジーゾーン 高速近似法の計算方式をより高品質に算出処理します。