Utility Material Expressions は、普通とは少し異なる、様々な方法でマテリアルに影響を及ぼすことができるノードです。たとえば、GIReplace ノードはオブジェクトの間接バウンス カラーを入力した任意の値に置き換えます。また、Linear Interpolate ノードは 2 つのテクスチャ間のブレンドを Alpha 入力に応じて行いやすくします。このページでは、マテリアル エディタで使用できる Utility Expression をすべて細かく説明します。
AntialiasedTextureMask
AntialiasedTextureMask 表現式は、ソフト (アンチエイリアス化) 遷移マスクを使用したマテリアルを作成します。マスクは 2 つの複雑なマテリアル プロパティのブレンドや、アルファブレンドされたマテリアル (SoftMasked と相性が良い) のフェードアウトに使用します。チャンネル (赤、緑、青、アルファ) で特定されたマスクと共にテクスチャを指定し、使用チャンネルを表現式に設定し、比較値を特定します。チャンネルが 0 = 黒から 1 = 白の範囲でグレースケール値を格納するとすれば、比較機能はマスクが 0 か 1 かを決定します。表現式はパラメータなので、Texture プロパティは子の MaterialInstances によってオーバーライドされます。
アイテム | 説明 |
---|---|
プロパティ | |
Threshold | ピクセルの範囲内でカットオフ ポイントとして使用した値を指定します。ピクセル範囲の値がカットオフ ポイントより下なら黒、上なら白表示となります。 |
Channel | マスクとして使用するテクスチャのチャンネルを特定します。 |
Texture | 使用するマスク テクスチャを特定します。 |
入力値 | |
UVs | テクスチャ マスクに適用するテクスチャ座標を受け取ります。 |
Pseudo code:
Result = 1
if TextureLookup < Threshold then Result = 0
実際の実装は、エイリアスを避けるため、ピクセル範囲に応じて戻り値が 0 から 1 の間になるので非常に複雑です。
例 (この小さな 128 x 128 テクスチャは最高のクオリティを保つため圧縮されていません):
ノーマル テクスチャとして使用 (Before) 、説明したマテリアル式で使用 (After)
この技術は、拡大やブラー コンテンツの入力に最適です。圧縮すると品質が悪くなるので、非圧縮低解像度のテクスチャを使用してください。
BlackBody
BlackBody の式は、マテリアル内の black body radiation のエフェクトをシミュレーションする式です。ユーザーが温度 (ケルビン単位) を入力すると、その結果得られるカラーと強度を使用して Base Color (基本色) と Emissive (発光色) の値を操作し、物理的に正確な結果を得ることができます。
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 表現式は DDX 派生の計算を公開します。ピクセル シェーダーの計算で使用される GPU ハードウェア機能です。
DDY
DDY 表現式は DDY 微分係数の計算を公開します。ピクセル シェーダーの計算で使用される GPU ハードウェア機能です。
DepthFade
DepthFade 表現式は、半透明オブジェクトが不透明なオブジェクトと交わった時に生じる目障りな継ぎ目を非表示にする際に使用します。
アイテム | 説明 |
---|---|
プロパティ | |
Fade Distance | フェードが発生するワールド空間です。FadeDistance 入力が非接続時に使用されます。 |
入力値 | |
Opacity | 深度がフェードする前にオブジェクトに対して既存のオパシティを受け取ります。 |
FadeDistance | フェードが発生するワールド空間の距離です。 |
この例のマテリアル ネットワークは以下の画像のとおりです。
DepthOfFieldFunction
Depth of Field Function 表現式によって、被写界深度によってぼやけたマテリアルをアーティストが調節することができます。0 から 1 の値を出力します。0 は「ピントがあっている」、1 は「完全にぼやけている」ことを表します。例えば、テクスチャーの鮮明なバージョンとぼやけているバージョンを補間する際に便利です。深度の入力によって、シーンの被写界深度の既存の計算結果を他の計算でオーバーライドすることができます。
Desaturation
Desaturation 表現式は特定の割合に基づいて、入力の彩度を下げるか、入力の色をグレーの濃淡に変換します。
アイテム | 説明 |
---|---|
プロパティ | |
Luminance Factors | 各チャンネルが彩度の低い色に寄与する量を指定します。これによって、彩度を落とした場合は、緑は赤よりも明るく、また青よりも赤のほうが明るくなるように制御されます |
入力 | |
Fraction (割合) | 入力に適用するデサチュレーション量を特定します。割合の範囲は 0.0 (完全なオリジナルカラー、彩度は全く落とさない から 1.0 (完全に彩度を落とす)) です。 |
プログラマー向け: 彩度の低い色である D
、入力カラー I
、luminance factor (輝度係数) L
を定義できます。出力は、「O = (1 - Percent)*( D.dot( I )) + Percent * I
」になります。
Distance
Distance 表現式は 2 つのポイント、カラー、位置、ベクターの (ユークリッド) 距離間を計算し、その結果の値を出力します。これは 1、 2、 3、 4 つのコンポーネントベクターに機能しますが、表現式への両入力値が同数のチャンネルを持っていなくてはいけません。
アイテム | 説明 |
---|---|
入力値 | |
A | 任意の長さの値またはベクターを受け取ります。 |
B | 任意の長さの値またはベクターを受け取ります。 |
Pseudo code:
Result = length (A - B)
Low level HLSL code:
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 マテリアル表現式ノードは、マテリアルがレベルのどのポイントでも Global Distance Field のサンプリングができるようにします。 DistanceToNearestSurface は、ワールド スペース単位で符号付きで距離を距離フィールドからシーンの中で最短距離にあるオクルーダへ出力することで機能します。
この表現式を正しく使うためには、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 個のテクスチャがオーバーラップして計算が複雑なマテリアルもありますが、モバイルの場合は静的なテクスチャが 1 つだけです (機能レベル ES2)。
入力 | 説明 |
---|---|
Default | デフォルトの Feature Level です。 |
ES2 | コア性能が OpenGL ES2 で定義された Feature Level です。 |
ES3.1 | コア性能が Metal-level デバイスで定義された Feature Level です。 |
SM4 | コア性能が DX10 Shader Model 4 で定義された Feature Level です。 |
SM5 | コア性能が DX11 Shader Model 5 で定義された Feature Level です。 |
Fresnel
Fresnel は、表面法線の内積とカメラの方向に基づいてフォールオフを計算します。表面法線が直接カメラに向いている時、0 の値が出力されます。表面法線がカメラに垂直に向き合っている時は、1 の値が出力されます。結果は [0,1] にクランプされるため、真ん中にネガティブカラーを持ちません。
アイテム | 説明 |
---|---|
プロパティ | |
Exponent | 出力値がどれくらいの速さでフォールオフするかを特定します。値が大きいと、ぴんと張った、または素早いフォールオフになります。 |
Base Reflect Fraction | 表面をまっすぐ見た場合のスペキュラ反射の割合を特定します。値 1 で Fresnel エフェクトを事実上無効にします。 |
入力値 | |
ExponentIn | 出力値がどれくらいの速さでフォールオフするかを特定します。大きな値はぴんと張った、または素早いフォールオフを意味します。使用すると、値は常に Exponent のプロパティ値にとって代わります。 |
Base Reflect Fraction | 表面をまっすぐ見た場合のスペキュラ反射の割合を特定します。値 1 で Fresnel エフェクトを事実上無効にします。使用すると、値は常に Exponent のプロパティ値にとって代わります。 |
Normal | ワールド空間でサーフェスの法線を表す 3 チャンネルのベクター値を受け取ります。Fresnel オブジェクトの表面に適用された法線マップの結果を見るには、法線マップをマテリアルの Normal の入力に接続し、次に以下の表現式を Fresnel のこの (PixelNormalWS](designing-visuals-rendering-and-graphics/materials/material-expressions/vector#PixelNormalWS) 入力に接続します。法線が何も指定されないと、メッシュのタンジェント法線が使用されます。 |
GIReplace
GIReplace によりアーティストは、マテリアルを GI に使用中に、通常はより単純な別の表現式チェーンを指定することができます。
使用例:Lightmass スタティック GI と LPV ダイナミック GI で使用します。
入力 | 説明 |
---|---|
Default | デフォルトの GI です。 |
StaticIndirect | 焼き付けられた間接ライティングに使用します。 |
DynamicIndirect | 焼き付けられた動的な間接ライティングに使用します。 |
LightmassReplace
LightmassReplace 表現式は、通常のレンダリング目的のマテリアル コンパイル時に Realtime 入力を通過し、グローバル イルミネーション処理の際にマテリアルを Lightmass へエクスポートする時、 Lightmass 入力を通過します。これは、WorldPosition のようなエクスポートされたバージョンが正常に処理されない際など回避策として有益です。
入力 | 説明 |
---|---|
Realtime | 通常のレンダリング処理のため通過する値を受け取ります。 |
Lightmass | マテリアルを Lightmass へエクスポートする際に通過する値を受け取ります。 |
LinearInterpolate
LinearInterpolate 表現式はマスクに使用された第 3 の入力値に基づいて 2 つの入力値をブレンドします。これは Photoshop のレイヤーマスクのように、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 | マスク アルファとして使用する値を受け取ります。アルファ入力が未接続の場合に限り使用されます。 |
入力値 | |
A | 黒 (0.0) にマッピングされた値を受け取ります。 |
B | 白 (1.0) にマッピングされた値を受け取ります。 |
Alpha | マスク アルファとして使用する値を受け取ります。 |
プログラマー: LinearInterpolate はパラメータのアルファ値に基づいて A と B の間の各チャンネルの lerp (Linear Interpolate 線形補間) を実行します。
Noise
Noise 表現式は、生成方法について制御できるプロシージャルなノイズ フィールドを作成します。
アイテム | 説明 | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
プロパティ | |||||||||||||||||||||||
Scale | ノイズ セルの全体的なサイズを変更します。値が低いほどノイズは大きくなります。 | ||||||||||||||||||||||
Quality | 外観、パフォーマンスを設定します。値が低いと処理は速くなりますが外観が悪くなります。値が高いと処理は遅くなりますが外観が良くなります。 | ||||||||||||||||||||||
Function |
|
||||||||||||||||||||||
Turbulence | オンにるすと、各ノイズのオクターブは絶対値のみ結果に追加します。視覚的な特徴を変更し、形状を山の背のようにすることができます。 | ||||||||||||||||||||||
Levels | 異なるスケールで結合する異なるレベル数です。演算負荷にレベル数を乗算します。 | ||||||||||||||||||||||
Output Min | ノイズ計算によって出力される最低値です。 | ||||||||||||||||||||||
Output Max | ノイズ計算によって出力される最高値です。 | ||||||||||||||||||||||
Level Scale | 常にアクティブで、それぞれの新規のオクターブのスケール変更量を決定します。 | ||||||||||||||||||||||
Tiling | サポート対象のノイズ関数の場合、ノイズにタイル処理ができるようにします。負荷が高くなりますが、ノイズをシームレスにラップするテクスチャにベイクする場合に便利です。 | ||||||||||||||||||||||
Repeat Size | タイリングの際のノイズの繰り返し回数です。 | ||||||||||||||||||||||
入力値 | |||||||||||||||||||||||
Position | 3D ベクターを介してテクスチャ サイズを調整できます。 | ||||||||||||||||||||||
FilterWidth | 実際にノイズ テクスチャにどの程度のブラーを適用するかを制御します。 |
Previous Frame Switch
Previous Frame Switch マテリアル表現式は、テンポラル アンチエイリアシングおよびモーション ブラーと正しく動作するように正確なモーション ベクターを生成するために、マテリアルで実装されている複雑な 頂点アニメーション をサポートします。
時間の関数だけのマテリアルは修正せずに既に機能していますが、実行時にマテリアル パラメータなどアニメーションに影響を与える他の変数を構成するこはできません。Previous Frame Switch マテリアル表現式はパラメータがどのように変化するかを追跡することでこの問題を手動で解決する手段を提供します。たとえばブループリントでは、フレーム間の World Position Offset の変化によって生じるモーション ベクター生成の表現式を与えることができます。
この表現式を正しく使うためには、Project Settings (プロジェクト設定)] の [Rendering (レンダリング)] で頂点変数からベロシティを有効にする必要があります。
- 4.24 以降のバージョンでは Accurate velocities from Vertex Deformation を使用します。
- 4.25 以降のバージョンでは Output velocities from vertex deformation を使用します。
アイテム | 説明 |
---|---|
Current Frame | 開始位置の参照として使用する指向性ベクターです。 |
Previous Frame | ブラーの追加量の XYZ 参照として使用する指向性ベクターです。 |
これは、マテリアルにおける Previous Frame Switch マテリアル表現式の使用例です。
この例では、Previous Frame Switch が Multiply ノード経由で定数値を使って指向性ブラーを調節しています。
この例をみると、エピックの開発した Fortnite などのゲームにおいて、オンスクリーンで集まった頂点アニメーションでモーション ブラーをこの表現式でどのように調節しているかが分かります。 右側のアニメーションは Previous Frame Switch を使ってモーション ブラーを追加しています。左側は使っていません。
ビューポートの表示フラグ
[Show] > [Visualize] > [Previous Frame's Reprojection (前のフレームの再投影)] にあるエディタ ビューポートの表示フラグを Previous Frame Switch と使用すると、現在と前のフレームとの矛盾を診断して修正することができます。
有効にすると、現在のフレームの色と前のフレームの色を比較し、2 つのフレームの差を返します。差がゼロの場合、ビューポートではマテリアルがグレーで表示されます (左の写真)。方向ベクトルが一致しない場合、マテリアルは色のついたオーバーレイを表示します (右の写真)。
QualitySwitch
QualitySwitch 表現式は、よりローエンドのデバイス上で低いクオリティを使用するなどエンジンが異なるクオリティ レベルで切り替わった場合に、異なる表現式ネットワークを使用できるようにします。
入力 | 説明 |
---|---|
Default | デフォルトのビジュアル クオリティ用にデザインされたネットワークに対して使用される入力です。 |
Low | ビジュアル品質設定が低めのネットワークに使用する入力です。 |
High | ビジュアル品質設定が高めのネットワークに使用する入力です。 |
RotateAboutAxis
RotateAboutAxis 表現式は回転軸、軸の点、回転角度に与えられた 3 チャンネルのベクター入力値を回転させます。簡素なシアよりも高い品質の WorldPositionOffset を使用しているアニメーションで役立ちます。
入力 | 説明 |
---|---|
NormalizedRotationAxis | オブジェクトが回転する軸を表す正規化された (0-1) ベクターを受け取ります。 |
RotationAngle | 回転の角度。値 1 は 360 度全体の回転角度を表します。 |
PivotPoint | オブジェクトが回転する回転軸を表す 3 チャンネルのベクターを受け取ります。 |
Position | オブジェクトの位置を表す 3 チャンネルのベクターを受け取ります。RotateAboutAxis 表現式が作成されると、 WorldPosition 表現式が自動的に作成され、この入力に接続されます。 |
上記の例ではプレビューの平面が表示され、垂直軸上での回転のように見えます。
SphereMask
SphereMask 表現式は、距離計算に基づきマスク値を出力します。ある入力が点の位置で、その他の入力がある範囲を伴う球のセンターの場合、マスク値はトランジションエリア内の外側に 0 で内側に 1 となります。これは 1、 2、3、4 つのコンポーネントを持つベクターで機能します。
アイテム | 説明 |
---|---|
プロパティ | |
Attenuation (減衰) Radius | 距離の計算に使用する半径を指定します。 |
Hardness (硬化) Percent | トランジション エリアのサイズを指定します。これは Photoshop のブラシの硬さの値のような働きをします。0 は遷移が硬いことを表し、 100 は遷移エリアが最大限 (柔らかい) ことを意味します。 |
入力値 | |
A | チェックするポイントの位置を表す値を受け取ります。 |
B | 球の真ん中を表す値を受け取ります。 |
Thin Translucent
Thin Translucent Material Output 式は、物理ベースの透過マテリアルを単一のパスで正確に表現します。これにより、ライトとシェーディングに正確に反応するティントまたは色付けされた透明性があるマテリアルなど物理ベースの透明性があるマテリアルを正確に表現することができます。
着色ガラス マテリアルを作成する場合、白いスペキュラ ハイライトを追加しそれを背景に色付けする必要があります。これらは、空気からガラスとガラスから空気への光のバウンスを考慮した物理ベースのシェーダを使用して、単一パスでレンダリングします。
[Material 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 と併用すると、ボロノイのセル単位でビヘイビアを一部ランダム化することができます。 |
以下は、Vector Noise / Voronoi の距離コンポーネントを使って、サーフェスのバンプやクラックの苔のブレンドを調整したシンプルな地面の石のマテリアルです。シードの位置と Vector Noise / Cellnoise を合わせて石毎に色やバンプの高さを変えています。
Perlin Curl と Perlin Gradient は微分係数ベースの演算なので、オクターブでまとめて追加することができます。より複雑な式の微分係数については、表現式の結果の勾配を計算する必要があります。これを行うには、計算する表現式をマテリアル関数に配置し、以下のヘルパー ノードと併用します。
項目 | 説明 |
---|---|
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 マテリアル サンプル: