(初心者向け) Arnoldでディスプレイスメントマップ③ 初心者が設定にハマるところ(前編)

どうも!Maya太郎です!

先週途中まで①~②を書いていましたが
(初心者向け) Arnoldでディスプレイスメントマップ①作業の流れ
(初心者向け) Arnoldでディスプレイスメントマップ②テクスチャデフォーマとの比較

取材で一時中断していました。
ちょっと間が空いた感がありますが続けていきましょう!

このディスプレイスメントマップの設定シリーズ…
実は、Maya太郎が実際に悩んだ経緯をそのまま記事にしているんです。
解決した方法をなるべく簡素化して
記事にしようと思っていたのですが、書いてるうちに
順序立てなど、毎度のごとく混乱してしまっています(苦笑)。


解りやすく平面オブジェクトで

作例は
シンプルに行きましょう!

オブジェクトを選択し
「イニシャルシェーディンググループ」のアトリビュートから

 

「ディスプレイスメントマテリアル」
ここで設定を行います。
下図の「ココ」という部分を押すと

マップを設定するようになっています。
下図赤丸部に…

 

グレー画像で生成した
高さ情報としてのテクスチャーマップなどを貼り込みます。

ユーザーガイドには
32ビットや16ビットなどの、階調豊かな画像形式が求められています。
よく利用する8ビット画像では正しく機能しない場合があるので
出来る限り32ビット画像などを利用しましょう。

この画像ごときで32ビット階調は必要ないのですが…
指示通り32ビット階調にして、グレー32ビットTiffで準備しました。
(本来はもっとまじめに階調豊かな画像ファイルを作るべきですが…)

 

画像を貼り込んだら
ライトを置いてレンダリングします。

するとこんな結果になりました。なんだか仕上がりイメージとは程遠いような…

 

まず、
①表面がぼこぼこ
②元の平面から浮いてる感じがする
が気になります。

①のぼこぼこ過ぎる表面は
平面オブジェクトの分割数不足からきているものと思われます。

分割数を上げて再びレンダリングすると…

ぼこぼこは解消され、エッジはシャープになりました。
しかし分割数を細かくするのは作業効率的には良いとは言えません。


Arnoldでレンダリング時の細分化

平面オブジェクトの分割数を
以前の状態に戻しておきます。

Arnoldでレンダリングする場合
ディスプレイスメントマップのメッシュ解像度不足の解消には
Arnoldのサブディビジョン機能を使います。
デフォルト設定ではこの機能は有効化されていませんので…

平面オブジェクトのアトリビュートから
「Arnold」→「Subdivision」

下図のように設定しましょう。
catclarkというのはサブディビジョン方式で有名な
Catmull-Clark(カトマル・クラーク)法の事なんですが
あまり気にしなくていいです(割愛)

iterations反復)の数値を上げるごとにより細かなサブディビジョン処理を行いますが
数字を上げるごとに処理負担が劇的に増大します。
一気に「8」ぐらいの設定ししてしまうと
非力なマシンではレンダリング開始時の待ち時間が異常に増えたり、メモリ消費が激しくなりますので
むやみに上げずに小刻みに上げるようにしてください。

ユーザーガイドの例が分かりやすいです。
反復数が低いとボコボコな状態ですが
反復数を上げるとディテールがきちんと表現されています。

 

この方法でレンダリングした結果は
事前にポリゴンを細分化した場合と同様(いやそれ以上)の
きめ細やかなディテール処理がなされています。


高さの調整

デフォルト設定のままだと
大抵の場合はディスプレイスメントマップの効きが強すぎる様で
高さが異常に強調されておかしな結果に見えますが
下図の「Height」値を1から0.1(あるいは0.2)ぐらいにすると…

かなりいい感じに仕上がることが多いです。
(作例にもよりますが)


今回はここまで

①ぼこぼこの表面は解決されました。
②元の平面から浮いてる感じがするは次回紹介します。

 


ディスプレイスメントマップのおさらい

①Arnoldではサブディビジョン分割数を上げて
 レンダリング時のメッシュ分割解像度を上げる。

②効きが強すぎる場合が多いので、高さ(強度)を小さくする

この二つに気を付ければ、楽に作業が進められると思います。

続きます

では!