レンダリング手法について-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年以上に渡って開発が続けられてブラッシュアップされてきたアルゴリズムがいかに洗練されたものであるかわかります。つい最近出てきたばかりのテクノロジーとは奥行きが違います。このような複雑なソフトウエアはそのアルゴリズム開発にも、それを製品に適正に実装するにもそれなりに時間がかかります。一朝一夕でできないものであることがよくわかります。

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

80スレッドでレンダリング

KeyShotを使った興味深いビデオです。Intel Developer Forum (IDF) というインテルのイベントに出展した時のものです。LuxionのCraigが見せてくれていますがマシンはかなりパワフルで、80スレッドを積んだ(Hyper thredingを使っているのでつまり40コアでしょうか)ものとなっております。KeyShotは並列処理に優れていてこういうハードウェア環境でもフルにCPUのパワーを使い切ってレンダリングを行います。

最初に出てくるチェスのモデルでは透明体を使ったコースティクスの表現、その後は人の顔をスキャンしたモデルでサブサーフェススキャッタリングを行っています。最後のモデルはなんと25億ポリゴンの大きなモデルなのですがKeyShotは問題なく読み込んでいます。おそらくソフトウエア的にピクセルごとに端折ったり、カリングなど裏で色々複雑なことをやっていると予想されます。そうでなければこのような大きなモデルをリアルタイムで動かすことは不可能です。GPU処理では絶対出来ないでしょう。

HDR Light Studio V2 新機能2 Background

既存のライブラリーなどからHDRを購入した場合、カメラで撮影した場合、後から修正を加えたい場合にどうしたらいいのでしょう。そんな時に便利な機能がBackgroundです(Pro版のみ)。これは個人的には一番気に入っています。下のビデオをご覧になるとよくわかるのですが、要はロケにおけるライト、レフ版です。既存の.hdrもしくは.exeファイルをHDR Light Studioに読み込んでライトを追加、KeyShot上で確認といったフローでライティングをよりクオリティの高いものに修正していってます。KeyShotはリアルタイムでレイトレーシングを行うのでこの場合、Livelightは使用していません。以前にも述べましたがHDR Light StudioとKeyShotの組み合わせは非常に使いやすく、また修正するとその結果が即座に反映される為、短い時間で質の良いイメージを作成できます。

3D Studio MaxからKeyShotへのレンダリング

あちらにはオンラインでのラーニングコンテンツが沢山あるのですが3D-Palaceというイギリスのサイトのようです。(英語のアクセントから察するに)
3D Studio MaxでモデリングしたスターウォーズのXファイターをKeyShotに持ち込んで、レンダリングをやっています。

解説の人曰く
  • モデルはあまり重くない。約33000ポリゴン
  • Max上では大まかなパーツわけだけをしている。こちらでは味気ないモデルがKeyShotに持ち込むと5分以内に素晴らしいものに早変わり。
  • レイトレーシング、アンビエント、オクルージョン、DOF(被写界深度)すべてリアルタイムで実現
  • そんなわけでこのレッスン試してみませんか
みたいなことをいっています。
確かにモデルをプレビューするには一番手っ取り早い方法かもしれません。



元のサイト
http://www.3d-palace.com