« Blender(Cycles)との連携 | トップページ | Blender出力時の服破れ対策 »

CyclesでIBLを使う

Cycles2_0前回の記事に続いて、今回はCyclesでIBLを使う方法についてご紹介したいと思います。IBLはImage Based Lightingの略で、画像を元に360度全方向から照射される光を表現する方法です。IBLには通常、HDRI画像を使用します。一般的なJPEG等の画像は、光の強さを256段階で表現します。でも光というものは、ろうそくのような暗い光源から太陽のように非常に明るい光源まで存在するため、256段階で実際の明るさを表現するのは不可能です。そのため、各画素の光度を浮動小数点形式で表現するHDRI画像を使用する必要があるわけです。

Cycles2_1では背景にHDRIを適用してみましょう。まず、WorldタブのBackground ColorをEnvironment Textureに設定します。


Cycles2_2HDRI画像を選択します。今回もHDRIの宝庫、sIBL Archiveさんに公開されている画像を利用させていただきました。


Cycles2_4SettingsのSample as Lampをチェックします。これで、背景画像が光源としてサンプリングされるようになります。


Cycles2_5_2ここまでの設定でレンダリングした結果です。画面が全体的に暗いのは後で調整することにして、まず背景画像の方向を自由に回転できるようにしてみましょう。


Cycles2_6背景画像のVectorを「Mapping」に変更します。こうすることで、背景画像の移動や回転などを自由に指定できるようになります。


Cycles2_7MappingにもVectorを指定する必要があります。ここではデフォルトのマッピング方法を使うので、「Generated」を指定します。


Cycles2_8Z軸のRotateを変更することで、背景を自由に回転させることができます。プレビュー表示にして好みの角度に変更します。


Cycles2_9背景の角度が決まったので、一度レンダリングしてみます。このHDR画像には太陽を含んでいるのですが、こうして見てみると曇り空のように暗いです。これはHDR画像に含まれる太陽の光度が足りないためで、これは背景画像が悪いわけではなく、撮影機器の仕様なので仕方の無いことです。そこで、ノードを調整してHDRIのコントラストを上げてみることにしましょう。


Cycles2_10ノードエディタ画面で、Worldのマテリアルノードを表示します。これまでに設定した情報が、ノードのネットワーク形状で表現されています。PoserのShader TreeやD|SのShader Mixerと同じようなイメージなので、非常にわかりやすいと思います。ここで、Add→ConverterからMathノードを追加します。


Cycles2_11追加したノードの演算子をPower(階乗)に変更し、Environment Textureの出力をPowerの入力に指定します。下側の数字は1.0に設定しておきます。


Cycles2_12もうひとつノードを追加します。Powerの出力は色情報が無いので、Color→Mixで色をのせるためです。


Cycles2_13追加したMixノードをValueに変更します。ここにEnvironment Textureからの出力と、Powerの出力をそれぞれ入力に指定します。Factorには1.00を指定します。これで背景に色がつきました。
PowerノードのValueがコントラストの強さになります。この数字を大きくすることで、明るい部分はより明るく、暗い部分はより暗くなっていきます。プレビュー表示で確認しながら、背景画像に近いコントラストになるように調整していきます。


Cycles2_14コントラストを上げたことで、全体的に暗くなってしまっているので、Environment TextureのStrengthを上げて明るくします。


Cycles2_15調整ができたら、一度レンダリングしてみます。今度はちゃんと太陽光が明るく表現されるようになり、影もできています。
しかし、よく見ると画像に白いノイズがのってしまっています。実はこのノイズは鏡面反射した光がわずかに届いているためで、計算によって強い光がそのまま届いてしまった結果で、強い光を持つシーンではよくあることです。Cyclesでは鏡面反射にぼかしを入れることで、このノイズを緩和することができます。


Cycles2_16RenderタブのLight Pathsに、「Filter Gloss」という項目があります。ここで、反射した画素をぼかす範囲を指定することができます。デフォルトは0で、ぼかしを使わない設定になっています。今回は4ピクセルの範囲でぼかしを入れてみることにしました。


Cycles2_17>反射光にぼかしを入れると、このようにノイズが目立たなくなりました。これで完成です。


Cycles2_18サンプル数を1000まで上げてレンダリングしてみました。わずか1000サンプルであっても、このようにノイズの少ないクリアなレンダリング結果を得ることができます。

|

« Blender(Cycles)との連携 | トップページ | Blender出力時の服破れ対策 »

Blender」カテゴリの記事

コメント

実物のフィギュアみたいな質感ですね〜スゴイ!
こうやって親切に説明して頂けると「ふむふむ、なるほど〜」って思いますけど、自分じゃできないだろうなあ(^-^;

投稿: こよみさ | 2012年11月26日 (月) 19時15分

こよみささん、コメントありがとうございます。
Cyclesに限らず、物理レンダラー系はマテリアルが単純なので、実は意外と簡単だったりします。時々落ちるのが困りものではありますが。(;´▽`A``
いつのまにかVue11が出ていましたが、いまだにVue9からアップグレードしていません。屋外のシーンを作成するならVueは最適ではあるのですが、新バージョンにはこれといって目を引くものがなかったもので。・゚・(ノ∀`)・゚・。

投稿: とうふ | 2012年11月27日 (火) 22時51分

毎回わかりやすい説明していただきありがとうございます。
実はこの前とうふさんの影響を受けてBlenderを始めた!質感本当にすごいね!
でも使ってるノートPCのグラフィックボードあまり良くないからレンダリング始めると激重くなる(;´Д`)
こんな時にワークステーションが欲しいよ・・・

投稿: ミチコラ | 2012年12月 9日 (日) 03時27分

ミチコラさん、コメントありがとうございます。Blenderの進化には驚きますよね。CyclesはnVidiaのグラボがないときついものがありますが、将来はOpenCLに対応予定だったり、処理の効率化などでCPUレンダリングの速度を上げることも考えているようです。本当に楽しみです。(´∀`*)

投稿: とうふ | 2012年12月11日 (火) 08時28分

はじめまして。むっちゃ助かりますw
私はレンダリングが長いと耐えられないので
リアリスティックなのは無理だとあきらめてましたけど本当、blenderのレンダラーはすごいですね。
casualさんのツールもすごいんですがw

自分はAMDだからどうかなと思ったけど、思ったより上出来でした。

今後もblenderとDAZの連携記事楽しみにしてますっ!!

投稿: gonzou | 2013年1月10日 (木) 22時28分

gonzouさん、コメントありがとうございます。
Cyclesは他の物理レンダラー系よりレンダリング時間が短くて済むのはとても魅力的ですよね。マテリアルの設定が少々面倒ではありますが(;´▽`A``
見ていただいてありがとうございます。今後とも、よろしくお願いします。(´∀`*)

投稿: とうふ | 2013年1月14日 (月) 10時39分

コメントを書く



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




« Blender(Cycles)との連携 | トップページ | Blender出力時の服破れ対策 »