Distribution Shader v4

「Distribution Shader v4」の編集履歴(バックアップ)一覧に戻る

Distribution Shader v4 - (2018/08/12 (日) 01:04:04) のソース

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

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

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

***Slope Constraintsタブ
#image(Distribution_Shader_slope.jpg)
||||
||||
||||
||||
||||
||||
----

***Tweaksタブ
#image(Distribution_Shader_tweaks.jpg)
||||
||||
||||
||||
||||
||||
----