IBL(イメージベーストライティング)
対象製品: Poser 6, 7
Poser 6から導入された便利な機能に、IBL(イメージベーストライティング)があります。IBLは、シーンを取り巻く画像の明るさからシーンの照明を計算する機能です。この機能を使うと、複数のライトを配置して微調整をしなくても、手軽にリアルな照明モデルが利用できます。Poser 7では、さらにHDRI画像(ダイナミックレンジの広い画像)にも対応し、さらに精密でリアルな陰影がつけられるようになりました。
たとえば、これはPoser 7でレンダリングした簡単なシーンですが、デフォルトの3つの無限光の位置を変更し、調整したものです。
これでも悪くはないのですが、リアルさがありません。ライティングに深みがなく、不自然に見えます。「環境閉塞」機能を使ったIBLなら、もっと自然なライティングが行えます。
Poserでは、とても簡単にIBLを使えます。プレビューウィンドウの上部にあるメニューまたはライトコントロールのピンを使ってライトを選択します(下図を参照)。
ライトを選択したら、オブジェクトメニューの特性を選択して、そのライトの特性を表示します。特性タブで拡散IBLラジオボタンを選択します。次にマテリアル特性ボタンをクリックすると、ライトが選択されたままの状態でマテリアルルームに移動し、選択されているライトのシェーダー情報が表示されます。マテリアルルームでは、ライトのシェーダーにイメージマップノードを接続します。ライトのカラーチャネルにある小さな電源プラグのアイコンをクリックしてドラッグし、マウスボタンを放すとメニューが開きます。下図のように新規ノード > 2Dテクスチャ > イメージマップを選択します。
作成したばかりのノードのイメージソースセクションをクリックして、テクスチャマネージャダイアログから、あらかじめ用意しておいた画像を選択します。このチュートリアルでは、Poserに付属の roadAndSky.jpg を使います。ブラウズボタンをクリックして、次の場所からファイルを開きます。
Runtime/textures/Poser 6 Textures/LightProbes/roadAndSky.jpg
これは、鏡面の球体に映った像をデジタルカメラで撮影した、通常のJPEGファイルです。自分で画像を作りたい場合、用意するものは、鏡面の金属球(くっきり映るよいものは数千円以上しますが、クリスマスの飾りとして売られているプラスティック製の銀色の球体で代用した人もいます)。球体が大きく解像度が高いほどライティングの質が高くなります(通常のJPEGのIBLは1辺512ピクセルまでです)。
roadAndSky.jpgを設定すると、シェーダーは次のようになります。プレビューの表示/非表示を切り替えるには、シェーダーの右上にある目のアイコンをクリックします。
では、このライトを実験するシーンを作ります。ここでは、小道具の球体(詳細)、立方体、円錐を使いました。面白みのない被写体ですが、この組み合わせは、さまざまな表面への照明の影響を確認するには最適です。IBLでどのように影が作成されるかをよく見るために、この3つを近づけて置きます。基本設定のままレンダリングすると、次のようになります。
これには影がありません。まず、レンダリング設定を、レイトレーシングが使われる品質に変更します。こうするとレンダリング時間はかかりますが、画質がよくなります。
影はできましたが、まだ改善の余地があります。特に、影がはっきりしすぎています。これを修正するには、環境閉塞オプションをオンにします。このオプションを使うと、PoserのIBLは、オブジェクト同士が近接しているところで環境光を弱めます。ライトの特性タブで影をオフにして環境閉塞をオンにし、もう一度レンダリングすると、このようになりました。
このレンダリングは、自動設定で最大画質の約半分に設定したものです。高画質のレンダリングでも、多くの場合はこの設定(次の図)で十分です。より高画質な設定が必要な場合もありますが、そのときは手動設定を使ったほうが、画質と速度のバランスが取りやすいでしょう。環境閉塞の効果を表すには、レイトレーシングを使ってレンダリングする必要があります。
では、もう一度リビングルームのシーンを見てみましょう。このチュートリアルの最初でもお見せしたように、IBL(イメージベーストライティング)と環境閉塞を使ったレンダリングは、次のようなものになります。
Poser 7では、付属のHDRIライトプローブ画像を使うこともできます(ここでは、Poser 7/Runtime/textures/HDRVFX
フォルダのHDRVFX_albany_night_v_00_2cca.hdr
ファイルを使いました)。HDRI画像を使うと、よりリアルなライティングが行えます。
図 10でお見せした“通常”のIBLレンダリングは、図 11で使用したものと同じファイルからJPEGファイルを作成して使っています。2つのレンダリングの違いに注目してください。HDRI形式のライトプローブには、Poser 6のIBLで使っていたJPEG画像よりもずっと多くの情報が保存されます。技術的な話になりますが、コンピュータの画面に表示される画像データは、通常3つのチャネル(赤、緑、青)に保存されます。4番目のチャネルは透明情報に使用され、アルファチャネルと呼ばれます。
各チャネルには、それぞれ1ピクセルあたり8ビットの情報があり、赤、緑、青、透明のそれぞれで256階調を表現します。つまり、1ピクセルあたり32ビットの情報で、約16百万色の色を表現できます。しかし、各色256階調では、人間の目が区別できるよりもずっと少ない色しか表現できません。HDRIは、各カラーチャネルに32ビットの情報が保存でき、特に通常の画像ではディテールが失われてしまいがちな、非常に明るいエリアと非常に暗いエリアで、ディテールをよりよく表現することができます。
そのため、HDRI形式のライトプローブを使うと、明部から暗部までの照度の幅が大きなときに、よりリアルなライティングを行うことができます。HDRIファイルは画像編集プログラムで同じシーンの複数の画像を組み合わせて作成します。スキャナやデジタルカメラには、直接16ビット/ピクセルの画像を保存できるものがあり、それをHDRIファイルに利用することもできます。
最後に一言。HDRIファイルでIBLを行うときは、イメージマップノードのコントラストを下げたほうがよいでしょう。
こうすることにより、明部が飛んでしまったり暗部がつぶれてしまったりするのを避けることができます。0.5から1.0までの値で調整してみてください。
IBLに使うJEPEGファイルの作り方に興味があれば、IBL画像を低予算で作るチュートリアルをご覧ください。
(Smith Micro Software Inc.)