ここではスモークなど、ボリュームにトゥーンシェーダをアサインする方法を紹介する。
使用したバージョン: 15.0.439 および 15.5.632
シーンファイルへのリンクは一番下にあり。
1. Pyro Smoke の作成
初めに、もとになる煙を作成する。
- Create シェルフから Sphere を作成 (Torus でも Box でも何でも良い)。
- 作成したオブジェクトを選択したまま、Pyro シェルフから Billowy Smoke を実行。
- 最終フレームを、120フレームなり、60フレームなり、自分の根気に合わせて調整、最終フレームまで走らせて止める。
- 最終フレームでのビューポートで Spacebar+G を押し、スモーク全体が見えるようにする。
- Lights and Cameras シェルフの Camera ツールを Ctrl キーを押しながら、実行。
- /obj/cam1 が出来、現在のビューがレンダリングビューとなる。
- cam1 の View タブに行き、Resolution を 1024 x 1024 ないし、512 x 512 など正方形にする。
- 同じく Ctrl キーを押しながら、 Distant Light を作成、煙に陰影がでるようにする。
- /obj/distantlight1が出来る。
- ライトを作成したあとは、ビューを cam1 に戻す。
- シーンを保存、$HIP の位置を決め、キャッシュ、レンダリング画像が保存される場所を設定する。
2. Pyro ボリュームのメッシュ化準備
- ネットワークビューで /obj/pyro_import の中に入る。
- import_pyrofields を MMB クリック。2番目の段に 7 Points, 7 Primitives, 7 Vertices, 7 Volumes とあることがわかる。
- Fields タブ以下をみると、
- density
- vel
- vel
- rest
- rest2
- temperature
- heat
- fuel
- import_pyrofields の出力から TAB->Delete を作成。
- 出来た delete1 ノード上で MMB をクリックすれば、今度は 1 Volumes となっているのがわかる。
- 上記の操作により7つあったボリュームデータを Density を残して残りは削除した。
- Material Palette で Toon Color Shader を /shop にドラッグ&ドロップ。
- こちらの要領。Toon Outline Shader は今回は使わない。
- ネットワークビューで /obj で pyro_import を選択、Material タブで /shop/tooncolorshader をマテリアルとして設定、Render View でレンダリングを実行。
3-1. 通常メッシュ化 (Convert Volume)
- delete1 の出力から TAB->Convert Volume を実行。
- convertvolume1 が出来る。
- Isovalue の値を 0 (デフォルト) から上げて行くと、メッシュがスモークの形に生成される。
- Detail Level を 1 (デフォルト) から2 にすれば、分割が細かくなる。
- 3以上にしていけばさらに細かくなるがメモリと要相談。
- これで出来たメッシュはポリゴンなので、Smooth をかけたり、Attribute VOP などを使ってノイズを加えたりすることが可能。
3-2. OpenVDB を使ったメッシュ化
- delete1 の出力から TAB->Convert VDB を実行。
- convertvdb1が出来る。
- convertvdb1 で
- Convert to を VDB に
- VDB Class を Convert Fog To SDF に
- Fog Isovalue で全体の大きさを調整。
- convertvdb1 の出力から再び TAB->Convert VDB を実行。
- convertvdb2が出来る。
- convertvdb2 の Convert to を Polygons に
- Convert VDB を使った方が一般的に丸みを帯びた形状になる。これで出来たメッシュもポリゴンなので、Smooth をかけたり、Attribute VOP などを使ってノイズを加えたりすることが可能。
まとめ
- ボリュームにToon Color Shaderをアサインする前にメッシュ化する必要がある。
- 煙ボリュームのメッシュ化は Density (密度) ボリュームのみを使って行なう。
- 上記のようにDelete ノードを使って不要なボリュームを削除しても良いし
- import_pyrofields ノードの Fields 以下で不要なデータのトグルをオフにして読み込まないようにしても良い。
- メッシュ化、それ以外にもパーティクルをトゥーンシェーディング調にレンダリングする方法はいろいろありそうだが、それはまた別の機会に。
- 関連項目:
- シーンファイル: toon_smoke_final.zip (94KB)
0 件のコメント:
コメントを投稿