K06のBLOG

BlenderとInkscapeとDavinciResolveを使用する上での日記的なブログ

【blender3.01】点密度テクスチャの使い方

f:id:K06:20220301145725p:plain

blender内蔵のプロシージャルテクスチャは沢山ありますが、点密度だけ使い方を最近までわかっていませんでした。

使い方がわかるとめちゃくちゃ楽しかったので紹介したいと思います。

どうもこんにちは!K06です。

プロシージャルテクスチャとは、数式を使ったテクスチャの事です。

といってもピンとこないでしょう。

普通テクスチャと言うとドローソフトやベクター等で出力した物を貼り付けますよね?

ドローソフトで等で作ったテクスチャは気に入らなければ作り直しなんですが、プロシージャルテクスチャは数値を入力して作れるテクスチャなので、気に入らなければ何度もやり直しが効きます。

そして今回紹介する点密度を使うとパーティクルをボリューム化でき、コンポジットノードを使わずとも半透明なパーティクルを飛ばすことが出来ます。

ただ筆者のパソコンではだいぶ重い作業ですので実用性があるかと聞かれるととりあえず「画像でレンダリングするならあり」という感じです。

日本語で紹介されてる方も少ないですし面白いですので一度やってみてはいかがでしょうか?

それでは使い方を説明していきます。


パーティクルを飛ばそう

まずはパーティクルを飛ばすためのオブジェクトを作っていきます。

どんな感じで作っても次の作業でパーティクルをボリュームにできますので思い描くものがあれば好きなように設定してもらって構いません。

以下せっかく説明しますので例をあげて説明してみます。

3Dビューポート内にマウスカーソルを持っていきShift+A → メッシュ → 平面を追加します。

平面を選択した状態でプロパティパネルのパーティクルプロパティをクリック → プラスボタンでパーティクルを追加出来ます。

f:id:K06:20220301145802p:plain

パーティクルアニメーションをSpaceキーで再生しながら設定出来ます。

放射タブ上から数300(開始フレームから終了までに飛ばすパーティクルの数)、終了500(500フレーム目でパーティクルのアニメーションを終了するの意味)、寿命500(途中でパーティクルが消えないように終了フレームと同じ)に設定してます。

f:id:K06:20220301145844p:plain

続いてデフォルトでは落ちていくパーティクルを登っていくようにフィールドの重みの重力を0にしました。

f:id:K06:20220301145914p:plain

今回はアニメーションで書き出さないので設定する必要はないですが、パーティクル登っていくスピードが早いのでノーマルを0.5m/sに設定しました。

これだけでもパーティクルをボリューム化出来るんですが、ボリュームと一緒にパーティクルも書き出したいとか、パーティクルのサイズを変えたい方は以下の設定をしてください。

パーティクルも一緒に書き出したい場合

3Dビューポート内でShift+A → メッシュ → UV球(何でも良いです。) → カメラに映らない所に移動 → 右クリック → スムーズシェード(お好みで)

パーティクルを発生させてるオブジェクトを選択 → パーティクルプロパティのレンダータブ → レンダリングをオブジェクトに変更 → インスタンスオブジェクトを追加した球体に変更でパーティクルも一緒に書き出すことができます。

f:id:K06:20220301150001p:plain

パーティクルのサイズを変更する方法

パーティクルのサイズを変更したい場合パーティクルも一緒に書き出したい場合を設定した後パーティクルプロパティ → レンダータブのスケールやスケールのランダム化で変更できるようになります。

f:id:K06:20220301150041p:plain

スケールやランダム化は、点密度に反映されませんが。

ただレンダリング時にパーティクルを一緒に書き出したくない場合はレンダリング時にパーティクルを発生させているオブジェクトをアウトライナーで非表示にする必要があります。

f:id:K06:20220301150057p:plain


入れ物を作ろう

つづいて入れ物を作りましょう。(入れ物の中のパーティクルがボリュームになります。)

入れ物って聞いてピンと来た方もいらしゃると思います。

そう点密度テクスチャの使い方は物理演算の流体に似てますね。

入れ物は最初からある立方体を使っても良いです。

デフォルト立方体がない場合は3Dビューポート内にマウスカーソルを合わせShift+A → メッシュ → 立方体を追加しましょう。

Zキー → ワイヤーフレーム →
Tabキーを押し編集モードでパーティクルをボリューム化したい範囲を囲います(Gキー=移動やSキー=拡大縮小を使ってください。)

Shadingタブに切り替え → 新規で新規テクスチャを作成 →プリンシプルBSDFを選択 →Xキーで削除 → Shift+A → シェーダー → プリンシプルボリュームを追加します。

プリンシプルボリュームとマテリアル出力のボリュームをつなぐ → Shift+A → テクスチャ → 点密度を追加。

点密度とプリンシプルボリュームの密度をつなぎましょう。

f:id:K06:20220301150142p:plain

囲い終わったらノードの準備は終了です。

しかし、デフォルトのままでは暗くてよくわからないので適当にライティングすると見えるようになります。(筆者はデフォルトのライトをサンに変更し強さを10にしました。)


点密度の設定

点密度ノードのオブジェクトでパーティクルを追加したオブジェクトを選択。

選択するとパーティクルシステムという項目が増えますのでパーティクルシステムを選択するとパーティクルをボリュームにすることが出来ました。

半径の値を上げることでボリュームが大きくなり逆で小さくなります。


f:id:K06:20220301150130p:plain

また、解像度の値を上げるとボリュームのレンダリングの質は上がりますが重たくなりますので注意が必要です。

ここまでの設定で点密度を画像で書き出せるようになります。

点密度を動画で書き出す方法

動画で書き出したい場合は点密度ノードのスペースをオブジェクト空間からワールド空間に変更しましょう。

f:id:K06:20220301150244p:plain

すると3DビューポートをSpaceキーで再生しててもレンダープレビュー(Zキー → 8)出来ます。

あとはプリンシプルボリュームのカラーを変更することで点密度の色を変更出来ますね。

Out of memory in cuArray3DCreate_v2(&array_3d,&desc)ほにゃららと出て画面が更新されない場合はZキー → ソリッド → Zキー  → レンダーと切り替えると画面がうまく更新出来ると思います。

レンダリングするときも出てきますが、一度保存して立ち上げ直すとレンダリングできますよ。

f:id:K06:20220301151316p:plain

いつも最後まで読んでいただきありがとうございます!