HOME

おすすめした岩のチュートリアルを追う④

おすすめした以上はね

概要

最近岩のチュートリアルを知人におすすめする機会があった。
https://www.procedural.jp/articles/p9toa-c3f
自分も追いなおして紹介されているテクニックなどをまとめていく。

本記事の内容

Free Masterclass: Developing Complex Details Using Volumes in Houdini

上述のボリュームベースで岩のディテールを作成するチュートリアルを追っていく。
非常に素晴らしいクオリティの岩を作成できるチュートリアルです。
この記事はVDB関連のテクニックを教えてくれている2時間目くらいから動画の最後までの内容となる。

1時間25分くらいまではこちらの記事を参照:https://www.procedural.jp/articles/tfo6hjnnym

紹介されているテクニック

(前のブログからの続き)

エッジに対して強めにノイズをかける

表面部分とエッジ部分では現実の岩だとエッジ部分にダメージが集中していることが多いので
エッジに対して強めにノイズをかけるような構成を作成する。

メッシュをDivideノードに接続し、分割を増やしてpoint vopに接続する

divideした岩形状に対してpointvopを接続

pointvopに入り、Nに対してcross productを接続して接線ベクトルを取得する。
crossノードは初期値で接続すると接線が取れる。
さらにその接線ベクトルとNをもう一つのcross productに接続してもうひと方向の接線ベクトルを作成する。

2方向の接線ベクトルを作成して、その2つを乗算したノイズで移動する

この接続でノイズを設定するとNの接線方向に強めにノイズを適用することができる。

フェース方向に比べてエッジ方向にノイズが強めにかかる
エッジ部分に強めにノイズが掛かる

補足:resampleもいいかも

動画ではDivideで分割を増やしていたがエッジをresampleした方が目的にあった形状が得られそう

divideで分割するよりresampleの方が制御しやすかった


ここまで2時間15分くらい

ここから2時間40分くらいまでいままでのテクニックで崖を作っている


以降、SDF VDBでデータを調整していっている

DistanceVDBでVolumeVopを利用する

distance vdbでvopなどを扱う場合はアトリビュート周りの調整が必要になるvolume vopの持つparamaterのバインド先を変更する
volumeVOPの Volume Bindingsタブを開き、Autobind By Nameをオフにして主導でdensityをsurfaceとして置き換える。
これでVolueVopの影響がSDFにかかっていれば成功。Density同様にVOPを利用できる。

SDFでVolumeVopを利用するために参照パラメータの置き換えを行う

なぜSDFだとこの対応が必要なのか、みたいな内部データの扱いについては別記事にまとめたので
よければ以下のページも参照してください。

SDFでボリュームを扱う

Worley Noise を各方向に満遍なく影響させる

Worleyノイズはvectorの形で出力されないのでPに対してノイズの影響をそのまま足し合わせると影響の方向に偏りが生じてしまう
これをフェース方向に適用できるような構成を作成する。

WorleyノイズはPにノイズを足すだけでは方向が偏ってしまう

SDFのVDBからvector形式のVDBを作成して名前を「grad」にする。
このノイズはビューポート上にはそのままだと表示されない。
この変換したvectorノイズをpoint vopの第2接続に接続する。
(動画ではそうつけていたけど厳密には名前は別に付けなくてもいい)

vectorボリュームを作成し、VOPの第2接続に接続する

VOPに入り volume sample vectorノードを作成し、第2接続の「grad」を参照する。
参照したgradをnormalizeし、 worleyの出力からsubtractで作成したノイズをmultipleし、PにaddしてPをsampleする

VolumeSampleVectorノードを作成し、worleyから作成したノイズと乗算する

上記の手順のグラフを作成するとフェース方向に影響するworleyノイズとして利用できる

法線方向にworleyノイズを適用することができる

余談:どういった計算をしているか


vectorに変換したボリュームをVolumeTrailノードで確認するとフェース法線方向のベクトルになっているのが判る

Vectorに変換したSDFのプレビュー

これをworleyから作成した1Dノイズをかけることで法線方向にノイズをかけていた。
つまりこの構成は法線方向にノイズを加えた状態の3次元ベクトルを作る方法であり、
Worley以外の1DNoiseでも各フェース方向へのノイズとして利用できる

worleyの部分を1Dノイズに置き換えるとそれが各フェース方向に適用できているのが判る

ノイズにノイズを入力する

2重にノイズをかけると一気に不規則的な形状になる。いろいろなノイズを組合わせも可能

ノイズを複数接続することでも有機的な表現が可能


感想

以上でこの動画のテクニック書き起こし終了。
有用なテクニックが非常に多く、結局4回に渡ってしまったが追って正解だったと感じる。

良い岩作成ライフを!

fish_ball

プロシージャル魚類