【Blender 5.1】Gradient, Divergence, Laplacian, Curlの使い方:ジオメトリノード

blender
記事内に広告が含まれています。

Blenderのジオメトリノードでグリッド(Volume)を扱っていると、
Gradient・Divergence・Laplacian・Curlといった見慣れないノードが出てきます。

名前だけ見ると難しそうですが、これらは
スカラーとベクトルをどう変換するかというルールを持ったノードです。グリッドの計算ノードみたいな感じです。

この記事では、それぞれのノードが

  • 何を入力に取り
  • 何を出力するのか

を中心に、できるだけ直感的にまとめていきます。

数式も少しだけ登場しますが、理解する必要はありません。
まずは入出力データがスカラーなのかベクトルなのか、が分かれば、使っていくうちにどういう動きをするかが感覚でわかってくると思います。

Gridの使い方は以下の記事で解説しています。

スポンサーリンク

ベクトル解析の名前とのズレ

ベクトル解析やったことある人だと、あれ?Curlってrotじゃないの?って思うかもしれないですが、そもそもベクトル解析で使う用語が英語圏と名称が違うらしいです。

対応

  • grad(勾配) = gradient
  • div(発散) = divergence
  • rot (回転)= curl

なので名前が違うだけです。

スポンサーリンク

Grid Gradient ノード

Grid Gradient ノードは、スカラー値のボクセルグリッドの 勾配(gradient) を計算します。
勾配とは、各ボクセルにおける 値が最も速く増加する方向とその変化の速さ を表すベクトル場です。

  • 「密度」「温度」「距離」などのスカラー値が 3D 空間でどう変化しているかを示す
  • ベクトルの 方向 → 値が増えていく方向
  • ベクトルの 大きさ → その方向にどれだけ急に変化しているか

数式 スカラー場 f(x,y,z)f(x,y,z)f(x,y,z) の勾配は次の通り:f=fxi^+fyj^+fzk^\nabla f = \frac{\partial f}{\partial x} \hat{i} + \frac{\partial f}{\partial y} \hat{j} + \frac{\partial f}{\partial z} \hat{k}∇f=∂x∂f​i^+∂y∂f​j^​+∂z∂f​k^

使い方

  • 入力Grid
    勾配を計算する対象のグリッド。
    Floatの値(密度や距離など)が入っている必要があります。
  • 出力GridGradient(勾配ベクトル)
    入力グリッドの勾配を表すベクトルグリッド。
    各ベクトルは値が最も速く増加する方向を指し、その長さは変化の速さを表します。

利用例

  • SDF(Signed Distance Field)から 法線ベクトル を作る
  • 密度や温度場から 流れの方向 を求める
スポンサーリンク

Grid Divergence ノード

Grid Divergence ノードは、ボクセルグリッドに格納された ベクトル場の発散(divergence) を計算します。
発散とは、ある点で ベクトルがどれだけ広がっているか(外向きの流れ)、あるいは 収束しているか(内向きの流れ) を示す値です。

  • 正の値 → ベクトルがその点から外向きに広がっている(ソース)
  • 負の値 → ベクトルがその点に向かって集まっている(シンク)
  • 0 に近い値 → 流れが局所的にバランスしている

数式 3D ベクトル場 F=(Fx,Fy,Fz)\mathbf{F} = (F_x, F_y, F_z) の発散F=Fxx+Fyy+Fzz\nabla \cdot \mathbf{F} = \frac{\partial F_x}{\partial x} + \frac{\partial F_y}{\partial y} + \frac{\partial F_z}{\partial z}∇⋅F=∂x∂Fx​​+∂y∂Fy​​+∂z∂Fz​​

使い方

  • 入力Grid
    発散を計算する対象のベクトルグリッド。
    3D ベクトル値(速度場や方向場など)が格納されている必要があります。
  • 出力GridDivergence(発散値グリッド)
    入力ベクトル場の発散を示す浮動小数点グリッド。
    • 正の値 → 外向きに流れている領域(ソース)
    • 負の値 → 内向きに流れている領域(シンク)

利用例

  • 流体や煙のシミュレーションで 非圧縮性(incompressibility) を保つ計算に使える
  • ベクトル場の流れの広がりや収束を視覚化する
  • 方向ベクトルの「ソース・シンク」を解析する
スポンサーリンク

Grid Laplacian ノード

Grid Laplacian ノードは、スカラー値のボクセルグリッドの ラプラシアン(Laplacian) を計算します。
ラプラシアンは、あるボクセルの値が 周囲の平均と比べてどれだけ異なるか を示す値で、局所的な「曲がり」や「凸凹度」を表します。

  • 値が周囲より小さい → のラプラシアン(局所的な谷)
  • 値が周囲より大きい → のラプラシアン(局所的な山)

数学的には、ラプラシアンは 勾配の発散 として定義されます:2f=(f)\nabla^2 f = \nabla \cdot (\nabla f)2f=2fx2+2fy2+2fz2\nabla^2 f = \frac{\partial^2 f}{\partial x^2} + \frac{\partial^2 f}{\partial y^2} + \frac{\partial^2 f}{\partial z^2}∇2f=∂x2∂2f​+∂y2∂2f​+∂z2∂2f​

使い方

  • 入力Grid
    ラプラシアンを計算する対象のスカラー値グリッド。
    密度、温度、SDF(Signed Distance Field)などの浮動小数点値(Float)が入っている必要があります。
  • 出力GridLaplacian(ラプラシアン値グリッド)
    入力グリッドのラプラシアンを示す浮動小数点グリッド。
    • 各ボクセルには、X/Y/Z 方向の 二階微分の和 が入る
    • 局所的なピークや谷を検出するのに使える
    • 手続き的グリッドの 平滑化・拡散 に利用可能

利用例

  • 局所的な凸凹(ピーク・谷)の検出
  • 手続き的モデリングでの形状調整や物理シミュレーション

※Sample Gridの補間方法や、勾配・発散グリッドを使った計算手法などの違いによって計算結果が少し異なっているようです。

スポンサーリンク

Grid Curlノード

ベクトルグリッドの「回転(渦)」の強さと向きを計算するノードです。
ここでいう「Curl(カール)」は、その場でどれくらい回っているか(回転しているか)を表します。

例:

  • 入力…ベクトルグリッド(例:速度場)…各ボクセルに「方向+大きさ(ベクトル)」が入ってる
  • 出力…Grid Curlはそれに対してそのベクトルの流れがどれだけ回転しているかを計算する

数式 Curl×F=(FzyFyz)i+(FxzFzx)j+(FyxFxy)k\nabla \times \mathbf{F} = \left( \frac{\partial F_z}{\partial y} – \frac{\partial F_y}{\partial z} \right)\mathbf{i} + \left( \frac{\partial F_x}{\partial z} – \frac{\partial F_z}{\partial x} \right)\mathbf{j} + \left( \frac{\partial F_y}{\partial x} – \frac{\partial F_x}{\partial y} \right)\mathbf{k}∇×F=(∂y∂Fz​​−∂z∂Fy​​)i+(∂z∂Fx​​−∂x∂Fz​​)j+(∂x∂Fy​​−∂y∂Fx​​)k

使い方

  • 入力Grid
    ベクトルグリッド(例:速度場)…各ボクセルに「方向+大きさ(ベクトル)」が入ってる
  • 出力Grid…ベクトルグリッド
    • 向き → 回転軸(どっち向きに回ってるか)
    • 大きさ → 回転の強さ

  • まっすぐ流れてる場合
    → Curl = 0(回ってない)
  • 渦になってる場合
    → Curl ≠ 0(回ってる)
  • イメージ
    • 川が一直線に流れる → 回転なし
    • 水がぐるぐる渦を巻く → Curlあり

用途

煙・流体・ノイズに「渦っぽさ」を出す

  • タービュランス
  • 渦ノイズ
  • フローフィールド解析

コメント