Houdiniを触り始めて宇宙船を作ってみたは良いものの、AmbientOcclusionが汚くて半日躓いたメモ
以下の手順でAmbientOcclusionを焼こうとしている時のメモ
- Houdini 19.0.531
- AutoUVを使っている
- BakeTextureで焼いている
原因
AutoUVで展開したUVが重なってしまうことが原因
重なると遮蔽度を共有してしまうので、片方が遮蔽濃い状態だともう片方も遮蔽が濃いとして認識される
ぶっ刺してるだけで繋がってないパーツとか、繋がってるけど縦横の比率が偏っているPrimitive、booleanでくり抜いただけの穴とかの付近がなりやすい
特に最後のbooleanでくり抜いただけの穴は、うまく展開するには凹部分の入り口でSeamを切らないといけないけどAutoUVではあんまり判別してくれない
解決方法
- DivideノードでBrickerPolygonsで縦横比がいい感じの分割をする
- 雑だけど手っ取り早い
- AmbientOcclusionのためにプリミティブを増やしたくないので、BakeTextureのHighResObjectに指定するだけのオブジェクトとして分けた方がいい
- 凹部分を浅くする
- 画像には載せてないが機銃の部分もなってた
- 大体これで解決はする
- AutoUVのisland paddingを上げる
- 安牌
- AutoUVを使わずに手作業で頑張ってSeamを切る
- すごくやりたくない
画像
問題があるやつ
コックピット周辺に黒い模様が表示されてしまっている
問題を解決したやつ
問題のあるUV
どうせ左右対称なのでUVもミラーリングしたいが、よくわからない
他
-
このHoudiniバージョンだけかもしれないが、BakeTextureを実行してテクスチャを出力した後、MaterialがDirtyになっていないのかUVがRefreshされないバグがありそう?
Houdiniを再起動するとBake後のテクスチャがちゃんと反映されて綺麗に治る。
とっととアップデートしたほうが良さそう -
テクスチャが一生反映されなくて原因ずっと探してたら、1時間後Material表示ボタンがSceneViewのサイドバーにあることに気付いて非表示状態だったのを見つけてちょっとイライラした(ちょっとじゃない )