KeyShot アニメーション by abed sabeh

本家のサイトにも何回か告知されていますが、あちらでは現在レンダリングコンテストを行っています。そこに応募された作品の一つらしいのですが、Abed SabehというCGアーティストの方の作品です。確かBunkspeed、HyperShot時代からユーザであった方だと記憶しています。下記がその作品なのですが見てみますと

YouTube Preview Image
  • 尺が結構長い上にHD解像度ですのでこれはかなりパワフルな環境でレンダリングを行っている
  • コンテストの条件はポスト処理OKなのでAE等でエフェクトをかなり加えている。リストバンドがてかる部分などなど
  • アニメーションはおそらくMayaなりでつけて.fbxで持ってきている(アニメーションパスを書かないと無理っぽい)

なのが気付いた点なのですが、綺麗に出来てます。個人的な感想というと、やや下世話な話になってしまうのですが、正直レンダリングコンテストとか実案件ではないものにこれだけ労力を割ける余裕がむしろ羨ましいな、と感じましたw。音まで入れてしまっております。探してみるとAbed Sabeh氏のサイトもありました。Maxwellも使われているようですがなかなか面白いです。

 

 

 

 

 

 

 

KeyShotでのテクスチャ操作。バンプ、カラー、スペキュラー、オパシティマップの作成

本家のブログにテクスチャに関する記事があったのでこちらにも紹介します。当ブログではあまり触れていなかったように記憶してますがトレーニングなどでは質問の多い項目です。ご存じの通りCGはテクスチャの表現が上手だとぐんとリアリズムが増します。テクスチャの操作も(他のKeyShotのオペレーション同様)特に難しいことはありません。基本を理解すると色々と応用が効くと思います。以下拙訳です。

KeyShotには100以上のテクスチャーが付属しています。木材、金属、その他多くのマテリアルが揃っています。但し世の中全ての素材をカバーすることは到底不可能です。自分で作る場合どうするか、Photoshopを用いての手法を簡単に紹介します。

バンプ、カラー、スペキュラー、オパシティマップとは?

簡単にいうと以下のようになります。

バンプマップ – 白黒の画像を用いて高低を(つまり凸凹を)表現します。
カラーマップ – マテリアルの色を表現(つまり置き換え)ます。
スペキュラー(反射)マップ – 白黒の画像を用いてリフレクションの強い部分、弱い部分を表現します。
オパシティ(不透明)マップ – 白黒の画像を用いて透明の部分と不透明の部分を表現します。

各マップの作成方法

いろいろな方法がありますがここではPhotoshopを使って上記4つのテクスチャーを作成します。(Photoshopの基礎知識があるものと仮定します)

ステップ1:Photoshopでテクスチャーの作成

1200 x 1200ピクセルのイメージを作成します。新しいレイヤーを追加してブラシツールを選択します。任意のブラシ、テクスチャーに加える色を選択します。brusheezy.comにはその他色々なブラシがあります。ウインドウ>ブラシ>ブラシからも調整が可能です。今回は下記のようなイメージを作成しました。

ステップ2:カラーマップの作成。

ペイントされていない部分(白い部分)を透明にしたい場合、バックグラウンドレイヤーを隠して.PNGフォーマットで保存します。この場合、マテリアルのディフューズ色が(テクスチャーが透明な為)そのまま表示されます。下記のようになります。

 

ステップ3:スペキュラーマップの作成

色をつけたレイヤーをダブルクリックしてレイヤースタイルを表示します。カラーオーバーレイをを選択して黒を選択します。.PNG形式で保存します。ご存じのように.PNG形式は透明な部分を保持します(アルファチャンネルを持っているので)。黒い部分は0%のリフレクション、白いエリアは100%のリフレクションとなります。下記のようになります

 

ステップ4:バンプマップの作成

背景レイヤーを表示して保存します。黒い部分が低く、白い部分が高く表現されます。ブラーを追加すると(フィルター>ぼかし>ぼかし(ガウス))高低差がよりスムースに表現されます。下記のようになります。

 

ステップ5:オパシティマップの作成

レイヤー>画像を統合、を選択、イメージ>色調補正>階調の反転を選択。KeyShot内では透明マップのパラメータがいくつかあります。但し、基本的にはこの設定で黒いエリアは完全に透明、白いエリアは完全に不透明となります。つまりペイントした部分は目に見えるエリアとなります。下記のように表示されます。

 

通常、透明マップはメッシュやワイヤーのように(つまり穴が空いた部分があるマテリアル)を表現するのに用いられますが錆びたもの、壊れたパーツにも効果的です。カラーマップを使って色の追加やグラディエーション、木目、ペイント自体の表現も行えます。

このように全てのマップを一度に作成するとスケールや配置が同じですのでその部分の調整が要らず便利です。

下記のイメージは異なるディフューズカラー、ディフューズマップを使用したものです。

おわりに

KeyShotは3.1になってかなりテクスチャー周りの機能が充実してきました。HyperShotの最初のバージョンは確かテクスチャーが扱えなかった(と記憶しています)ので、それから考えると着実に進歩しているといえます。

KeyShot3.1

KeyShot 3.1 の情報が伝わってきました。2/12-15にサンディエゴでSolidWorksWorld2012が開催されます。毎年行われているSolidWorksユーザ向けのかなり盛大なイベントなのですが、そこがお披露目の場所となるようです。見たところネットワークレンダリングの機能が追加されるようです。今までHyperShot時代から隠しコマンド的に存在していましたがきちんと製品として出してくるようです。アニメーションの場合、レンダリング枚数が当然かなり増えるのでこれは正しい方向性だと思います。楽しみな機能です。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

KeyShot 3のスクリーンショット

KeyShot 3 のスクリーンショットが公開されましたのでアップされます。先日行われたPlanetPTCでお披露目となったもののようです。既にCreoには対応しております。

拡大してみるとアニメーションの機能のウインドウが追加されています。それにしても青を基調としたインターフェース格好良いですね。現行バージョンの使い勝手の良さを引き継ぎながら進化しているようです。それと画面下にあったアイコンが左側に移動していますね。順序はそのままなのでそれ程混乱は無さそうですが。そういえば、HyperShot→KeyShot 1.9→KeyShot 2に移行した時もすぐに慣れてしまいました。インターフェースの優れたソフトの特徴でしょうか。Bunkspeed時代からの正常進化が伺えます。

レンダリング手法について-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に関する質問

最近よく聞かれることが多いので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データとテクスチャーは色情報として取っておくとか色々と方法があります。結局の所そういった前段階での準備のほうが時間やコストがかかるものです。製造系で導入したソフトを使わなくなってしまうというのもこの辺が要因と思われます。