iRayとコースティクス

AreaというAutodesk社が提供するサイトがあります。主にエンタメ業界向けに情報発信を行っているサイトなのですがなかなか面白い記事もあり筆者=長谷川もよく見ています。日本版の他にアメリカ版もあるのですが(多分その他多くの言語があるのだと予想されます)、アメリカのフォーラムに面白い記事がありました。“iRay renderer not supporting caustics “というタイトルです。フォーラム風のスレッドなのですが、iRayのコースティクス表現に関するものです。多くの人がMentalRay、iRay両方を使ってレンダリングしたその結果も一緒に載せており興味深い内容です。かなり長いので結論(めいたものとこの場合お考えください。)をこちらでまとめてみました。

  • iRayはパストレーシングを使ってコースティクスを表現しようとしている。その手法はBDPT=bidirectional path tracingといわれるアルゴリズムで光線をカメラ、光源両方からトレースして真ん中で繋ぐという複雑なものである。
  • ただこの手法では制限があり、コースティクス内のリフレクションは表現できない。(文中でreflection of caustics またはdeep causticsと呼ばれているものです)表現しようとするとこの手法ではfirefliesというノイズが飛んでうまくいかない。
  • 上記の制限を具体的にいうと光源が小さい、オブジェクトが複雑な場合にうまくいかない。
  • 基本的にはコースティクスを表現するにはフォトンマッピングが未だ一番優れている。この手法もCPUベースでないと現状難しい。
  • 一緒に比較したMentalRay(こちらはCPUベースです)では全てうまく出来ている。

下の写真を見て頂くとよくわかるとお思います。上がMentalRayでレンダリングしたもの下がiRayでレンダリングしたものです。ここでいうとティーポットの影の中に表現されている真ん中の明るい部分がコースティクス内のリフレクションにあたります。こうしてみるとわかりやすいですね。MentalRayはご存じの通りいわばデファクトのそして100%CPUベースのレンダリングエンジンです。iRayと同じMental Images社(NVidiaに買収された会社)の製品です

こちらがMentalRayでレンダリングしたもの

こちらがiRayでレンダリングしたもの。

皆様ととやりとりをしていてよくCPUとGPUベースどちらがいいか?Biased vs Unbiasedどちらが良いか?みたいな話になります。この手の論議はマーケティングトークでして実はあまり実態がなく正直深く考察する必要はありません。また最近KeyShotより○×のほうが綺麗だ(あえて製品名は避けますがiRayを使用した製品です)みたいな話をビジネスパートナーからされたことがありまして、ここに書いたような内容を踏まえて割合きちんと議論しました。こちらの印象としてはマーケティングトークをただ鵜呑みにしていた感があったのですが、こういう場合はきちんとテストして製品の機能や特徴を見極めるのが重要ではないかと考えております。○×が良いとか悪いとか印象論だけで語っても意味がありません。大抵は一種の宗教論争に陥って結論が出ないと思われます。また特定の製品を批判することが本稿の目的ではないことを改めて念押ししておきたいと思います。

iRay renderer not supporting caustics

iRay caustics issues

Arion vs KeyShot vs MentalRay

ちょっと面白いエントリーがありましたので紹介致します。レンダリングソフト世の中にあまたありますがここではArionとKeyShotとMentalRayを比較しています。(これもまた珍しい、面白い比較ですね)。出来上がったイメージを見てみるとArionとKeyShotは同等で時間はKeyShotのほうが早く、Mental Rayは明確に品質が悪い、という結果が出ています。もちろんこの手の比較は条件によって千差万別、いくらでも変わりますので一つの参考値として捉えておくのが良いと思います。特にMental Rayはパラメータをしっかり詰めないとノイズは飛ぶは、やたら時間がかかるはでなにもできません。

下の画像がその結果になります。

 

 

さて、この中で紹介されているArionというソフトはスペインのRandamControlという会社の製品です。この製品は今ちょっと流行っているUnbiased renderといわれるテクニックを用いているものです。同じジャンルの製品としてはMaxwell Render, NVidia iRayなどがあります。このunbiased(不偏、つまり偏りのない)という言葉の意味が個人的にはイマイチよくわかりません。数学的、統計学的に期待値が正しくなる手法らしいのですがディベロッパーに聞いてもよくわかりませんでした(数学あんまり強くないもので..orz)。ただ、推定するに例えば、間接光なりオクルージョンなりパラメータ単体で計算するのではなくシーンの中のあらゆるものを考慮してレンダリングする、という意味と考えられます。Maxwellとか確かに現実世界全てをシミュレートするようにレンダリングを行います。ソフトシャドウ、ハードシャドウといった個別のパラメータもありません。

で、ここで興味深いことをいくつか述べますと

  • Unbiasedが正確でbiased(KeyShotやMentalRayのようなタイプです)が不正確と対比的に考えられているがこれは誤り。Unbiasedの手法では全てのパラメータを考慮しているわけではない(例えばパストレーシングではコースティクスを扱えない)。一方PPM(プログレッシブフォトンマッピング)はbiasedの手法ですがこちらはコースティクスの扱いが上手い。(例えば上の画像でルビーの部分は明らかにKeyShotが一番綺麗です)
  • 言い換えると現状UnbiasedレンダラーでGPUを用いるものはガラスなどの屈折やコースティクスをうまく表現できない
  • Unbiased手法はサンプル数が多く必要なため処理が重く時間がかかる。(GPU計算でも上記で見るようにCPU処理よりむしろ時間がかかっています)つまりリアルタイム、インタラクティブ的な使用方法は現状不可能に近い。
  • NVidia iRayのプラットフォーム以外のものでも優れたレンダラーがある。機能でいったらむしろ上の場合もある。(例えばこのArionの場合もCPU,GPUを併用していますがiRayは使っていません。代わりにCUDAを用いたGPUレイトレーシング技術を採用しています。GPUを使っていてもiRayプラットフォームではないレンダラー他にもいくつかあります。小さい会社の製品が多いためあまりよく知られていないのですが)
  • GPUで計算すれば早くなるという単純な話では無い(レンダリング出来ないマテリアルがあってはそもそも意味がないので)

巷で言われているマーケティングトークと現実世界はかなり異なることがわかります。もっともこれは何もレンダラーだけでなく他の多くの事象にも当てはまります。常識は疑ってみた方がいいということですね。それはともかくこれも考えてみれば当たり前なんですよね。ゲームの世界でも、映像系でも、建築のビジュアライゼーションでも現在おそらくかなり多くの比率でV-Rayが使われているはずですが、これがハードウェア側の都合でぱっと入れ変わるということが起こるとは到底考えにくいです。ムーアの法則に従ってCPUが早くなるのには限界がある、GPU側のほうが伸びしろが大きい、といったこともよく言われますが(これが所謂マーケティングトークですね)、別にそれなら並列にすりゃいいじゃん、というのが今のマルチコア化の流れで同じ基盤の上に並べれば当然製造コストも安くなります。CPU側の方が現状コストメリット大きいのも当然です。それに共通のプラットフォームで書かれたプログラムは開発もデバッグも拡張性も全てにおいて非常に楽です。(例えばKeyShotがWin, Mac両プラットフォーム上で動くのはIntelチップに最適化されているからです)というわけで2つの技術は当分の間並列で使われていくのではないでしょうか。

Arionは当社では扱っておりませんが、サイトはこちらになります。ご興味のある方は一度試してみるとよろしいかと思います。

 

iRay in Bunkspeed

なかなか面白いビデオがあるのでアップします。Bunkspeed社の製品が紹介されているのですが(KeyShotとの関係、経緯については以前、こちらで触れました)、NVidia社のiRayテクノロジーを用いてGPUでレンダリングしています。まずはビデオをご覧ください。

確かにGPUを使ったレイトレーシング、時間はめっぽう早くなるのですが、制限は色々と存在します。(それに関してはこちらで説明しました)具体的には、例えば車のヘッドライトの質感などは厳しいものがあります(この例ではプロトタイプですのでライトの形状があまり複雑でないのと、自発光をさせて目立たないようにしているようですw)。テクノロジーでいうとコースティクス、サブサーフェススキャタリングなどがこれにあたります。

時間がある方試して頂きたいのですが、例えば下のモデルをGPUのみで作ってみてください。こういった例が一番わかりやすいと思います。

KeyShotに関する質問

最近よく聞かれることが多いのでKeyShotとその前バージョンともいえるBunkspeed社のHypershotとの関係について少し説明してみます。
Bunkspeed社が販売していたレイトレーシングの技術は(製品としてはU Drive→Hyper Drive→Hyper Shotに搭載されたものです)元々Luxion社(今現在KeyShotを開発、販売している会社です)の創業者であり開発者でもあるHenrik Jensenさんが作ったものです。JensenさんはMental ImageでMental Rayの開発をしていてPhoton Mappingの発案者、IBLの提唱者でもあります。(確かアカデミー賞も受賞されています)
詳しい情報は氏のウェブサイトをご覧下さい。

おそらく既に氏の頭の中にあったのでしょうが、そのアイデア基にして開発を行い製品化したのが今現在のBunkSpeedという会社になります。当初、彼らのビジネスは主にアメリカの自動車会社の一つであるF社でありレイトレーシングの技術を使った製品U Driveを納めていました。当時の製品は非常に高額なものだったのですが、高額な製品はやはり市場が狭いのか同社は価格を下げて異なるマーケットに進出します。それがHyperShotです。

Jensenさんはこの間ずっとBunkspeed社の開発先として自分の会社で(これがLuxion社です)Bunkspeed社から仕事を請けてこれらの製品を作っていたのですが両社の間に(Bunkspeed社とLuxion社)トラブルがあり袂を分かつこととなりました。正確にはBunkspeedが開発費をLuxion社に払わなかったのが原因らしいです。
この辺りの事情詳しくはこちらに書いてあります。What’s going on with HyperShot?

結果的にレンダリングエンジンがなくなってしまったBunkspeed社はMental ImageのiRayを基にGPGPUのレンダラーを開発して製品化しました。これがShotです。

一方、独立したLuxion社はHypershotを発展させた製品KeyShotをリリースしました。ここまでが今、現在までの経緯となります。

さて、では、今後どうなるか?という話ですが(これも聞かれることが多いので、ですがあくまで個人的見解という前提で)述べてみます。

最近iRay等を含めNVIDIA社はGPUを強力にプッシュしてます。(自分がグラフィックボード作っているので当たり前ですが)。Bunkspeed、Shot以外にもいくつかのプラットフォームに既に実装されています。確かにGPGPUは計算速度は速いのですがまだ発展途上で色々と問題があります。例を挙げるとコースティクスの表現はできません。ガラスの下の映り込み等ですね。論文レベルではあるのですが寡聞にして綺麗に表示されているものこちらが知る限り未だありません。やはりこれはフォトン撒かないとできませんので、現状CPU側でやるしかありません。同じ点でサブサーフェススキャタリングもそうですね。リフレクション、リフラクション以外にできないこと意外に多いのです。そのような状況を考えると100%GPUに切り替わるということは現実的には不可能だと思われます。

一方で、ラスタライズ(OpenGLなどで表現するリアルタイムと呼ばれるものです)系もそろそろ表現に限界が見えてきてます。僕等の目が慣れてきたせいかちょっと綺麗に見せようと思ったらレイトレーシングが必要になります。
レイトレーシングに関しては様々な製品があります。現状、簡易的なレイトレーシング(計算を上手く端折るタイプですね)を一番上手くやっているのがHyperShot=KeyShotでして弊社がこの製品を扱い始めたのもその辺が経緯です。Jensenさんはフォトンマッピングあたりを熟知しているのでこの先良い製品を出すだろうという期待があります。GPU側のテクノロジーも順次取り入れていくと思われます。

最後に将来を踏まえての話です。

レンダラーに関しては用途により何がベストか変わりますのでなんともいえません。ですので製品に依存するのではなくもう少し長い目で見る必要があると思います。例えばマテリアルを資産として残しておきたいなら、RGBデータとテクスチャーは色情報として取っておくとか色々と方法があります。結局の所そういった前段階での準備のほうが時間やコストがかかるものです。製造系で導入したソフトを使わなくなってしまうというのもこの辺が要因と思われます。

KeyShot 2.1

ちょっと気が早いのですがKeyShot2.1の情報が入ってきました。いくつかあるのですが代表的なものをここでご紹介します。

続きを読む