Heightfield Shader

Node Type: Heightfield Operator

ノード説明と目的:

『Heightfield Shader』は、どのハイトフィールド地形の基礎となるものです。これは、ハイトフィールドの演算子ノード(『Heightfield Generate』ノード等)からデータを取り込み、ディスプレースメントで変換します。また、ハイトフィールドを配置し、その外観のさまざまな側面をコントロールするためにも使用します。これを用いて出来る非常に有益な事の1つとして、特に比較的低解像度のハイトフィールドの場合、外観を大幅に改善する事が出来るフラクタルディテールを追加する事です。

設定:

Heightfield ハイトフィールド端子 このパラメータはハイトフィールドのデータを生成するために使用するハイトフィールド演算子にリンクします。
View heightfield ハイトフィールドのプレビュー ハイトフィールドのプレビューを見るためのボタン。これじゃ通常表示されるシェーダのプレビューとは異なります。

Locationタブ

Flip x x軸に反転 チェック時、ハイトフィールドはX軸に沿って反転します。
Flip y y軸に反転 チェック時、ハイトフィールドはy軸に沿って反転します。
Position centre 中心に配置 これをクリックする事で、下記座標の中心に合わせてハイトフィールドを配置します。
Position lower left 左下に配置 これをクリックする事で、下記座標の左下に合わせてハイトフィールドを配置します。
Position upper left 左上に配置 これをクリックする事で、下記座標の左上に合わせてハイトフィールドを配置します。
Position 座標 このパラメータは、ハイトフィールドのx,y座標を設定します。
Rotation 回転 このパラメータは、"Position centre"のY軸を中心にハイトフィールドを回転します。単位は(0-360)度。

TG4.3.22より3Dプレビューのハンドルで回転が可能となりました。3Dプレビュー内の白線は元の位置、黄線が回転によって変更された位置となります。
Border blending 境界の混合量 この設定は、周囲の地形と滑らかに接合するために、ハイトフィールドの境界の混合量を制御します。数値の範囲は0から1です。数値は地形のサイズに関連付けられます。0の場合、混合は行われず、ハイトフィールドは切り立った崖の様に周囲は鋭利な状態が予想されます。1の場合は、ハイトフィールドの幅と高度に沿って滑らかに境界を混合させる事を意味します。
Stitchable border 縫い合わせた境界 チェック時、混合された境界(幅は"Border blending"の数値で制御されます)を、ハイトフィールドの範囲外に拡張します。[Displacement]タブの"Flatten surface first(最初にサーフェスを平坦化)"のチェックを外す事で、"Stitchable border"は複数のハイトフィールド間がどんな荒い縫い目であっても互いに隣接させて並べる事を可能にします。
Blend by heightfield ハイトフィールドをブレンド チェック時、このハイトフィールドの高度値とブレンドさせる別のハイトフィールドを選択します(基本的には選択されたハイトフィールドは、メインのハイトフィールドのマスクの用途とします)。別のハイトフィールドの値は、このシェーダの色とディスプレースメントがどれだけ適用させるかを決定する0(無重量)~1(全重量)間の割合値を生成します。別のハイトフィールドの位置とサイズは、メインのハイトフィールドに適合するようスケーリングされるため、重要ではありません。別のハイトフィールドの高度値は、最高点が1のブレンド量を生成し、最低点が0のブレンド量を生成するようにマッピングされます。
Blend by shader ブレンドするシェーダ チェック時、指定されたシェーダ、またはファンクション・ノードを使用して、このハイトフィールドシェーダをブレンド(マスク)します(基本的には、他のシェーダ、またはファンクションがこのシェーダのマスクになります)。ブレンドシェイダーによって生成された拡散色、またはブレンドするファンクションによって生成された値は、ブレンドする割合量として解釈されます。(0~1)。これらの割合量は、このシェーダの色とディスプレースメントがどれだけ適用させるかを決定します。0以下、または1以上も可能です。
Fit blendshader to this テクスチャ座標の適合 チェック時、ブレンドシェーダ(シェーダのパラメータにより指定)には、ハイトフィールド全体を四角形の単体として再マッピングし、相異するテクスチャ座標が与えられます。ハイトフィールドの左下コーナー座標(0,0,0)、右上コーナー座標(1,0,1)でブレンドシェーダを使用します。すべてのシェーダがテクスチャ座標を使用するわけではないので、全く効果のない場合もあります。
Invert blendshader ブレンドシェーダを反転 チェック時、"Blend by shader"パラメータで指定されたブレンドシェーダで生成された値を反転させます。


Colourタブ

Colourタブには、シェーダがハイトフィールドに基づいた色情報を作成するためのパラメータを備えています。重要事項として、ハイトフィールドシェーダが、ノードネットワークの「Terrain(地形)」部分に通常の方法で接続されている場合、これらのパラメータを有効にする事で色が表示されない事に注意して下さい。また、ハイトフィールドシェーダの出力を、例えばサーフェスレイヤーシェーダの"Colour function"の入力端子に接続するなどして、色情報を扱うシェーダに接続する必要があります。
Apply colour and shade 色とシェーダを有効 チェック時、シェーダで色情報の生成が有効になります。
Diffuse colour 拡散色 ハイトフィールドの拡散色を設定します。拡散色は以下の高度パラメータによって影響を受ける事があります。また、「Location」タブの"Blend by heightfield"や"Blend by shader"のパラメータによってブレンドする境界面がブレンドされるかも知れません。
Shade by light 照明のシェーダ チェック時、ハイトフィールドシェーダは、シーンの照明(Terragenにほとんどのシェーダ)によって照らされる標準的な「Lambertian diffuse surface(ランバート拡散サーフェス)」を生成します。未チェック時は、シェーダは拡散色で指定された色によって発行した表面を生成し、その拡散色の出力は黒(0)になります。このシェーダをブレンドシェーダとして、または別のシェーダ用としてファンクションを使用する場合、"Shade by light"は推定の拡散色を出力するためにチェックの必要があります。
Shade by height 高度のシェーダ チェック時、拡散色はハイトフィールドの高さに応じた値が乗算されます。ハイトフィールドの最下部は黒(0)、最高部は拡散色になり、その他の高度は中間色になります。


Displacementタブ

Displacementタブは、ハイトフィールドパラメータに接続されたノードからの値が、ディスプレースメントでどのように変化するかをコントロールします。
Displacement Direction 変位方向 Vertical(normal in geometry) - 垂直(ジオメトリの法線)
Normal - 法線
Y axis - Y軸
Height multiplier 高度係数 このパラメータはハイトフィールドから高度を増加させます。デフォルトの1は高度の変化はありません。2は高度を2倍にし、0.は高度を半減にします。
Flatten surface first 先にサーフェスを平坦化 チェック時、ハイトフィールドのディスプレースメントが適用される前に、ハイトフィールド下の惑星表面を平坦化し、ディスプレースメントを絶対Y位置として扱います。これは、すべての事前の入力面変位をこのシェーダによっり生成されたディスプレースメントに置き換える効果があり、また惑星の曲率を除去します。境界のブレンド、"Blend by heightfield"や"Blend by shader"にこれらの効果の強さに影響します。未チェック時は、サーフェスシェーダの変位はTerragenのほとんどのディスプレースメントシェーダのように付加的です。場合によっては未チェックが有効な場合もあります。
to Undisplacement Surface - デフォルトで設定されています。非変位面を対象に平坦化します。
to Computed Terrain (position in texture) - Computed Terrain全体を平坦化します。
to Y = 0 - 凹凸無しの平面にします。
Interpolation method 内挿法 これはハイトフィールドの値が、実際の高度間でどのように補完されるかをコントロールします。"Catmull-Rom"法が万能なためデフォルトに設定されています。

Stepped(階段状)

{Linear(線形)

Cubic(立方体)

Catmull-Rom(Catmull-Romスプライン曲線)

Oversmooth(平坦化)



Fractal Detailタブ

このタブでは、ハイトフィールドに付属のディティールを追加する事が出来ます。シェーダは、基礎となるハイトフィールドの制限された解像度を補うのに役立つ小さなフラクタルディティールを追加します。もちろん、このディティールは"偽造"なため、多くの場合重要ではありません。以下にフラクタルディティールが追加されたハイトフィールドの例があります:

フラクタルディティールを追加

フラクタルディティールの追加なし
Add fractal detail フラクタルディティールの追加 チェック時、ハイトフィールドにフラクタルディティールを追加します。
Fractal amount フラクタル量 ハイトフィールドに追加するフラクタルディティールの全体の力(振幅)をコントロールします。値が大きいほど効果も高くなります。

左からFractal amount = 0.5、Fractal amount = 1.0、Fractal amount = 1.5
Fractal scale adjust フラクタルのスケール調整 フラクタルディティールを追加するために使われるノイズパターンのスケールと振幅をコントロールします。スケールは、ハイトフィールドのデータポイントで測定されます。

左からFractal scale adjust = 0、Fractal scale adjust = 2、Fractal scale adjust = 4
Fractal variation フラクタルの種類 フラクタルディティールのアルゴリズムは、小さなスケールで強度の変化を追加するように見える興味深い構造を生成する、フィードバックループ(結果を自動的に再投入させる循環回路)を持っています。このパラメータは、このフィードバックの重量をコントロールし、かつこれらのバリエーションの明白なコントラストをコントロールします。

左からFractal variation = 0.5、Fractal variationt = 1.5、Fractal variation = 2.5
Fractal roughness フラクタルの荒さ これは小さなスケールのディティールに荒さを強調する量をコントロールします。デフォルト値の1は、変位とみなされたときにスケール不変のフラクタルディテールを生成します。値を大きくするとフラクタルは小さなスケールの特徴をより荒く見えさせ、値を小さくするとフラクタルは小さなスケールの特徴をより滑らかに見せるように作り出します。

左からFractal roughness = 0.8、Fractal roughness = 1、Fractal roughness = 1.2
Fractal flow factor フラクタルの流動係数 フラクタルディティールのパターンは、ハイトフィールドデータのサーフェス法線によって歪む可能性があります。この効果を狙って、フラクタルディティールのパターンを慎重に扱う事で、傾斜を下る水の流れや数値を慎重に扱う事で、下り坂の流動や、浸食の成果の印象を与える事が出来るかもしれません。ただし、あまりの多くの反り返しがあると不自然に見えるかもしれません。このパラメータでは、その反り返しをコントロールします。

左からFractal flow factor = 0、Fractal flow factor = 0.3、Fractal flow factor = 1