ディスプレイスメントでの問題解決

問題解決ったって、いろいろありますが、ディスプレイスメントを使ってみてたぶん誰もが経験した、面が分割されたようになってしまう現象。これがようやく解決したのでした。

110810_Title



単純な正立方体にディスプレイスメントで凹凸をつけたマテリアルにしてレンダリングすると、

110810_Dips

こんな具合になってしまう。この面と面とが離れる度合いは、ディスプレイスメントの数値の大小に比例するけど、この隙間を無くす術が判らなかった。それ故にどうしてもこれを回避したい場合は、根拠薄弱であったが、エッジ部を『面取り』した上でディスプレイスメントをかければ良いとしていた。

110810_MENTORI

たとえばこんな感じです。こうした上でディスプレイスメントをかけてレンダリングすると、

110810_MENTORI_Cube2

各面が遊離せずにディスプレイスメントの効果が得られます。ただしこの方法はモデリング時に一手間も二手間もかけるので、どうしてもやりたい時にのみの限定でした。

110810_noise80

何もしないとこんな感じで面と面が接するエッジ部がなくなるから、ならばエッジ部を面にしてしまえ! 的な発想でした。

ところが昨日、たまたま覗いていたmodoのフォーラムで、このような話題があり、その回答として『折り目角度を90度以上にしている?』とあり、ピッンときました。一般的に折り目角度はディフォルトではだいたい80度に設定されているようで、立方体の場合は各面とのなす角度が90度なので、立方体にスムースをかけるには折り目角度を90度以上にする、と話が合う。すなわちディスプレイスメントをかける面は擬似的にスムース面と計算される面にかけることになるので、面が分離されずに済む、ということ。

110810_Cube91

正立方体の折り目角度を91度に設定した上で、ディスプレイスメントをかけたレンダリングをすると、こんな感じで『面離れ』はなくなる。ただし本来は直角な角を持つ立方体を無理矢理丸みを持たせることになるので、陰影などに無理が出てくる。

110810_Cube2_Noise

違う種類の凹凸 (上画像の場合は、ノイズのノード)では模様が適切に出ない場合もある。この場合はUVマップを作り直せば収束するかもしれない。この例はPoserのプロシージャルなBump画像を用いているので、その影響かもしれない。。
でも、確かに折り目角度を変更することで、ディスプレイスメントの破綻を回避できることになる。

110810_ORIME

Poserでは対象のオブジェクトの『特性』パレットに現れるここの数値を変更すればOK。前述のエッジを面取る処置は、すなわちポリゴンを増やして、この折り目角度をポリゴン側で変更したということだ。
これでディスプレイスメントの悪さを制御できるワケだが、実はそうも単純なことではない。

110810_ConBlock_Dips

たとえばこんなコンクリード・ブロックの場合、ブロック全体がエッジの効いていないダルい形状で表現されるようになる。そうならば普通のバンプで表現した方が遠目ならズ〜ッと良い結果である。なんでもかんでもディスプレイスメントではないんですね〜。。Poser 8のノーマル・マップはまだ使ったことも無いし、どうなんだろう。。と思っていたところに『Poser 9』のアナウンスが。。OS XのLion対応と謳っている。Poser 8はLion対応無しか〜ぁ〜あ!! ましてやPoser 7はダメか〜〜ぁぁ

BlogTopへ戻る