IBL(イメージベースドライティング)に関して

イメージベースドライティング(IBL)に関して面白いブログがありました。こちらでも紹介したいと思います。KeyShotはIBLのみを光源として用いているソフトウエアです。参考になると思います。

このエントリーでは3Dソフトウエアを使う際に使用するライティングの種類を述べて次にイメージベースドライティングが何故有益なのかを説明します。

上の画像は典型的なCGライティング、スポットライトを用いています。ドラゴンモデルをレンダリングするのにに一般的なシェーダーを用いています。CGスポットライトはドラゴンの方向に向けられていてライトと陰、そして白いハイライトを作り出しています。この白いハイライトはフェイク=偽のもので、シェーダー内のスペキュラー値で決定されます。フォトリアリスティックなアプローチではありませんが、ライティング手法としては今日も一般的に多くのCGクリエータに用いられています。リアリズムをもっと付加するには光源を見えるようにして偽のハイライトを無くす必要があります。

上の場合は、エリアライトを用いています。これもイミッターを使う手法です。基本的にはスポットライトと同じテクニックです。ただし3Dの形状やオブジェクト側からライトを出力してそれが目に見えて、リフレクションも同時に表現されています。リフレクション内に光源が見えており、つまり本物ののハイライトが作成されているのでこれによりかなり(一つ上に比べて)リアリスティックに見えます。この場合、偽のスペキュラーは用いられていません。イルミネーションとリフレクションが程よくミックスされて上手く表現されています-これにより更にリアリズムが増しています。イミッター内に画像を置いたりライトを置いたりして微妙な、凝った表現をすることもできます-つまり実際の撮影でソフトボックスを用いるような効果です。窓のような形状を置く手法もあります。CGライトはシーン内どこにでも置くことが出来ます。どこにライトを当てたいかを正確に設定できます。

さて、ここからがイメージベースドライティング(IBL)です。上の画像ではHDRIの環境マップがライティングを行うように球形のオブジェクトに巻き付けられていて、レンダリングを行うとイルミネーションとリフレクションが同時に作られ、表現されます。ドラゴンはあたかもその環境に存在するが如く見えています。HDRIに内包された現実世界の微妙なディテール、その全てがうまくリアリズムに寄与しており、これがレンダリングの質感を高めています。

イメージベースドライティング(IBL)が持つ制限の一つがこれです。上の図でわかるようライトは常に球形状から中心に放射されています。このため、イメージベースドライティング(IBL)は3Dスペース上で特定の場所にライトを置くことが出来ません。これは例えば、建築の内装などには適していないことを意味します。逆に宝石、工業製品、自動車などのライティングを行う場合、それ以外にも球形のマップの中に置いてレンダリングするものには向いていることがわかります。球形のライティングマップの真ん中に置かれたオブジェクトとその周りにあるHDRIが作成する正確なライティングとリフレクション(ユーザーが欲する場所に置かれています)、これにより高品質のイメージが作成されます。ディテールと微妙な表現、この二つを同時に達成します。

他のHDRIを使ってライティングしたものです。HDRI内のディテールがリフレクション上で表現されてイメージをよりリアリスティックなものにしています。

HDR上でのライト数は無制限です。ライトの位置と種類を変えることにより、オブジェクト上のライティングを様々な形で変更、表現できます。

HDRイメージには無数の微妙なディテール表現が含まれています。堅いオブジェクトを表現するだけではなく、直接光、間接光の表現も可能です。上のイメージはソフトなHDRIデザインを用いたものです。通常の四角い、硬い表現のライトを用いるより程よい効果が得られます。カメラマンが良く、トレーシングペーパーや他の素材を使って間接的な柔らかい光を作り出しているのと同じ効果がここで見られます。

HDRイメージは例えば太陽光が雲によって覆われているといった複雑な表現も可能です。画像として捉えられるものは何でも光源として利用できます。イメージベースドライティング(IBL)の革新的な部分です。ライトを作成する際、非常にフレキシブルです。

イメージベースドライティング(IBL)は只微妙な表現を行うだけではなく、ライティングを行う際、表現上多くの可能性を(クリエィティビィティ)、秘めています。HDR Light Studioはインタラクティブにイメージベースドライティング(IBL)を作成するソフトウエアです。Synthetic lighting、HDR Picuture lightなどのツールを使って複雑で微妙なライティング環境を作成します。イメージベースドライティング(IBL)を用いたCGライティングを行う際に、斬新でインタラクティブな手法を提供します。

HDR Light Studioのブログから引っ張ってきた記事なので多少製品の宣伝も混ざっている所はご勘弁ください。ただし確かにインタラクティブで簡単にライティング設定が行えます。
ちょびっと補足すると上2つ、IBLを用いないものはOpenGLのライティングです。まあ以前からあるやり方なのでポピュラーなこととCGオペレーターが慣れていることもあって広く使われています。こちらの欠点はライトを足していくと重くなる、ということでしょうか。HDRIのほうは基本的に画像なのでライトの数は無制限です。ちなみにイメージベースドライティング(IBL)の最初の提唱者がKeyShotの開発者でもあるJensen氏です。10年以上前からアイデアはあったのですが当時のハードスペックでは追いつかなかった事情があります。そういう意味では以前では考えられなかったことが出来るようになってきました。

新しい環境ファイル-2

KeyShotはデフォルトで環境マップ=Environment mapがいくつか用意されてます。KeyShotの場合は環境ファイルがライトを兼ねていますのでこれを変えることにより異なる演出が可能です。以前、こちらのエントリーでもいくつかご紹介しましたが、新しいファイルが追加されたので公開します。Backplate=背景版がついているものとついていないものがあります。

Computer Room


早朝に撮られたものです。窓から差し込む太陽の間接光、天井からの電灯の2つが光源です。この環境マップとバックプレートは小さな電気製品等に最適です。

環境ファイル バックプレート

Garage

早朝にガレージを撮ったもの。バックプレートは複数枚用意されてますのでレンダラーのチェック、小さな製品に最適です。

環境マップ バックプレート

Contemporary Kitchen


キッチンの内部を撮影したものです。天井からは冷色系のアンビエントライト、窓からはもっと強い外光が差し込んでいます。

環境マップ

Munich Hallway


ホールの中程で撮影されたもの。窓からは太陽の直接光、天井からは冷たい色のアンビエントライトが来ています。

環境マップ

Mammoth Road


カリフォルニアのマンモスという所で晴れた日に撮影されたもの。所々雲で遮られた太陽からの直接光が降り注いでいます。(あちらの自動車広告で良く使われるようなトーンです)

環境マップ

Parking Garage



空の、他の車がいない駐車場で撮影されたものです。背景から差し込む間接光、弱い上部からのライトから成り立っています。

環境マップ

ちなみにちょっとしたTipsですがBackplateが無いものでパースが合わない場合自分で作ることが可能です。

  • KeyShotで環境マップだけ読み込む
  • 環境マップを回したり、高さを変えたりして任意の絵を作る。
  • この時、被写界深度を有効にするとぐっとリアリティが増します。
  • Ctl + Pでレンダリングする。

KeyShotのカメラは実際のカメラに近い挙動を示すので例えばPhotoshopなどでやるよりもいいものができます。

※なお拡張子が.hdzというファイルはKeyShot独自のファイルですので他のレンダリングソフトでは使用できません。

バンプマップを使ったエンボスロゴの作成方法

本家のtipsのほうで取り上げられてましたので、ここでも簡単に学習しておきます。いろんな手法がありますがここではKeyShotのロゴを作成しています。

まずはPhotoshop側で下記のように設定します。

  • 通常バンプは黒白の画像を作成しますがここでは白と透明の下地を使用(ロゴの部分だけを浮き出させるようにです)
  • png形式で保存(アルファチャンネルを別個に作る必要が無いので)
  • 上記画像を作成後、KeyShot側で読み込む。

上の作業が終わったら今度はKeyShot側で下記のように設定します。

  • リピートを切って一カ所に表示
  • Keep aspect ratioのチェックをオフにして自分で任意に上下比を変更する。
  • ポジションをクリックして好きな場所に移動
  • 角度で上下逆さまのテクスチャーを回転
  • ロゴの部分は色を保持したままテクスチャーを作成。保存後KeyShotに適用。
  • syncにチェックを入れるとバンプマップと同期して設定が簡単に。
  • intensityを落として見かけを良くする

となります。
KeyShotの場合、この辺の操作非常に簡単です。一度ビデオをご覧いただければ(英語で恐縮ですが)すぐにできるようになります。

ちなみにバンプでマイナス値を入れると凹み部分として表現されます。
下記の画像のようになれば完成です。


サンプルファイルをこちらに置いておきました。試してみてください。

KeyShotアップデート ビルド2.2.65のリリース

KeyShotの新しいビルド2.2.65がリリースされました。今回のリリースでは主にインポータの機能向上とバグフィックスが行われています。下記がその内容です。

インポータ

  • ALIAS2012のサポート
  • CREO Elements/Pro(Pro/ENGINEER WILDFIRE 5)のサポート
  • Rhinoインポータの機能向上(インスタンスとマテリアルのサポート)
  • Autodesk Inventorインポータの機能向上

バグフィックス

  • マテリアルの保持機能
  • テクスチャーボックスマッピングの不具合修正
  • リアルタイムレイトレーシングとターンテーブルの不具合修正
  • ネットワークレンダリングの不具合修正
  • その他バグフィックス

既にKeyshot 2をお使いのお客様にはマテリアルライブラリーをそのまま引き継ぐ、アップデート版が用意されています。ウェブに繋がっている環境の方はKeyShotを起動後、ヘルプ>アップデートをチェックでアップデートファイルをダウンロードしてください。その他の方はメールでダウンロードパスをお送りします。

デモ版はこちらから御願いします。

ヘアラインマテリアルの設定-tips

良く受ける質問の一つに、「アルミ等のヘアラインを持つマテリアルの設定を教えてください」というのがあります。今回はその辺の設定、パラメータを簡単に説明してみます。テクスチャーに関してはデジカメを使って撮る、あるいはこういった便利なサイトもありますが、今回は手っ取り早く、KeyShot内のマテリアルを流用します。

  • まず、最初に編集>プリファレンスから高度な設定を表示にチェックを入れておいてください。
  • KeyShotフォルダ内のSceneフォルダからkeyShot_ball.bipを開く。(このボールはUVがきちんと貼ってあるのでテストで使うのに適しています)
  • マテリアルを開いてMetalからPolished Steel Verticalを選択、ボールの外側にドラッグ & ドロップ。
  • ボールの外側を右クリック>マテリアルの編集を選択
  • 既にテクスチャーが割り当てられたマテリアルなので質感はできています。各パラメータの設定ですが
  • テクスチャタブを選択。スケールU,Vでヘアラインの大きさ、シフトU,VはUVに沿っての移動。角度は向き、強度でヘアラインの立ち方、目立ち方を調整します。
  • バンプ側では基本的にテクスチャに対してでこぼこの高さを擬似的に表現しますが、基本設定はテクスチャと同じもので結構です。
  • パラメータのタブ内では、粗さ(表面の粗さ設定、スムースにするのだったら少なくする)、グロッシー(ぼやっと見える部分ですがCGはよくシャープ過ぎるといわれるので入れると効果があります。サンプル数は20ぐらいにします)などを調整します。

などなど、やってみたのが下の画像です。KeyShotの場合画面で出来映えを確認しながらできるので質感を詰めていくのはやりやすいですね。あと、ハイライトに入ったライトの色をもっと暖色のものに変更したいといったリクエストもありました。いくつか方法があります。HDR Light Studioで作るのがっ取り早くできます。KeyShot内でやる手法もあるのですがそれはまた別の機会に触れたいと思います。パッケージファイルはこちらからダウンロードお願いします。

白いマテリアルの設定とガンマ補正

Luxionのニュースレターにガンマの調整のtipsがあったのでここにも載せておきます。KeyShotのライティングに関しても若干触れられているので役に立ちます。

ガンマの調整と白いマテリアルの表現

  • KeyShot内では環境側とリアルタイムウインドウのガンマの調整、2つの設定項目があります。環境側は読み込んだ、HDRIファイルに対してリアルタイムはオブジェクトを含むシーン全体に対しての設定となります。デフォルトの設定としてリアルタイムガンマを1.8から2.2ぐらいに設定します。
  • 白く飛んだ部分は環境>ガンマ補正の値を上げることにより解消されます。次にリアルタイムレンダリング>ガンマ補正の値を上げてマテリアル上でよりフォールオフが自然な(徐々に落ちる)ライティングが表現されます。次に輝度を調整して全体の明るさを調整します。
  • マテリアルに関しては、色を100%白色に設定してください。色を弄るのではなくガンマを調整して質感を高めてください。IOR値を上げてリフレクションを多くするとよりリアリスティックな質感になります。
  • 白いマテリアルと他の(もっと暗い色の)マテリアルが混在している場合、白色にあわせてガンマを調整すると暗い色のほうが合わなくなります。この場合は白100%からややトーンを落として他のマテリアルとうまく表現できるよう調整します。
  • 暗い色のバックグラウンドカラーを選択するとより白が映えます。

補足としてガンマをに関して少し説明を加えておきます。ガンマは極々簡単にいうとコントラストの調整です。KeyShotの場合ライティングはHDRIをライトとして使用しています。これは32ビット、つまり人の目には見えない情報が含まれています。人間の目はそれらをうまく調整してつまり補正をかけてその映像を僕らは見ているわけですが、それと似たようなことをやっているのがガンマだと考えて頂いても結構です。つまり色を弄るよりもこちらを調整する方が(僕らの目に近い分)質感を出しやすくなります。モニターのガンマ補正という単語をお聞きになった方も多いと思いますが、あれも原理的には一緒です。モニターのハードウェアとしての制約上、出力が入力に対して比例せず、入力が小さいほど実際の出力の割合が小さくなるのですがそれを調整して明暗をリニアに振って暗すぎたり、明るすぎたりならないよう調整します。

ちなみにまた、機会を見つけて触れていきますが、テクスチャーの扱いはもう少し配慮が要ります。Photoshopなどで弄る必要がありますがレンダリングで適当なテクスチャーはそれ単体では必ず暗くなります。

上の画像をレンダリングした.bipファイルはこちらからダウンロードできます。bumpに使うノーマルマップが含まれていますが、それ以外はごくごく普通のKeyShotファイルです。

レンダリング手法について-CPU or GPU?

インテル社が面白いレポートを出しています。”No-Holds-Barred Production Rendering”というタイトルのものです。プロダクションレンダリングに待ち時間は要らないよ、という意味でしょうか?CPUを使ってレンダリングを行う際のポイントが述べられているのですがいくつかのソフトウエアが紹介されています。その中の一つにKeyShotが取り上げられているのですがJensen氏のコメントがなかなか面白いので以下、拙訳を載せておきます。

問:あなたのリサーチは大きな可能性を生み出しました。あなたが提唱したBSSRDFアルゴリズムは映画、ロード・オブ・ザ・リングに出てくるゴラムの皮膚を表現するのに用いられました。またグローバルイルミネーション、コースティクスの表現にフォトンマッピングを提唱されています。レンダリングを行う際に用いられるCPUの役割についてコメントしてください。

Dr. Wann Jensen:レンダリング処理が複雑になるにつれ、最新のCPUパワーのメリットがより明確になってきます。KeyShotのようなアプリケーションはマルチコア、マルチCPUに適した、極めて洗練されたアルゴリズムを用いています。それぞれのコアに異なるプログラムを走らせることも可能ですし、より大きなキャッシュを最適化して、全体のメモリー帯域を高めてCIE(International Commission on Illumination)により認証されたリアルタイムタイムレイトレーシングを行ってライトを正確に計算します。それに対して、GPUベースの特別なグラフィックカードは異なるプログラムを走らすことはできません。

例えば、GPUでフォトンマッピングを行おうとすると、フレームレートを高めるためには物理的な正確性を犠牲にしなければなりません。複雑なデータ構造をGPU上で扱おうとするとCPU上で行うより遙かに困難な場合が多いのです。CPUの場合はキャッシュを活用して値を貯めて計算を速くすることができます。一方、GPUではそういった計算は最初から行う方が好ましいのです。

GPUを使う場合、特定化されたメソッドを用いて特定の効果を計算するとリアルタイムで品質の高い計算結果が生まれます。それらの特定化されたメソッドは、例えば複数用いる場合、お互いにうまくミックスされません。相乗効果が期待できないのです。もう一つGPUには大きな欠点があります。デファクトといえる標準の環境がありません。プラットフォームごとに新しくコードを書く必要があります。CPUはもっと標準的で柔軟性のあるプログラミングモデルが提供されています。プログラマーは新しいアルゴリズム開発に専念できます。コードを書き直して特定のプラットフォームに対応する作業に忙殺されることはありません。

問:一般ユーザーがKeyShotで最適のパフォーマンスを得るにはどうすればいいのでしょうか?

Dr. Wann Jensen:単純にCPUを増やすだけです。これはGPUベースのレンダラーと対照的です。ソフトウェアは特定のビデオカードのみをサポートしており、毎年買い換える必要があるかもしれません。CPU上で計算能力を上げることは遙かに簡単なことなのです。

以上のような内容です。現状、レンダリングのような複雑な計算が必要な場合はCPUベースの方が適していることがよくわかります。また、Bunkspeed UDriveからHypershotと10年以上に渡って開発が続けられてブラッシュアップされてきたアルゴリズムがいかに洗練されたものであるかわかります。つい最近出てきたばかりのテクノロジーとは奥行きが違います。このような複雑なソフトウエアはそのアルゴリズム開発にも、それを製品に適正に実装するにもそれなりに時間がかかります。一朝一夕でできないものであることがよくわかります。

なお原文はこちらからダウンロードできます。

KeyShotアップデート ビルド2.2.52のリリース

新しいビルド2.2.52がリリースされました。このアップデートはバグフィックスのみが行われています。下記がその内容となります。

インポート

  • オブジェクトを移動した後ヒエラルキーツリーが崩れる現象を修正。
  • 複数回保存した後スケール、オリエンテーションが失われる現象を修正。
  • インポートの際カメラがずれる現象を修正。
  • 新しいオプジェクトをインポートした際、消去したオブジェクトが表示される現象を修正。
  • ファイル > 新規からファイルを開いた際、それ以前のスケール、インポート設定などの履歴を持たないよう設定。

インポーター

  • SketchUpインポーターのノーマル、スケールの不具合を修正。
  • Alias、.wireファイルのオブジェクトが複数読み込まれる現象を修正
  • SolidEdgeのpartファイルをサポート
  • FBXファイルのテクスチャー読み込みをサポート

その他

  • KeyShot2.2に旧いシーンがインポート、表示されない現象を修正。
  • ライブラリーからマテリアルを消去できない現象を修正。
  • 外国語文字を使用する際の不具合修正。
  • その他バグフィックス

既にKeyshot 2をお使いのお客様にはマテリアルライブラリーをそのまま引き継ぐ、アップデート版が用意されています(メールでダウンロードパスを送っております。)
デモ版はこちらから御願いします。

KeyShot2.2をお使いの方はHelp > Check for Updateをクリックしてください。(メールでもお送りしています)

デモ版はこちらから御願いします。既にKeyshot 2をお使いのお客様にはマテリアルライブラリーをそのまま引き継ぐ、アップデート版が用意されています。

KeyShotアップデート ビルド2.2.45のリリース

新しいビルド2.2.45がリリースされました。今回は以下の点が追加/修正されています。

  • Rhino5ファイルのサポート
  • インストーラの修正
  • フローティングライセンスのボロー機能
2.2.44での修正点、追加機能
  • インポートしたジオメトリーにラベルを追加する際の不具合修正
  • ぼけたテクスチャーを使用する際の不具合修正
  • レンダーキューを使用する際、同じ名前で出力してしまう不具合修正
  • ネィティブスタイルのGUIをデフォルトに(後から変更可能)
  • アドバンスモードでの high quality texture フィルタリングの機能追加
  • インポートした.objファイルに対して前回の軸設定を適用
KeyShot2.2をお使いの方はHelp > Check for Updateをクリックしてください。(メールでもお送りしています)

デモ版はこちらから御願いします。既にKeyshot 2をお使いのお客様にはマテリアルライブラリーをそのまま引き継ぐ、アップデート版が用意されています。

KeyShotアップデート ビルド2.2.42のリリース

新しいビルド2.2.42がリリースされました。今回は以下の点が修正されています。

  • パッケージのロードと保存(.bipファイルとテクスチャー)
  • SpaceNavigatorの機能向上
  • その他バグフィックス
KeyShot2.2をお使いの方はHelp > Check for Updateを(メールでもお送りしています)

デモ版はこちらから御願いします。既にKeyshot 2をお使いのお客様にはマテリアルライブラリーをそのまま引き継ぐ、アップデート版が用意されています。