ユーティリティ マテリアル式は、使い慣れている方法とは異なるさまざまな方法でマテリアルに影響を及ぼすことができるノードです。 たとえば、GIReplace ノードは、オブジェクトの間接バウンス カラーを、入力された任意の値に置き換え、Linear Interpolate ノードは、Alpha 入力に基づいて 2 つのテクスチャ間でブレンドします。 このページでは、マテリアル エディタで利用できるすべてのユーティリティ式について詳細に説明します。
AntialiasedTextureMask
AntialiasedTextureMask 式では、ソフトな (アンチエイリアス) トランジション マスクを使用してマテリアルを作成できます。 このマスクを使用して、2 つの複雑なマテリアル プロパティ間でブレンドすることや、アルファ ブレンドされたマテリアル (SoftMasked でうまく動作する) をフェードアウトすることができます。 1 つのチャンネル (赤、緑、青、アルファ) でマスクが指定されているテクスチャを指定し、式で使用されるチャンネルを設定して、比較値を指定します。 チャンネルに 0 (黒) ~ 1 (白) の範囲のグレースケール値が格納されていると仮定すれば、比較関数によって、結果となるマスクが 0 または 1 のどちらであるかが決まります。 この式はパラメータであるため、Texture プロパティは子マテリアル インスタンスでオーバーライドできます。
| 項目 | 説明 |
|---|---|
| プロパティ | |
Threshold | ピクセル カバレッジでのカットオフ ポイントとして使用される値を指定します。 ピクセル カバレッジ値がこれより小さければ黒になり、大きければ白になります。 |
Channel | マスクとして使用するテクスチャのチャンネルを指定します。 |
Texture | 使用するマスク テクスチャを指定します。 |
| 入力 | |
UVs | テクスチャ マスクに適用するテクスチャ座標を受け取ります。 |
疑似コード:
Result = 1
if TextureLookup < Threshold then Result = 0実際の実装は、エイリアシングを回避するために、実際のピクセル カバレッジに応じて 0 から 1 の間の値を返そうとするため、かなり複雑です。
例 (この小さな 128 x 128 のテクスチャは最高のクオリティが保たれるように、圧縮されていません):
通常のテクスチャとして使用した場合 (左上) と、前述のマテリアル式を使用した場合 (右下) の比較
この手法は、拡大やぼやけ入力コンテンツで最も効果を発揮します。 圧縮すると品質がかなり低下するため、非圧縮で低解像度のテクスチャを使用しようとします。
BlackBody
BlackBody 式は、マテリアル内の黒体放射のエフェクトをシミュレートします ユーザーは、温度 (ケルビン単位) を入力し、結果のカラーと強度を使用して Base Color と Emissive Color の値を駆動することで、物理的に正確な結果を返すことができます。
BumpOffset
BumpOffset は Unreal Engine 4 の用語であり、一般には「視差マッピング」として知られています。 Bump Offset 式を使用すると、ジオメトリを追加することなく深度の錯覚をマテリアルに与えることができます。 BumpOffset マテリアルは、グレースケールの高さマップを使用して深度情報を与えます。 高さマップでの値が明るいほど、マテリアルがより多く「飛び出して」見え、カメラがサーフェス上を移動するにつれて、それらの領域の視差 (ずれ) が生じます。 高さマップでの値が暗い領域ほど、「遠く離れ」て見え、ずれはほとんど生じません。
| 項目 | 説明 |
|---|---|
| プロパティ | |
HeightRatio | 高さマップから取得した深度に対する乗数。 値が大きいほど、深度が極端になります。 通常は 0.02 ~ 0.1 の範囲です。 |
ReferencePlane | エフェクトを適用する、テクスチャ空間での近似高さを指定します。 値が 0 であれば、テクスチャがサーフェスから完全に歪んで表示され、値が 0.5 (デフォルト) であれば、サーフェスの一部の領域が浮き上がり、一部の領域がくぼみます。 |
| 入力 | |
Coordinate | 式によって変更される、ベース テクスチャ座標を受け取ります。 |
Height | 高さマップとして使用されるテクスチャ (または値) を受け取ります。 |
HeightRatioInput | 高さマップから取得した深度に対する乗数。 値が大きいほど、深度が極端になります。 通常は 0.02 ~ 0.1 の範囲です。 指定されていれば、この入力が Height Ratio プロパティの値よりも優先されます。 |
ConstantBiasScale
ConstantBiasScale 式は入力値を受け取り、その値にバイアス値を加算してから、スケーリング係数を乗算して結果を出力します。 たとえば、入力データを [-1,1] から [0,1] に変換するには、バイアスを 1.0、スケールを 0.5 にします。
| プロパティ | 説明 |
|---|---|
Bias | 入力に加算する値を指定します。 |
Scale (スケール) | バイアスを加算した後の結果に対する乗数を指定します。 |
DDX
DDX 式は、ピクセル シェーダーの計算で使用される GPU ハードウェア機能である、DDX 導関数計算を公開します。
DDY
DDY 式は、ピクセル シェーダーの計算で使用される GPU ハードウェア機能である、DDY 導関数計算を公開します。
DepthFade
DepthFade 式は、透過オブジェクトが不透明オブジェクトと交わるときに生じる目障りな継ぎ目を隠すために使用されます。
| 項目 | 説明 |
|---|---|
| プロパティ | |
Fade Distance | フェードが発生するワールド空間の距離です。 FadeDistance 入力が非接続である場合に使用されます。 |
| 入力 | |
Opacity | 深度がフェードする前にオブジェクトに対して既存のオパシティを受け取ります。 |
FadeDistance | フェードが発生するワールド空間の距離です。 |
この例のマテリアル ネットワークは以下のようになります。
DepthOfFieldFunction
Depth of Field Function 式は、被写界深度によってぼやけたマテリアルがどうなるかをアーティストが制御できるように設計されています。 この式は 0 ~ 1 の範囲の値を出力します。0 は「焦点が合っている」ことを表し、1 は「完全にぼやけている」ことを表します。たとえば、テクスチャの鮮明なバージョンとぼやけているバージョンの間で補間するのに役立ちます。 Depth 入力によって、シーンの被写界深度の既存の計算結果を、他の計算でオーバーライドすることができます。
Desaturation
Desaturation 式は、特定の割合に基づいて、入力の彩度を下げるか、入力の色を灰色の濃淡に変換します。
| 項目 | 説明 |
|---|---|
| プロパティ | |
Luminance Factors | 各チャンネルが、彩度が低下した色に寄与する量を指定します。 これによって、彩度を下げる際に、緑が赤よりも明るくなり、赤が青よりも明るくなるように制御されます。 |
| 入力 | |
Fraction | 入力に適用する彩度低下の量を指定します。 0.0 (完全に元の色、彩度の低下なし) ~ 1.0 (彩度を完全に落とした状態) の範囲で、割合を指定します。 |
プログラマー:彩度が低下した色を D、入力色を I、輝度係数を L とすると、 出力は、「O = (1 - Percent)*( D.dot( I )+ Percent * I」になります。
距離
Distance 式は、2 つのポイント/色/位置/ベクターの間の (ユークリッド) 距離を計算し、結果の値を出力します。 これは、1 つ、2 つ、3 つ、または 4 つの成分があるベクターに対して機能しますが、式の両方の入力値のチャンネル数が同じである必要があります。
| 項目 | 説明 |
|---|---|
| 入力 | |
A | 任意の長さの値またはベクターを受け取ります。 |
B | 任意の長さの値またはベクターを受け取ります。 |
カメラ距離が長くなるにつれて色がどのように変化するかに注目してください。
疑似コード:
Result = length (A - B)低レベルの HLSL コード:
float Result = sqrt (dot (A-B, A-B))DistanceFieldGradient
DistanceFieldGradient マテリアル式ノードは、正規化されると、距離フィールド内でオブジェクトが移動する X、Y、Z 方向を出力します。 そのため、Distance Field Gradient マテリアル式ノードは液体の流れをシミュレートする必要があるマテリアルに適しています。
この式が正しく動作するには、Project Settings (プロジェクト設定)] の [Rendering (レンダリング)] で、[Generate Mesh Distance Fields (メッシュ ディスタンス フィールドを生成)] が有効になっている必要があります。
| 項目 | 説明 |
|---|---|
Position | 何も入力されていなければ、デフォルトで現在のワールド位置が使用されます。 |
マテリアル内で DistanceFieldGradient マテリアル式ノードを使用する方法の例を以下に示します。 この例では、最初に DistanceFieldGradient が正規化されてから、Mask Channel ノードに入力されていることに注目してください。 そうする理由は、最初に DistanceFieldGradient を正規化しておかないと方向データを取得できないためです。 マテリアル インスタンス内で RGB チャンネル スイッチを簡単に切り替えられるように、Mask Channel パラメータが追加されています。
動作している DistanceFieldGradient の例を以下に示します。 この画像は、有効になっている RGB が異なる場合に DistanceFieldGradient がどのデータを使用するかを表しています。
| 番号 | 説明 |
|---|---|
1 | R チャンネルを有効にし、他のすべてのチャンネルを無効にします。 |
2 | G チャンネルを有効にし、他のすべてのチャンネルを無効にします。 |
3 | B チャンネルを有効にし、他のすべてのチャンネルを無効にします。 |
DistanceToNearestSurface
Distance To Nearest Surface マテリアル式ノードは、レベルのグローバル ディスタンス フィールドにあるどのポイントでも、マテリアルがサンプリングできるようにします。 このマテリアル式は、距離フィールドから、シーン内で最も近くにあるオクルーダまでの符号付き距離をワールド空間単位で出力することによって機能します。
この式が正しく動作するには、Project Settings (プロジェクト設定)] の [Rendering (レンダリング)] で、[Generate Mesh Distance Fields (メッシュ ディスタンス フィールドを生成)] が有効になっている必要があります。
| 項目 | 説明 |
|---|---|
Position | 何も入力されていなければ、デフォルトで現在のワールド位置が使用されます。 |
Distance To Nearest Surface マテリアル式の実例を以下に示します。
この例では、Distance To Nearest Surface はマテリアルの Opacity 入力に送り込まれ、そのマテリアルが、レベルのフロアのすぐ上に配置されているスタティックメッシュ平面に適用されています。 Distance To Nearest Surface は、スタティックメッシュ平面がシーンに配置されている他のスタティックメッシュと交差し始めている領域だけを赤く色付けするように、マテリアルに指示しています。
FeatureLevelSwitch
Feature Level Switch ノードでは、性能が低いデバイス向けの単純化されたマテリアルを作成できます。
使用例:10 個のテクスチャがオーバーラップしていて複雑な数学演算が必要なマテリアルを使用しているが、モバイル デバイスでは単一の静的テクスチャだけを使用することができます (機能レベル ES2)。
| 入力 | 説明 |
|---|---|
Default | デフォルトの機能レベル。 |
ES2 | OpenGL ES2 のコア機能によって規定されている機能レベル。 |
ES3.1 | メタルレベル デバイスの機能によって規定されている機能レベル。 |
SM4 | DX10 シェーダー モデル 4 のコア機能によって規定されている機能レベル。 |
SM5 | DX11 シェーダー モデル 5 のコア機能によって規定されている機能レベル。 |
Fresnel
Fresnel 式は、サーフェス法線の内積とカメラの方向に基づいてフォールオフを計算します。 サーフェス法線がカメラにまっすぐに向いている場合は、値 0 が出力されます。 サーフェス法線がカメラに垂直に向いている場合は、値 1 が出力されます。 結果は [0,1] の範囲にクランプされるため、中心がネガティブ カラーになることはありません。
| 項目 | 説明 |
|---|---|
| プロパティ | |
Exponent | 出力値がフォールオフする速さを指定します。 この値が大きいほど、急に、つまりすばやくフォールオフします。 |
Base Reflect Fraction | サーフェスをまっすぐに見たときのスペキュラ反射の割合を指定します。 値が 1 であれば、Fresnel エフェクトは実質的に無効になります。 |
| 入力 | |
ExponentIn | 出力値がフォールオフする速さを指定します。 この値が大きいほど、急に、つまりすばやくフォールオフします。 この値が指定されていれば、Exponent プロパティの値より常に優先されます。 |
Base Reflect Fraction | サーフェスをまっすぐに見たときのスペキュラ反射の割合を指定します。 値が 1 であれば、Fresnel エフェクトは実質的に無効になります。 この値が指定されていれば、Exponent プロパティの値より常に優先されます。 |
Normal | ワールド空間でのサーフェスの法線を表す 3 チャンネルのベクター値を受け取ります。 Fresnel オブジェクトのサーフェスに適用される法線マップの結果を確認するには、法線マップをマテリアルの Normal 入力につないでから、PixelNormalWS 式を Fresnel のこの入力につなぎます。 Normal が指定されていなければ、メッシュの接線法線が使用されます。 |
GIReplace
GIReplace を使用すると、アーティストは、GI に使用しているマテリアルに対して、通常、より単純な別の式チェーンを指定できます。
使用例: Lightmass の静的 GI および LPV ダイナミック GI で使用します。
| 入力 | 説明 |
|---|---|
Default | デフォルトの GI。 |
StaticIndirect | ベイク済み間接ライティングに使用されます。 |
DynamicIndirect | 動的間接ライティングに使用されます。 |
LightmassReplace
LightmassReplace 式は、通常のレンダリング用にマテリアルをコンパイルする場合は Realtime 入力を渡し、グローバル イルミネーション用にマテリアルを Lightmass にエクスポートする場合は Lightmass 入力を渡します。 これは、WorldPosition など、エクスポートされたバージョンが正常に処理できないマテリアル式に対する回避策として役に立ちます。
| 入力 | 説明 |
|---|---|
Realtime | 通常のレンダリング用に渡す値を受け取ります。 |
Lightmass | マテリアルを Lightmass にエクスポートする場合に渡す値を受け取ります。 |
LinearInterpolate
LinearInterpolate 式は、マスクとして使用される 3 番目の入力値に基づいて、2 つ (1 番目と 2 番目) の入力値をブレンドします。 これは、Photoshop でのレイヤー マスクのように、2 つのテクスチャ間のトランジションを定義するマスクと考えることができます。 マスクのアルファの輝度によって、2 つの入力値から受け取るカラーの割合が決まります。 アルファ値が 0.0 であれば、最初の入力値が使用され、 アルファ値が 1.0 であれば、2 番目の入力値が使用されます。 アルファ値が 0.0 と 1.0 の間であれば、出力値は 2 つの入力値のブレンドになります。 ブレンドはチャンネルごとに行われることに注意してください。 そのため、アルファ値が RGB カラーであれば、アルファの赤チャンネル値によって A と B の赤のチャンネル間のブレンドが決まります。これは、A と B の緑チャンネルの間のブレンドを決めるアルファの緑チャンネルとは無関係に行われます。
| 項目 | 説明 |
|---|---|
| プロパティ | |
Const A | 0.0 にマッピングされる値。 A 入力がつながれていない場合にのみ使用されます。 |
Const B | 1.0 にマッピングされる値。 B 入力がつながれていない場合にのみ使用されます。 |
Const Alpha | マスクのアルファとして使用する値を受け取ります。 Alpha 入力がつながれていない場合にのみ使用されます。 |
| 入力 | |
A | 0.0 にマッピングされる値を受け取ります。 |
B | 1.0 にマッピングされる値を受け取ります。 |
Alpha | マスクのアルファとして使用する値を受け取ります。 |
プログラマー: LinearInterpolate は、パラメータ値 Alpha に基づいて、A と B の間でチャンネルごとの線形補間を行います。
ノイズ
Noise 式は、ノイズがどのように生成されるかを制御できる、プロシージャルなノイズ フィールドを作成します。
| 項目 | 説明 |
|---|---|
| プロパティ | |
Scale (スケール) | ノイズ セル全体のサイズを変更します。 この値が小さいほど、ノイズが大きくなります。 |
Quality | 見ばえ/パフォーマンスの設定です。 この値が小さいほど高速になりますが見ばえが悪くなり、大きいほど低速になりますが見ばえが良くなります。 |
Function |
|
Turbulence | Turbulence をオンにすると、各ノイズ オクターブでは絶対値だけが結果に加算されます。 視覚的特性が変化し、急峻な山の尾根のような形状にすることができます。 |
Levels | スケールが異なるノイズを組み合わせるレベルの数であり、このレベルの数だけ計算コストが倍増します。 |
Output Min | ノイズ計算で出力される最小値。 |
Output Max | ノイズ計算で出力される最大値。 |
Level Scale | レベル スケールは常にアクティブであり、これによって、新しいオクターブごとにスケールが変化する度合いが決まります。 |
Tiling | タイリングがサポートされているノイズ関数で、ノイズをタイリングできるようにします。 これを使用するとコストが大きくなりますが、シームレスなラッピング テクスチャにノイズをベイクする場合に役に立ちます。 |
Repeat Size | タイリング時にノイズを繰り返す頻度 |
| 入力 | |
Position | 3D ベクターを介してテクスチャ サイズを調整できます。 |
FilterWidth | 実質的には、ノイズ テクスチャにブラーが適用される度合いを制御します。 |
Previous Frame Switch
Previous Frame Switch マテリアル式は、テンポラル AA およびモーション ブラーで正常に機能する正しいモーション ベクターを生成するための手段を提供することによって、マテリアルでの複雑な頂点アニメーションの実装に役立ちます。
時間のみの関数であるマテリアルは、すでに変更なしで動作しますが、ランタイム時にアニメーションに影響を与える可能性があるマテリアル パラメータなどの他の変数を考慮することはできません。 Previous Frame Switch マテリアル式は、そのようなパラメータがどのように変化するかを追跡することによって、そのような問題を手動で解決する手段を提供します。 たとえば、ブループリントでは、フレーム間でワールド位置オフセットの変化によって引き起こされるモーション ベクター生成用の式を手動で提供できます。
この式が正しく動作するには、[Project Settings (プロジェクト設定)] の [Rendering (レンダリング)] で、頂点の歪みからの速度が有効になっている必要があります。
バージョン 4.24 以降では、[Accurate velocities from Vertex Deformation (頂点の歪みからの正確な速度)] を有効にします。
バージョン 4.25 以降では、[Output velocities due to vertex deformation (頂点の歪みによる出力速度)] を有効にします。
| 項目 | 説明 |
|---|---|
現在のフレーム | 開始位置参照として使用される方向ベクター。 |
前のフレーム | 追加するブラーの量に対する XYZ 参照として使用される方向ベクター。 |
マテリアルで Previous Frame Switch マテリアル式を使用している例を以下に示します。
この例では、Previous Frame Switch で、定数値を使用した Multiply ノードを介して指向性ブラーを制御しています。
この例を見ると、Epic 独自のゲーム (フォートナイトなど) において、オンスクリーンで集まった頂点アニメーションでモーション ブラーを、この式を使用してどのように制御しているかを確認できます。 右側のアニメーションでは Previous Frame Switch を使用してモーション ブラーを追加していますが、左側のアニメーションでは使用していません。
Viewport Show Flag
エディタ ビューポートの表示フラグは、[Show (表示)] > [Visualize (視覚化)] > [Previous Frame's Reprojection (前のフレームの再投影)] にあり、それを Previous Frame Switch で使用して、現在のフレームと前のフレームの方向ベクターでの不整合を診断して修正することができます。
有効になっていると、このビジュアライザーは、現在のフレーム カラーを前のフレームと比較し、2 つのフレーム間での差異を返します。 差異がゼロであれば、そのマテリアルはビューポートにグレーで表示されます (左側の図)。 方向ベクターが一致していない場合は、そのマテリアルは色付きのオーバーレイで表示されます (右側の図)。
QualitySwitch
QualitySwitch 式は、ローエンドのデバイスでは低品質を使用するなど、エンジンによる品質レベルの切り替えに基づいて、異なる式ネットワークを使用できるようにします。
| 入力 | 説明 |
|---|---|
デフォルト | この入力は、デフォルトのビジュアル品質用のネットワークに使用されます。 |
ロー | この入力は、低いビジュアル品質用のネットワークに使用されます。 |
ハイ | この入力は、高いビジュアル品質用のネットワークに使用されます。 |
RotateAboutAxis
RotateAboutAxis 式は、3 チャンネルのベクター入力値で指定された回転軸、軸上の点、回転角度で、オブジェクトを回転させます。 このノードは、回転した後の位置そのものではなく、回転した後の位置へのデルタを出力します。 そうすることで、その結果を単純な回転の World Position Offset 入力に入力しやすくなります。
| 入力 | 説明 |
|---|---|
NormalizedRotationAxis | オブジェクトが回転する軸を表す、正規化された (0 ~ 1) ベクターを受け取ります。 |
RotationAngle | 回転の角度。 この値が 1 であれば、360 度のフル回転になります。 |
PivotPoint | オブジェクトが回転するピボット ポイントを表す 3 チャンネルのベクターを受け取ります。 |
Position | オブジェクトの位置を表す 3 チャンネルのベクターを受け取ります。 |
上記の例では、プレビュー平面が表示されて、その垂直軸で回転します。
SphereMask
SphereMask 式は、距離計算に基づいたマスク値を出力します。 一方の入力があるポイントの位置にあり、他方の入力がある半径を持つ球体の中心にある場合、マスク値はトランジション領域の外側では 0、内側では 1 になります。 これは、1 つ、2 つ、3 つ、または 4 つの成分があるベクターに対して機能します。
| 項目 | 説明 |
|---|---|
| プロパティ | |
Attenuation Radius | 距離計算に使用する半径を指定します。 |
Hardness Percent | トランジション領域のサイズを指定します。 これは Photoshop のブラシの硬さの値のような働きをします。 0 であれば、トランジションは硬くなり、100 であればトランジション領域は最大 (柔軟) になります。 |
| 入力 | |
A | チェックするポイントの位置を表す値を受け取ります。 |
B | 球体の中心を表す値を受け取ります。 |
このノードは、カメラが特定の距離を超えるまで値 1 を出力し、超えた後は 0 を出力します。
Thin Translucent
Thin Translucent マテリアル出力式は、物理ベースの透過マテリアルを単一のパスで正確に表現します。 これを使用すると、ライトとシェーディングに正確に反応するよう「実際のとおりに」着色または色付けされた透過マテリアルを作成できます。
着色ガラス マテリアルを作成する場合は、白いスペキュラ ハイライトおよび着色した背景が必要です。 これらは、空気からガラスおよびガラスから空気への光のバウンスを考慮する物理ベースのシェーダーを使用して、単一パスでレンダリングされます。
マテリアルの [Details] パネルで次のように設定することで、Thin Translucent マテリアル出力式を有効にします。
Blend Mode (ブレンドモード): Translucent
Shading Model (シェーディング モデル):Thin Translucent
Lighting Mode (ライティングモード): Surface ForwardShading
Vector Noise
Vector Noise マテリアル式は、マテリアル内で使用する 3D あるいは 4D ベクター ノイズ結果をさらに追加します。 これらの関数はランタイムに負荷がかかるため、レンダー ターゲット機能を使って計算のすべてまたは一部をテクスチャにベイクすることをお勧めします。
これらの Material Graph 式は、外部ツールでプロシージャルに生成されたテクスチャを作成する代わりに、エンジン内の最終アセットでプロシージャルの外観を開発することを可能にします。 以下は、Vector Noise マテリアル式に含まれる Vector Noise タイプです。
| 画像 | 項目 | 説明 |
|---|---|---|
Cellnoise | 3D グリッドの各セルに対してランダムな色を返します (すなわち、ノード入力に適用される数学的フロア演算から)。 結果は常に任意の位置に対して一貫性があるため、高い信頼性でマテリアルにランダム性を加えることができます。 この Vector Noise 関数の演算の負荷は非常に低いため、パフォーマンス上の理由でテクスチャにベイクする必要はありません。 | |
Perlin 3D Noise | 3D グリッドの各セルに対してランダムな色を返します (すなわち、ノード入力に適用される数学的フロア演算から)。 結果は常に任意の位置に対して一貫性があるため、高い信頼性でマテリアルにランダム性を加えることができます。 この Vector Noise 関数の演算の負荷は非常に低いため、パフォーマンス上の理由でテクスチャにベイクする必要はありません。 | |
Perlin Gradient | スカラー Perlin Simplex Noise の解析的 3D 勾配を計算します。 出力は 4 チャンネルです。この場合、最初の 3 つ (RGB) は勾配であり、4 つ目 (A) がスカラー ノイズになります。 サーフェス上のバンプとフローマップに適しているノイズ タイプです。 | |
Perlin Curl | ベクター Perlin Simplex Noise (別名 Curl Noise) の解析的 3D カールを計算します。 出力は 3D signed curl vector で、液体やパーティクルのフローに適しています。 | |
Voronoi | スカラー Noise マテリアル ノードと同じ Voronoi ノイズを計算します。 スカラー Voronoi ノイズは 3D 空間でシード ポイントを分散し、最も近いものからの距離を戻します。 Vector Noise バージョンは RGB で最も近いシード ポイントの位置を戻し、A でそれに対する距離を戻します。 特に Cellnoise と併用すると、Voronoi のセル単位で動作を一部ランダム化することができます。 |
以下は、Vector Noise / Voronoi の距離コンポーネントを使って、サーフェスのバンプやクラックの苔のブレンドを調整したシンプルな地面の石のマテリアルです。 シードの位置と Vector Noise / Cellnoise を合わせて石ごとに色やバンプの高さを変えています。
Perlin Curl と Perlin Gradient は微分係数ベースの演算であるため、通常の Perlin noise と同様に、オクターブでまとめて追加することができます。 より複雑な式の微分係数については、式の結果の勾配を計算する必要があります。 これを行うには、計算する式をマテリアル関数に配置し、以下のヘルパー ノードと併用します。
| 項目 | 説明 |
|---|---|
Prepare3DDeriv | 四面体パターンの位置オフセットを使用して、3D 微分係数を計算します。 この関数で生成されたそれぞれのオフセット位置で同じ 3D 関数を評価してから、結果値を Compute3DDeriv に渡します。 |
Compute3DDeriv | 四面体パターンの位置オフセットを使用して、3D 微分係数を計算します。 Prepare3DDeriv と併用します。 |
GradFrom3DDeriv | Prepare3DDeriv/Compute3DDeriv の結果から 3D グラディエント ベクターを計算します。 |
CurlFrom3DDeriv | Prepare3DDeriv/Compute3DDeriv の結果から 3D ベクター フィールドのカールを計算します。 |
これらのヘルパー マテリアル関数は、四面体パターンに配置された式をベースにした 4 つの評価を用いて、微分係数ベースの演算を近似します。
以下は、Vector Noise マテリアル式で使用される各種ノイズ関数の説明です。
| 項目 | 説明 |
|---|---|
| プロパティ | |
Function |
|
Quality | 見ばえ/パフォーマンスの設定です。 この値が小さいほど高速になりますが見ばえが悪くなり、大きいほど低速になりますが見ばえが良くなります。 |
Tiling | タイル処理がサポートされているノイズ関数で、ノイズのタイル処理を可能にします。 これを使用するとコストが大きくなりますが、シームレスなラッピング テクスチャにノイズをベイクする場合に役に立ちます。 |
Tile Size | タイリング時にノイズを繰り返す頻度 Perlin ノイズのバリアントの場合、Tile Size は 3 の乗数でなければなりません。 |
| 入力 | |
Position | 3D ベクターを介してテクスチャ サイズを調整できます。 |
Cell Noise マテリアル サンプル:
Perlin Gradient マテリアル サンプル:
Voronoi マテリアル サンプル: