シェーダーノード リファレンス
7 カテゴリ、95 ノード。material をグラフとして組み立てるためのものです。使い方:マテリアルグラフ。
ポートの型は float、vec2、vec3、vec4 です。vec3 は色または方向を表します。幅の違うポートどうしの接続は、意味が通る場合は自動で処理されます。
const
自分で入力する固定値。
| ノード | 働き | 入力 | 出力 |
|---|---|---|---|
constFloat | 固定の数値。 | — | out:float |
constVec3 | 固定の三つ組。 | — | out:vec3 |
input
値の出どころ — UV、面の法線、時間、テクスチャ、描画中のインスタンス。
| ノード | 働き | 入力 | 出力 |
|---|---|---|---|
cameraDistance | そのピクセルがカメラからどれだけ離れているか。距離でフェードさせるのに便利です。 | — | out:float |
chromaKey — Chroma key | 特定の色を抜き、グリーンバックを透明にします。 | color:vec3, key:vec3, similarity:float, smoothness:float, spill:float | rgba:vec4 |
instanceColor — Instance Color | そのコピーが持つ色味。 | — | out:vec3 |
instanceId — Instance ID | インスタンス化されたオブジェクトのどのコピーを描いているか。ハッシュに通せばコピーごとに違いが出ます。 | — | out:float |
materialRef — Material | 別の material を出発点として取り込みます。 | — | out:vec3 |
normal | 面がどちらを向いているか。 | — | out:vec3 |
normalMap | normal map を適用し、ジオメトリを増やさずに表面の凹凸を足します。 | uv:vec2, strength:float | out:vec3 |
paramColor — Param (color) | 同じように表に出る色。 | — | out:vec3 |
paramFloat — Param (float) | material の設定として表に出る数値。グラフを開かずに調整できます。 | — | out:float |
position | オブジェクト自身の空間での、面上の点。 | — | out:vec3 |
sampleLod — Sample Texture LOD | 選んだぼけ具合の段でサンプリングします — 安価なぼかしです。 | uv:vec2, lod:float | rgba:vec4 |
screenUv | 面の上ではなく、画面上のどこにピクセルがあるか。 | — | out:vec2 |
texelFetch — Texel Fetch | フィルタリングなしで、ちょうどそのピクセルを読みます。 | texel:vec2 | rgba:vec4 |
texelSize — Texture Size | テクスチャの 1 ピクセルの大きさ。隣を参照する効果に使います。 | — | size:vec2, texel:vec2 |
texture | 指定した座標で画像をサンプリングします。 | uv:vec2 | rgba:vec4 |
time | シーン開始からの秒数。動くものはすべてここから始まります。 | — | out:float |
triplanar | 三方向から同時にテクスチャを投影し、UV のない、あるいは引き伸ばされたジオメトリでも正しく見せます。 | 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
単一の数値に対する演算とカーブ。
| ノード | 働き | 入力 | 出力 |
|---|---|---|---|
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 | 大きい方。 | a:float, b:float | out:float |
min | 小さい方。 | a:float, b:float | out:float |
mix | 二つの値を混ぜます。 | a:float, b:float, t:float | out:float |
mod | 剰余。値を折り返させるもう一つの方法です。 | x:float, y:float | out:float |
multiply | 掛けます。 | a:float, b:float | out:float |
noise | なめらかな乱数。有機的なものはすべてここから始まります。 | uv:vec2, scale:float | out:float |
oneMinus | 0〜1 の値を反転します。意外なほどよく使います。 | 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 | 柔らかい境界。二つのしきい値の間がグラデーションになります。シェーダーグラフの主役です。 | 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 | 三つ組どうしを足します。 | a:vec3, b:vec3 | out:vec3 |
alpha | 透明度のチャンネルを取り出します。 | v:vec4 | out:float |
combineVec2 | 二つ組を作ります。 | x:float, y:float | out:vec2 |
combineVec3 | 三つ組を作ります。 | r:float, g:float, b:float | out:vec3 |
combineVec4 | 四つ組を作ります。 | rgb:vec3, a:float | out:vec4 |
cross | 両方に垂直な方向。 | a:vec3, b:vec3 | out:vec3 |
distance | 二点間の距離。 | a:vec3, b:vec3 | out:float |
dot | 内積 — 二つの向きがどれだけ一致しているか。 | a:vec3, b:vec3 | out:float |
equirectUv — Equirect UV | 方向をパノラマ画像へ投影します。 | dir:vec3 | uv:vec2 |
flipbook — Flipbook | 一枚の画像に並んだコマをアニメーションとして再生します。 | 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 | 三つ組どうしを混ぜます。 | a:vec3, b:vec3, t:float | out:vec3 |
multiplyVec3 | 三つ組どうしを掛けます。 | 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 | 三つの数値から色を作ります。 | v:vec4 | out:vec3 |
rgbToHsv | 色を色相・彩度・明度へ — 色相をずらすならこれが簡単です。 | rgb:vec3 | out:vec3 |
scaleVec2 | 二つ組を数値倍します。 | v:vec2, s:float | out:vec2 |
scaleVec3 | 三つ組を数値倍します。 | v:vec3, s:float | out:vec3 |
splitVec2 | 二つ組を分解します。 | v:vec2 | x:float, y:float |
splitVec3 | 三つ組を分解します。 | v:vec3 | x:float, y:float, z:float |
uvTransform | サンプリング前に座標を拡大・回転・移動します。 | uv:vec2, tiling:vec2, offset:vec2, rotation:float, center:vec2 | out:vec2 |