2022年1月10日月曜日

Houdini夜会(2021-07-02)の解説その1

あけましておめでとうございます。今年もよろしくお願い致します。
2022年最初の記事になります。

Houdini 夜会のシーンファイル説明


昨年はHoudini夜会というものにて発表をしていました。
https://www.borndigital.co.jp/seminar/22532.html

発表内容のシーンファイルは以下に上げているのですが、それの解説を軽く書いておこうと思います。

https://github.com/d-gfx/Houdini-Library/tree/master/Houdini_Yakai_2021

動作環境は Houdini Indie 19.0.493 にて確認しています。
もし Apprentice 版が欲しければTwitterアカウントにリプくだされば用意しますのでお気軽にどうぞ。


Volume Wrangleによる画像処理


SOPにてお手軽に画像をレンダリングしたい場合に Grid SOP ノードを使ってPoint AttributeやPrimitive Attributeとしてカラーの @Cd を設定して描画するということを今まで良くやってきました。

Grid SOPノードをレンダリング対象(レンダーターゲットと呼ぶ)にする

とても便利だが、処理速度がもう少し欲しかった


これはこれで使い慣れたSOPの作法で自由に出来るのでとても良い面がありますが、処理速度を出したいなと思うことが良くありました。

GridではなくVolume Slice を使う


Grid SOP を描画先のターゲットにするのではなく、薄いボリュームデータに対してVolume Wrangleを使って色を書き込むことが出来ます。


シーンファイル中の上図の部分です。一番簡単なのが COP2 Network を使って用意する方法なのでそちらを紹介します。

まず COP2 Network を配置し、下図のように Method を Volume Slice にし、上の Frame のところがフレーム依存になっているのでこの依存を切っておきます(念のため)。




COP2 Network 内では以下のように、Color COP ノードを置いて解像度を指定し、イメージプレーンを指定します。アルファが要らないならカラーの C だけでも良いです。


この状態でまた一つ上に戻り、情報を見てみるとイメージプレーンに指定した分だけの薄いボリュームが出来ているので VolumeWrangle にて色計算をして書き込むことが出来ます。


その結果、以下のようにレンダリングが出来ます。


以下はこのような方法を使って描画した、レイマーチ結果のレンダリングの様子です。シェーダなどが書ける人はこのような描画が行えます。


レンダリングした結果の画像は Height Field Output SOP ノードでも簡単に行えますし、再度 COP2 Network に持って行ってそちらから出力することも出来ます。
以下の部分のノードたちがその説明になっていますので覗いてみてください。


また SOP でのジオメトリに簡単にアクセスできるので、以下のようにPyroの煙などをレンダリングすることもできます(勿論レンダリングの基礎的な知識は必要です)。


KineFXを使って踊るキャラクタを出した例が以下です。



自作のベイクツールを作る際に便利


この方法を使うと自作のベイクツールを実装する際に速度的にメリットがあります。
自作ベイクツールが作れると色々とメリットがあるのでおススメです。
実装難易度もそこまで高くはありません(高品質なベイクをしようと思うと大変になってきますが…)

以下はベント法線を自作ベイクした結果の画像をテクスチャとして適用したモデルの様子です。


番外編


今回紹介した方法以外にもこちらの記事も大変参考になります。
興味のある方はチャレンジしてみてください!

0 件のコメント:

コメントを投稿