little things of mine

from los angeles, california

DD Vancouver

出張で一週間ほど行って来ました. 新しく準備したスタジオなだけあって,Venice本社よりも設備は良かったです.マシンもネットワークも速い.モニタもいい物使ってました.ビル自体は結構古い感じがしましたが,中はちゃんと作り直されていてきれいでした. あと,まだ人が少ないせいもあると思いますが,一人分のスペースが広い.Veniceの倍くらいあるんじゃないかなあ.キューブとデスク自体が大きいんで,人が増えても狭くなる事はないんじゃないかと思います.Veniceで窮屈な思いをしている人は多いので,うらやましい. それに一番いいのは,Vancouverという街が良い所って事でしょう.誰かに聞いた話ではどこぞの「世界の住みやすい街ランキング」でトップだったとか何とか.公共の交通手段がよく整備されているし,街も綺麗で自然も多い.道路もLAのようにデコボコじゃありません.あと,食事がなんでも美味しい!アジア人が多いので,食材なんかも楽に入手できます. 今,VancouverにはたくさんのCG/VFXスタジオがあります.DD,MPC,ImageEngine,Pixar,Imageworks,Rainmaker,EAなどなど.就労ビザや永住権もアメリカに比べると遥かに取りやすいそうですし,これから海外へ出ようと思っている方にはお勧めできると思います. 自分もちょっと考えよう.

82th Academy Awards Winners

さて,今年の受賞作品は. Nominees & Winners for the 82nd Academy Awards | Academy of Motion Picture Arts & Sciences AVATAR,Visual Effectsはガチでしたけど,他は思ったほど獲りませんでしたね.個人的には納得できますが,え?って思ってる人も多いかも?あと,Animated Feature FilmはCoralineに獲って欲しかった.District9が受賞無しなのもちょっと残念. 6部門を受賞したHurt Lockerという作品,自分は観てません.そんなのあったっけ?ってくらい記憶から消えてます.それもそのはず,boxoffice的には全然振るわなかったようですね… 今度観ておこう. The Hurt Locker (2009) – Box Office Mojo 一方のAVATARは,Titanicが持っていた歴代一位の座を奪いました.James Cameronすごい! All Time Worldwide Box Office Grosses ただし,チケットの値上げ分を考慮するとまた違う結果になるそうです. All Time Box Office Adjusted for Ticket Price Inflation もう一つのAcademy,Sci-Tech Awardsの結果はこちら. Scientific & Technical Awards [...]

PRMan 15

今更ながらPRMan15の話題など. Pixar's RenderMan® / Press Releases いろいろな追加機能があるのですが,目立った物だけ紹介します. [ Volume Rendering ] 今回のバージョンで一番大きな追加機能はこれでしょう.PRManにモダンなボリュームレンダリングの仕組みが搭載されました.今までもボリュームをレンダリングする事は可能でしたが,「モダンな」と言うところが鍵です. ボリュームレンダリングと言えば,視線(ray)に沿ってdensityを積分してゆくray marchingが一般的ですが,これはサンプル数が十分でないとノイズが出やすく,ディティールも再現できないので,サンプル数を上げざるを得なくなり,その結果時間がかかってしまうものでした. PRMan15に搭載されたのは,frustum voxelを使った手法です.これは,通常のvoxel gridにperspectiveをつけたものと考えてもらえばいいかと思います.つまり,カメラに近い方が小さく狭く,遠くなるにつれて大きく広くなっているvoxel gridです.このようなvoxelを事前に生成し,次にそれぞれのvoxelにおいてシェーダを実行して各々のvoxel densityを計算,そのあと視線に沿ってdensityを足し算します. イマイチわかりにくいと思いますので,ray marchingと処理手順を比べてみます.ray marchingは,「初期ポイント→次のシェーディング点を探す→シェーディング→足し算→初期ポイントを移動」という処理をボリューム内部において延々と繰り返す必要があったのですが,frustum voxelの場合,「voxel grid生成→一度に全部シェーディング→足し算」とシンプルになります.また,シェーディング結果がシェーディングポイントの決定に影響を与えないので,並列化もできます.サンプリングポイントをdynamicに決められない事が欠点のように思えますが,frustum voxelは近い所をより多くサンプルするようになるので(voxelが小さくて狭いから),効率の良いサンプルが可能なのです(もちろんパラメータでの調整もできる). 軽くテストしてみましたが,レンダリングも高速で,非常に良い結果が得られました.point cloudと相性が良いのも実作業では大きな武器になるでしょう.scatteringとかやれますからね. [ Struct Inheritance and Member Functions ] RSLで,structがメンバ関数を持つ事ができ,さらに継承ができるようになりました.これはshader writerにとっては非常にうれしい事で,シェーダの機能をオブジェクト指向っぽくモジュール化する事ができます.今までは関数にするしかなかったので,これは大きな進化です. 実際にこれをフルに使ってshader libraryのプロトタイプを書いてみましたが,かなり奇麗に書く事ができました.一部制限があって(関数をインターフェイスにできない),小さなhackも必要でしたが,全体的に見通しも良くなりましたし,拡張も継承を使って楽にできるはずです.あとは使う人達がどう感じるか,かな. [ Ray Differentials Shadeop ] ようやくray differentialsがシェーダ側で取得できるようになりました.新しいRSL関数,raydifferentials()が追加になっています(ray differentialsについては以前の記事を参照してください).恐らくこれに伴った機能追加だと思うのですが,filterregionという,pre-definedなstructが用意されました.これはあるシェーディングポイントにおいて,適切なfilter sizeを2D/3Dで計算して返してくれるクラスです.PRManは以前でもtexture filteringのクオリティは高い方でしたが,さらに良くなるようです.特に二次レイ以降の結果向上は顕著だろう思いますが,まだテストし切れていません. [ Ptex ] Ptexについては前回の記事を参照してください. こんなもんでしょうか.他にも開発系の機能追加が多くあるのですが,今回も「使える」機能がたくさん追加されました.思わず「いいねえ」と言いたくなります. さて,あとは実践投入だ.

Ptex

DisneyからPtexのコードがリリースされました. Ptex Overview PRMan 15.0でPtexがサポートされたので,その他の新機能を含めてまとめて書こうと思っていたのですが,思ったよりも早くDisneyからソースコードがリリースされたので個別に紹介したいと思います. texture mappingは,現在広く使われているUVベースの物が開発されてから,恐らく40年以上,基本的なアイディアは変わらずに来ました.逆に言えばそれだけrobustなものであったとも言えるわけですが,実用レベルでの様々な問題を長年解決できていなかった事も事実です.それらはこのブログでも何度が取り上げた事がありますが,アンチエイリアス,UV空間と実モデルのボリュームの違い,どんなモデルでもUVをきちんと作らなければならない事,などです. Ptexは,Disneyが2008年にEurographicsで発表した,新しいtexture mappingに関する手法およびデータフォーマットで,上記で挙げたような実作業上の問題をできるだけ解決すべく,Disney内部で開発された技術です.Ptexはper-face texture mappingの応用にあたる物と言えるので,細かい事を言えば「UVテクスチャ以来の新技術」というのは言い過ぎかも知れませんが,実用可能なレベルまで改良を施し,きちんと作品に還元できている点で,非常に評価できると思っています.元論文はこちらあります. Ptex: Per-Face Texture Mapping for Production Rendering 特徴を挙げると: – UVフリー – seam問題の解決を含む高品質なアンチエリアス – 部分ごとに解像度を調整可能 – 効率的なデータストレージ 詳しい仕組みは論文を読んでいただいた方が良いと思いますが,乱暴に言えば,ポリゴンフェイス毎に個別なUVを持ち,それぞれ違う解像度のテクスチャを充てている,と想像してもらえれば分りやすいと思います.全ポリゴンがそれぞれ個別なUVを持っているわけですから,テクスチャ座標を人間が作ってやる必要はありません.ポリゴンモデルができた時点で,全てtexture readyになるわけです.(それぞれのフェイスのUVは頂点ループの順番で固定できます) Ptexではそれぞれのper-face textureを全て一つにファイルに保持し,加えてメッシュの繋がり情報を保存しておく事で,複数のフェイスに跨がったフィルタを解決しています.それぞれのフェイスが別の解像度を持つ事は,必要な部分だけ解像度を高くする事ができるわけで,ファイルサイズの節約になりますし,アンチエリアスもディティールを殺さずに済みます. Disneyではprocedural patternもPtexに焼いているようです.個人的にこれはとてもいいアイディアだと思います.焼いてしまうとシェーダレベルで変更ができなくなるので逆行しているように見えますが,procedural patternは,voronoi diagramなど,物によって非常にアンチエリアスの難しい物があるので,むしろテクスチャに焼いてしまった方が問題が少なくなるケースも少なくないのです. さて,とても良さそうなPtexですが,スタジオレベルでの大きな問題が一つあって,それは「Ptexをどうやって作るか」という事です. Ptexの利点を最大限利用するには,フェイス毎にテクスチャをペイントする必要があります.Disneyでは自前の3D paintプログラムを開発してこれを解決したようですが,これはどこでもできる事ではありません. しかし,個人的にはこれには楽観視していて,PRManがすでにPtexをサポートしている事と,今回DisneyがPtexのライブラリとそのソースコードを公開した事で,比較早い時期にZBrushやmodo,BodyPaintのようなツールがPtexをサポートするのではないかと思っています.そうなれば普及は早そうです. 最近のVFX業界は,技術がどんどん(有償無償問わず)オープンになってきていますね.技術の均一化によって値段が更に下がり,単純作業はコストの安い海外へアウトソースされて行きます.これからは単一の技術が生き残る要因にならず,パイプラインのコア技術や優秀な人材など,スタジオの地力みたいなものが効いてくる時代になって行くのでしょう. なかなか厳しい時代になりそうです.

Open Shading Language

OSLのソースと詳細がアップされたようです. fxguide quick takes » Sony Releases Open Source Shading Language openshadinglanguage – Project Hosting on Google Code ドキュメントのみサラッと読んでみましたが,RSLとは見た目こそ似ているものの,設計は随分違いますねえ.このままPRManが今のまま同じ仕様をサポートするのは難しいでしょう.まあ,逆に言えば古いしがらみに捕らわれていない分,新しい事ができる土台になると思います.シェーダがclosureであるとか,light samplingはレンダラ側でやるとか,色々と興味深い. ソースコードにはコンパイル済みシェーダの実行環境もライブラリとして含まれています.これを使って自分のレンダラにOSLを組み込む事ができますし,relightingツールなんかも作れそうですね. 今後の成長が楽しみであります.