シェーダーノード
7 個のカテゴリに、95 個のノードがあります。ノードを組み合わせてマテリアルをつくるためのものです。使い方は、マテリアルグラフを参照してください。
入力と出力の型は 4 種類です。float は 1 つの数値で、vec2、vec3、vec4 はそれぞれ 2 つ、3 つ、4 つの数値を持ちます。vec3 は色か方向を表します。サイズの違うポートどうしをつないだ場合は、意味が通るところでは自動で処理されます。
const
自分で入力する固定の値です。
| ノード | 働き | 入力 | 出力 |
|---|---|---|---|
constFloat | 固定の数値。 | — | out:float |
constVec3 | 固定の 3 つの数値。 | — | out:vec3 |
input
出発点になる値です。テクスチャ座標(UV)、面の法線、時間、テクスチャ、オブジェクトのどのコピーを描画しているか、などがあります。
| ノード | 働き | 入力 | 出力 |
|---|---|---|---|
cameraDistance | このピクセルがカメラからどれだけ離れているか。距離に応じてフェードアウトさせるのに便利です。 | — | out:float |
chromaKey — Chroma key | 色を 1 つ取り除きます。たとえば、グリーンバックを透明にできます。 | color:vec3, key:vec3, similarity:float, smoothness:float, spill:float | rgba:vec4 |
instanceColor — Instance Color | 描画中のコピーの色合い。 | — | out:vec3 |
instanceId — Instance ID | インスタンス化したオブジェクトの、どのコピーを描画しているか。ハッシュに通すと、コピーごとに違いを出せます。 | — | out:float |
materialRef — Material | 別のマテリアルを出発点として使います。 | — | out:vec3 |
normal | 面が向いている方向。 | — | out:vec3 |
normalMap | ノーマルマップを適用し、ジオメトリを増やさずに表面の細かな凹凸を加えます。 | uv:vec2, strength:float | out:vec3 |
paramColor — Param (color) | マテリアルの設定として表示される色です。グラフを編集せずに変更できます。 | — | out:vec3 |
paramFloat — Param (float) | マテリアルの設定として表示される数値です。グラフを編集せずに変更できます。 | — | out:float |
position | 面上の点。オブジェクト自身の座標で表します。 | — | out:vec3 |
sampleLod — Sample Texture LOD | 選んだぼかしの度合いで画像を読み取ります。手軽に画像をぼかせます。 | uv:vec2, lod:float | rgba:vec4 |
screenUv | 面の上ではなく、画面上でのピクセルの位置。 | — | out:vec2 |
texelFetch — Texel Fetch | なめらかにせず、ちょうど 1 つのピクセルを読み取ります。 | texel:vec2 | rgba:vec4 |
texelSize — Texture Size | テクスチャの 1 ピクセルの大きさです。隣のピクセルを読むエフェクトに使います。 | — | size:vec2, texel:vec2 |
texture | 指定した座標で画像を読み取ります。 | uv:vec2 | rgba:vec4 |
time | シーンが始まってからの秒数です。動くものすべてに使います。 | — | out:float |
triplanar | テクスチャを 3 方向から同時に投影します。テクスチャ座標がない形や、座標が引き伸ばされた形でも、正しく見えます。 | scale:float, blend:float | rgba:vec4 |
uv | 描画中のピクセルのテクスチャ座標です。ほとんどの模様はここから始まります。 | — | out:vec2 |
viewDirection | 面からカメラへの方向。 | — | out:vec3 |
worldPosition | 同じ点をワールド座標で表したものです。オブジェクトが動いてもその場に留まるエフェクトに使います。 | — | out:vec3 |
light
自分で形を決められるライティングです。
| ノード | 働き | 入力 | 出力 |
|---|---|---|---|
fresnel | 面が向こう側へ回り込んでいく縁ほど強くなります。リムライト、フォースフィールド、車の光沢に使います。 | power:float, normal:vec3 | out:float |
lit — Lit (scene lights) | 標準のライティングです。独自のグラフでも、シーンになじみます。 | color:vec3, roughness:float, specular:float, normal:vec3 | out:vec3 |
toonLit — Toon (scene lights) | 段のついたライティングです。アニメ調の見た目にします。 | color:vec3, steps:float, normal:vec3 | out:vec3 |
math
1 つの数値に対する計算です。
| ノード | 働き | 入力 | 出力 |
|---|---|---|---|
abs | マイナスの符号を取り除きます。 | x:float | out:float |
add | 足し算をします。 | a:float, b:float | out:float |
atan2 | ある点への角度です。放射状の模様をつくるのに使います。 | y:float, x:float | out:float |
ceil | 切り上げます。 | x:float | out:float |
clamp | 値を範囲の中に収めます。 | x:float, min:float, max:float | out:float |
cos | コサイン。 | x:float | out:float |
divide | 割り算をします。 | a:float, b:float | out:float |
exp | e の、入力の値乗。 | x:float | out:float |
fbm | 重ね合わせたノイズです。雲、煙、さび、地形に使います。 | uv:vec2, scale:float, octaves:float | out:float |
floor | 切り捨てます。 | x:float | out:float |
fract | 小数点より下の部分だけを残します。模様を繰り返すときの定番の方法です。 | x:float | out:float |
log | 自然対数。 | x:float | out:float |
max | 2 つのうち大きいほう。 | a:float, b:float | out:float |
min | 2 つのうち小さいほう。 | a:float, b:float | out:float |
mix | 2 つの値を混ぜます。 | a:float, b:float, t:float | out:float |
mod | 割り算の余りです。値を一周させて最初に戻す、もう 1 つの方法です。 | x:float, y:float | out:float |
multiply | 掛け算をします。 | a:float, b:float | out:float |
noise | なめらかなランダムの値です。自然な見た目のものは、ここから始めましょう。 | uv:vec2, scale:float | out:float |
oneMinus | 0〜1 の値を反転します。0 は 1 に、1 は 0 になります。 | x:float | out:float |
posterize | 値を決まった段階数に丸めて、段のついた見た目にします。 | x:float, steps:float | out:float |
pow | べき乗します。 | x:float, e:float | out:float |
remap | ある範囲の値を、別の範囲の値に変換します。 | x:float, inMin:float, inMax:float, outMin:float, outMax:float | out:float |
round | いちばん近い整数に丸めます。 | x:float | out:float |
sign | −1、0、1 のどれかを返します。 | x:float | out:float |
sin | サイン。揺れ、脈打つ動き、波紋に使います。 | x:float | out:float |
smoothstep | やわらかい境目です。2 つのしきい値の間がなめらかにつながります。特によく使うノードの 1 つです。 | from:float, to:float, x:float | out:float |
sqrt | 平方根。 | x:float | out:float |
step | くっきりした境目です。しきい値より下は 0、上は 1 になります。 | edge:float, x:float | out:float |
subtract | 引き算をします。 | a:float, b:float | out:float |
tan | タンジェント。 | x:float | out:float |
voronoi | 細胞のような模様です。うろこ、ひび割れた地面、ステンドグラスに使います。 | uv:vec2, scale:float | dist:float, cell:float |
output
グラフの終わりです。表面の最終的な見た目を決めます。
| ノード | 働き | 入力 | 出力 |
|---|---|---|---|
mrtOutput — Output (MRT) | 複数の出力を一度に書き込みます。高度な設定向けです。 | color:vec3, alpha:float, color1:vec3, alpha1:float, color2:vec3, alpha2:float, color3:vec3, alpha3:float | — |
output | グラフの終わりです。表面の最終的な見た目になります。 | color:vec3, alpha:float, offset:vec3 | — |
surfaceOutput — Output (surface) | 表面を記述します。ベースカラー、メタリック、ラフネス、法線、エミッシブ、アルファです。 | baseColor:vec3, metallic:float, roughness:float, emissive:vec3, normal:vec3, alpha:float, offset:vec3, clearcoat:float, clearcoatRoughness:float, ior:float, transmission:float, thickness:float | — |
post
完成したフレームを読み取るノードです。これを使うと、グラフは表面のマテリアルではなく、全画面のエフェクトになります。
| ノード | 働き | 入力 | 出力 |
|---|---|---|---|
chromaticAberration | 本物のレンズのように、縁で色のチャンネルをずらします。 | uv:vec2, amount:float | out:vec3 |
contrast | 明るい部分をより明るく、暗い部分をより暗くします。 | color:vec3, amount:float | out:vec3 |
exposure | 画像全体を明るく、または暗くします。 | color:vec3, amount:float | out:vec3 |
grain | フィルムのような粒子を加えます。 | color:vec3, intensity:float | out:vec3 |
invert | 画像の色を反転します。 | color:vec3 | out:vec3 |
saturation | 色を強く、または弱くします。 | color:vec3, amount:float | out:vec3 |
screenColor | すでに描画されたシーンです。このノードを使うと、グラフは全画面のエフェクトになります。 | — | out:vec3 |
tint | 画像をある色に寄せます。 | color:vec3, tint:vec3 | out:vec3 |
vignette | フレームの縁を暗くします。 | color:vec3, offset:float, darkness:float | out:vec3 |
vector
ベクトルや色を組み立て、分解し、変換します。
| ノード | 働き | 入力 | 出力 |
|---|---|---|---|
addVec3 | 3 つの数値を持つベクトルどうしを足します。 | a:vec3, b:vec3 | out:vec3 |
alpha | 透明度のチャンネルを取り出します。 | v:vec4 | out:float |
combineVec2 | 2 つの数値からベクトルをつくります。 | x:float, y:float | out:vec2 |
combineVec3 | 3 つの数値からベクトルをつくります。 | r:float, g:float, b:float | out:vec3 |
combineVec4 | 4 つの数値からベクトルをつくります。 | rgb:vec3, a:float | out:vec4 |
cross | 両方に直角な向き。 | a:vec3, b:vec3 | out:vec3 |
distance | 2 点間の距離。 | a:vec3, b:vec3 | out:float |
dot | 内積です。2 つの向きがどれだけ近いかを表します。 | a:vec3, b:vec3 | out:float |
equirectUv — Equirect UV | 方向をパノラマ画像の上の位置に対応させます。 | dir:vec3 | uv:vec2 |
flipbook — Flipbook | 1 枚の画像に格子状に並んだコマを、アニメーションとして再生します。 | uv:vec2, frame:float, tilesX:float, tilesY:float | uv:vec2 |
gamma | ガンマカーブを適用します。 | rgb:vec3, gamma:float | out:vec3 |
hsvToRgb | 色相、彩度、明度を色に戻します。 | hsv:vec3 | out:vec3 |
hueToRgb | 色相をそのまま色に変換します。 | h:float | out:vec3 |
length | ベクトルの長さ。 | v:vec3 | out:float |
luminance | 目で見たときの色の明るさ。 | rgb:vec3 | out:float |
mixVec3 | 3 つの数値を持つベクトルどうしを混ぜます。 | a:vec3, b:vec3, t:float | out:vec3 |
multiplyVec3 | 3 つの数値を持つベクトルどうしを掛けます。 | a:vec3, b:vec3 | out:vec3 |
normalize | 向きはそのままで、長さを 1 にします。 | v:vec3 | out:vec3 |
panner | 座標を時間とともにスクロールさせます。流れる水、ベルトコンベア、エネルギービームに使います。 | uv:vec2, speed:vec2 | out:vec2 |
reflect | 向きを面で跳ね返します。 | v:vec3, normal:vec3 | out:vec3 |
rgb | 3 つの数値から色をつくります。 | v:vec4 | out:vec3 |
rgbToHsv | 色を色相、彩度、明度に変換します。色相をずらすときに便利です。 | rgb:vec3 | out:vec3 |
scaleVec2 | 2 つの数値を持つベクトルに数値を掛けます。 | v:vec2, s:float | out:vec2 |
scaleVec3 | 3 つの数値を持つベクトルに数値を掛けます。 | v:vec3, s:float | out:vec3 |
splitVec2 | 2 つの数値に分けます。 | v:vec2 | x:float, y:float |
splitVec3 | 3 つの数値に分けます。 | v:vec3 | x:float, y:float, z:float |
uvTransform | 画像を読み取る前に、座標を拡大・回転・移動します。 | uv:vec2, tiling:vec2, offset:vec2, rotation:float, center:vec2 | out:vec2 |