« GenesisのモーフをGenesis2 Femaleに移植する実験 | トップページ | 勢いよく噴出する流体 »

ShaderMixerでエリアライトを自作する

Arealight2エリアライトはソフトな影を作成するのにとても便利なライトで、DAZ StudioにもUberArealightというシェーダーが標準で添付されています。ところがD|S4.6で3Delightのバージョンが上がったせいか、UberEnvironment2のIBLと併用すると光沢が出なくなり、影の出方も少しおかしくなってしまっています。(´・ω・`)


私はIBLの補助光源としてエリアライトを頻繁に利用するので、IBLと併用できないのは困りものです。そこで今回は、ShaderMixerを使ってエリアライトを自作してみることにします。

エリアライトは光源扱いではなく、マテリアル扱いになります。従って、マテリアルが設定できるオブジェクトであれば、どんなものでも光源として使う事ができるという、かなり便利な性質を持っています。ShaderMixerでエリアライトを作成するときも、マテリアルとして作成することになります。


Arealight001こちらがエリアライトを組んだブリック構成です。通常のマテリアルに加えて、AreaLightとShadows Standardの2つを追加するだけです。とても単純ですね。


Arealight002こちらはAreaLightのブリック設定です。以下の項目が設定対象です。
①Intensity
ライトの明るさです。今回はデフォルトの10ままで使用しますが、シーンによってお好みで調節してください。
②Decay
減衰パラメータです。通常、光は光源からの距離の2乗に比例する形で暗くなります。Decayを1に設定すると、距離と無関係に一定の明るさで照射されるようになります。普通は光源からの距離が2倍になると、明るさは4分の1になりますので、今回は0.25に設定しておきます。
③Light Color
ライトの色です。
④Samples
1ピクセルあたりの明るさの計算を何回行うかを指定するパラメータです。回数が多くなるほど誤差が平滑化され、綺麗な影を得ることができます。サンプル数を多くするとレンダリング時間がかなり長くなりますので、あまり大きな値を設定せず、画質のバランスを見て調整するほうが良いです。
⑤Sample Mode
明るさを計算する際の基準点です。Light Sourceに設定すると光源との距離と角度でダイレクトに明るさを算出するため計算が速くなりますが、明るさの明暗がくっきりと出るようになるため、エリアライトには適しません。Illuminanceに設定すると、照射地点の明るさを元に算出しますので、ソフトな影を表現するのに適しています。従って、今回はIlluminanceに設定します。
⑥Illumination
通常のライトと同じです。Diffuse Only、Specular Onlyなどの設定ができます。


Arealight003次にShadows Standardブリックの設定です。こちらは影の出方を設定するために使われますが、エリアライトで関係するのは以下の2点だけです。
①Samples
影の計算回数を設定するためのパラメータですが、エリアライトの影はAreaLightブリックで作成してしまいますので、こちらのサンプル数は関係ありません。ただし、ここに設定した値を使って計算そのものは行われますので、無駄な計算をしないように1に設定しておきます。
②Bias
影を落とすオブジェクトが影響する距離です。ここで設定した距離よりも遠くにあるポリゴンは影を落とします。パンストなど肌に密着していて影を落としたくないオブジェクトがある場合、このBiasを少し大きくすることで影の作成対象から除外することができます。今回は0.1に設定します。


Arealight004エリアライトの影の品質はレンダリング設定のShading Rateにも影響されます。通常、テストレンダの時はレンダリング時間を極力短くするために、Shading Rateを1に設定することが多いです。このままだとテクスチャが粗くなってしまいますので、最終レンダリングの時には0.1など小さい値を設定してオーバーサンプリングするように設定します。まずShading Rateを1に設定して影の出方を見てみます。


Arealight006サンプル数の具合を見るため、SurfacesタブからAreaLightブリックのSamplesを8に設定してレンダリングしてみます。


Arealight_sp8sr10

こちらはShading Rate=1.0、Samples=8でレンダリングした状態です。レンダリングは短時間で終了しますが、影が粗くなっています。


Arealight005次に、サンプル数は8のままでShading Rateを0.1に設定してみます。


Arealight_sp8sr01レンダリングしてみると、影の粒状感がだいぶ細かくなっているのに気がつくと思います。このように、Shading Rateによる影響もかなり大きいので、Sample数を抑えつつ綺麗な影を得る際の目安としてとらえておくと良いでしょう。


Arealight_sp32sr01最後に、Shading Rateを0.1にした状態のままSamplesを32まで上げてレンダリングしてみます。影の粒状感がほとんど目立たない程度に抑えられていますね。


このように、エリアライトはとても簡単に作成することができます。UberArealightが修正されるまでの代替として使う分にはこれで十分だと思います。(´∀`*)

|

« GenesisのモーフをGenesis2 Femaleに移植する実験 | トップページ | 勢いよく噴出する流体 »

DAZ Studio Tips」カテゴリの記事

コメント

こんにちわ

記事とは関係がないのですが、お尋ねいたしたく

私はUberは、シェーダーにしろライトにしろ、レンダリング時間が長いのが嫌で使うのをやめてしまったのですが、3DeLightでIBLのレンダリングができるのはUber以外にはないのでしょうか?

ふと、疑問に思ったものですから

ではでは

投稿: ドラゴン&ダンジョンズ | 2013年8月14日 (水) 19時05分

ドラゴン&ダンジョンズさん、コメントありがとうございます。
3Delight(といいますか、DAZ Studioで用意されているIBL)は現状ではUberEnvironmentのみです。知識があればShaderBuilderを使って自作することもできますが、特に大きなメリットは今のところないので作る人も少ないのだと思います。
フォトリアルなレンダリングをしようとすると、どうしてもレンダリング時間が長くなりがちです。複雑なシーンだと数十分~数時間かかりますが、これはLuxRender等の物理レンダラーも同様なので、レンダリング時間を短く抑えるために、みなさんいろいろ工夫をされているようですよ。(´∀`*)

投稿: とうふ | 2013年8月14日 (水) 20時23分

コメントを書く



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




« GenesisのモーフをGenesis2 Femaleに移植する実験 | トップページ | 勢いよく噴出する流体 »