こんばんは!
下記の動画を参考に水マテリアル用の波のテクスチャシートをHoudiniで制作しようとしているのですが、実装方法で詰まってしまいました。
そもそも3DCG全般の知識が少ないため、アプローチの考え方自体が間違っているのかと思いご相談させていただきたく投稿しました。
使用しているバージョン:Houdini 18.5.696(indie)
hipファイル:https://drive.google.com/file/d/10sdJWSiDONXoEcLSyg5FAWBmPNPduXxb/view?usp=sharing [drive.google.com]
概要:シェルフにあるOceanシミュレーションの結果をテクスチャシート(NormalとPositon)を出力したいです。
https://youtu.be/Wr974MCYHSU?t=340 [youtu.be](5:40~を再現したいです)
問題点:出力できても極端にノーマルが薄い、もしくは何もフラットなノーマルマップになってしまいます。ポジションにおいては出力もされていない状況です。
試してみたこと:mantraとLabs Texture Sheetsノードによるテクスチャシートの出力
気になっていること:
①そもそもLabs Texture Sheetsノードを利用することが正解なのかどうか
→調べてみると、作例や解説がvolumeを使ったシミュレーションばかりで僕がやりたいこと(頂点アニメーション結果の出力)の例が見当たらず考え方が間違っているのかが気になっています。
②光源を配置していること
→①に付随してですが、Labs Texture Sheetsノードで光源を配置しないと警告がでたりRGBライト?を自動で配置したりしてくれているのですがそもそも頂点アニメーション結果を出力するなら、pointのNやPを出力すればよいのでは?と思いそもそも光源がいらないのでは?と疑問に思っています。(このことからも使用するノードを間違えているのでは?と考えています)
少ない情報とつたない質問で申し訳ないのですが、何かご意見いただけますと幸いです。何卒宜しくお願い致します。
頂点アニメーションのレンダリング結果をTexture Sheet(ノーマルマップ&ポジション)として書き出したい
1157 1 0- kiko0701
- Member
- 2 posts
- Joined: Sept. 2019
- Offline
- Ken Taki
- Staff
- 337 posts
- Joined: April 2015
- Offline
Texture Sheets は、例えば1-64フレーム目までレンダリングしたシーケンス画像を1枚の8x8 の画像にまとめるためのノード(ツール)です。ですので、このノードを使うかどうかは「テクスチャシート」または「スプライトシート」を作りたいかどうかによってきます。法線が正しく出力されているかどうかは、このノードとは直接関係ありません。
で、レンダリングされた法線がのっぺりとしている理由ですが、いくつかあります。
これをデバッグしていくには、Render View で /out/mantra1 を一度レンダリングしてみることです。
レンダリングを実行すると、
mantra: Multiple image planes for 'N' channel in image
というエラーメッセージが表示されます。
これは、/out/mantra1 の Extra Image Planes 以下で
Shading Normal (N)
と
Extra Image Plane 以下で N の二つが重複定義されているからです。
よって、どちらか片方をオフにする必要があります。上の方がオフにするのが簡単なので、上の
Shading Normal (N)
をオフにしました。
これで、レンダリングをするとエラーは消えますが、法線はのっぺりしたままです。
そこでネットワークエディタで /obj/ocean_surface/ 以下を見てみると、
レンダリングフラグ(紫) が render_grid に設定されています。
これは、名前からすると正しいように見えますが、このノードには一切の変形操作がくわえられておりません。
そこで、ocean_preview にレンダリングフラグを移します。
すると、N チャネルに波形が現れるのがわかります。
このレンダリングをTexture Sheet ノードに通せばテクスチャシートになるはずです。
なお、/obj 以下には RGB_LIGHTRIG がありますが、法線を出すには不要です。
このライトリグを Color に正しく影響させるには、スケールなどを調整する必要がありますが、そうするとライトの数が増えるため、レンダリング時間が著しく増加します。
厳密にいうと、Shading Normal (N) の方がこのシーンでExtra Image Plane別途設定されている N プレーンよりも速いです。
Extra Image Plane の方は、フィルタなど設定高すぎかもしれません。
ここまでの修正を添付しました。
で、レンダリングされた法線がのっぺりとしている理由ですが、いくつかあります。
これをデバッグしていくには、Render View で /out/mantra1 を一度レンダリングしてみることです。
レンダリングを実行すると、
mantra: Multiple image planes for 'N' channel in image
というエラーメッセージが表示されます。
これは、/out/mantra1 の Extra Image Planes 以下で
Shading Normal (N)
と
Extra Image Plane 以下で N の二つが重複定義されているからです。
よって、どちらか片方をオフにする必要があります。上の方がオフにするのが簡単なので、上の
Shading Normal (N)
をオフにしました。
これで、レンダリングをするとエラーは消えますが、法線はのっぺりしたままです。
そこでネットワークエディタで /obj/ocean_surface/ 以下を見てみると、
レンダリングフラグ(紫) が render_grid に設定されています。
これは、名前からすると正しいように見えますが、このノードには一切の変形操作がくわえられておりません。
そこで、ocean_preview にレンダリングフラグを移します。
すると、N チャネルに波形が現れるのがわかります。
このレンダリングをTexture Sheet ノードに通せばテクスチャシートになるはずです。
なお、/obj 以下には RGB_LIGHTRIG がありますが、法線を出すには不要です。
このライトリグを Color に正しく影響させるには、スケールなどを調整する必要がありますが、そうするとライトの数が増えるため、レンダリング時間が著しく増加します。
厳密にいうと、Shading Normal (N) の方がこのシーンでExtra Image Plane別途設定されている N プレーンよりも速いです。
Extra Image Plane の方は、フィルタなど設定高すぎかもしれません。
ここまでの修正を添付しました。
-
- Quick Links