« LuxRenderDS: 基本的な使い方 | トップページ | LuxRenderDS 0.7.1.0を公開 »

LuxRenderDS: 水の作り方

Lrds_water01

今回はWaterマテリアルを使って水を表現する方法をご紹介します。実はWaterマテリアルの正体は、Glass2マテリアルにディスプレイスメントマップで凸凹をつけただけのものです。Glass2マテリアルは、その質感をボリュームに依存しています。つまり、Waterマテリアルもボリュームとセットじゃないと使用できないわけです。

Realityではボリュームを作成する機能がありませんが、実際には内部でボリュームを作成して適用しています。LuxRenderDSでは自由にボリュームを扱うことができるため、Waterマテリアルとボリュームを分離することで立体的な質感を自由に設定できるようにしてあるのです。

Lrds_water02 今回はこのようなシーンを準備しました。この立方体にWaterマテリアルを設定しますが、よく見るとこの立方体はポリゴンを細かく分割してありますよね?これはポリゴンを再分割して細かくしたときに、面取りされて丸くなってしまわないようにするためと、波を細かく表現するためです。

LuxRenderのディスプレイスメントマップは頂点数に依存しています。マッピングされた画像にあわせて頂点を移動させているのです。つまり、いくらマッピング画像を細かくしても、頂点が存在しない部分は変形しないのです。きめ細かい波を表現するためには、このように頂点を分割しておく必要があるわけです。

また、ディスプレイスメントマップを使うためにはLuxRender側で頂点の再分割(Subdivision Surface)が必要になります。分割回数はマテリアル側のSubdivision Levelで指定します。

前置きが長くなりましたが、ではさっそく水を作ってみましょう。まずはボリュームの作成です。

Lrds_water03LuxRenderDSのVolumeタブで「Add New」を押し、新しいボリュームを作成します。


Lrds_water04 次にIndex of Refractionに屈折率を設定します。水の屈折率はおよそ1.3ですので、ここには1.3を設定しておきましょう。


Lrds_water05

次にマテリアルの設定です。立方体のマテリアルを選択し、Material TypeにWaterを設定します。

InteriorとExteriorは、面の内側と外側のボリュームです。今回は立方体の内側が水になりますので、Interiorに先ほど作成したボリュームを設定します。

Densityは波の密度です。大きいほどきめ細かい波になります。

Heightには波の高さをメートル単位で設定します。今回は0.03ですので、3センチの高さの波になるように設定しています。

Subdivision Levelはディスプレイスメントマップのところで書いたように、ポリゴンの再分割回数を指定します。1に設定するとポリゴン数は4倍、2で16倍、3で256倍というように2乗に比例して増えていきますので、あまり大きな数を指定すると大変なことになります。Waterマテリアルではディスプレイスメントマップが必須ですので、0に設定しても1として出力されます。


Lrds_water06 上記の設定でレンダリングすると、このような画像になります。コースティクスが綺麗に出ていますね。水らしい質感になってきました。(´∀`*)


Lrds_water07つぎに水に色をつけてみましょう。色をつけるには、ボリュームのところにAbsorptionを設定します。Absorptionとはボリュームの中を光が進む際に吸収される光の成分(赤・緑・青)の割合で、たとえば赤の光を吸収するように設定すると、残る光は緑と青ですので、光の3原色の原理で青+緑=水色となります。Scaleは吸収率の倍率です。今回はこのように設定してみます。


Lrds_water08これでレンダリングすると、このように青い水ができあがりました。


以上、水の作り方でした。今回はボリュームの使い方もかねてご説明しましたが、DAZ Studioにはボリュームという考え方がありませんので、なかなか理解しにくいかも知れませんね。(;´▽`A``

|

« LuxRenderDS: 基本的な使い方 | トップページ | LuxRenderDS 0.7.1.0を公開 »

LuxRenderDS」カテゴリの記事

コメント

こんにちわ

真に勝手ながら、当方糞ブログにて、とうふさんのLuxRenderDSを紹介させてもらいました

お楽しみは、これからだっ!!

ではでは

投稿: DAD | 2011年6月12日 (日) 17時36分

DADさん、コメントありがとうございます。
ブログでご紹介いただきまして、ありがとうございます。大変励みになります。
まだアルファ版で不安定な部分もありますが、いずれは64bit版やD|S4版も作っていきたいですね。(´∀`*)

投稿: とうふ | 2011年6月12日 (日) 20時43分

こんにちわ

やっとこさ、DSにPoserのRuntimeが導入でき、DSネイティブ(?)なシーンが作れるようになりました

こういうのを動作確認といえるのかわかりませんが、ご報告させていただきます

その①
Poser7JのRuntimeより、Props>CP Partners>Meshbox>MedievalVillageGuardHouseを読み込み、とうふさんのLuxRenderDSで出力してレンダリングしたところ、床が妙に青みがかった反射を起こしました

このプロップはPose2Luxで出力したとき、テクスチャが読み込めなかった代物です Pose2LuxではマテリアルをGlossyからMatteに変えたところ、テクスチャが読み込まれ正常にレンダリングできるようになりました

LuxRenderDSでマテリアルをMatteに変えたところ、テクスチャが読み込まれなくなりました
次に、マテリアルをGlassyに戻したところ、やはりテクスチャは読み込まれませんでした
LuxRenderのログを見ると、このプロップのテクスチャの読み込みの記述はありませんでした

その②
LuxRenderDSで出力してレンダリングすると、Linearは真っ白のままで変化が何も起こりません

ではでは

投稿: DAD | 2011年6月13日 (月) 10時21分

DADさん、コメントありがとうございます。

①についてですが、青っぽい反射は青空が映りこんでいるためだと思います。これは自動変換の際に判断する基準となるD|Sのマテリアル設定の中で、Specular Colorが明るい&Glossinessが大きい値になっているのが原因です。D|SはPoserのシェーダーツリーを読み込まないので、全く同じ質感にはなりえません。そのため、D|Sに最適化されたマテリアルが付属しないフィギュアでは調整が必要になります。

②については、トーンマッピングの設定が合っていないため、シーン全体が白とびしていると思われます。Linearに設定したときには、LuxRender側でSensitivity、Exposure、FStopを明るさにあわせて調整する必要があります。Extimate Settingsボタンを押すと、ちゃんと絵になるようにこれらの値を自動設定してくれます。このあたりの仕組みはHDRIとトーンマッピングについて解説しているサイトなどをご覧いただいたほうがわかりやすいと思います。

投稿: とうふ | 2011年6月13日 (月) 18時34分

①についての追記です。

マテリアルタイプをGlossyからMatteに変更しただけではテクスチャは読み込まれません。下のほうにある、「Get Parameters from DAZ Studio」ボタンを押すと、ツリーで選択してあるLuxマテリアルに対して、D|Sのマテリアルから色やテクスチャを持ってきて適用します。

全く異なるテクスチャを使いたいときは、カラー設定の右側にある▼を押してテクスチャを選択できます。(D|Sでテクスチャを選択する方法と同じです。)

「Auto Convert Selected Materials」ボタンは、選択中のマテリアルを自動変換させるボタンです。

投稿: とうふ | 2011年6月13日 (月) 18時57分

ご説明いただき、ありがとうございます!

DSでシーンを作れるところまでは何と書きましたので

ではでは

投稿: DAD | 2011年6月13日 (月) 20時30分

DADさん、D|Sデビューおめでとうございます。
D|Sに加えてLuxRenderと、覚えることがたくさんありますが、マイペースでじっくりと楽しみましょう。(´∀`*)

投稿: とうふ | 2011年6月13日 (月) 23時20分

コメントを書く



(ウェブ上には掲載しません)




« LuxRenderDS: 基本的な使い方 | トップページ | LuxRenderDS 0.7.1.0を公開 »