Posted by ますお on Feb 28, 2010 – 1:36 am
今更ながら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については前回の記事を参照してください.
こんなもんでしょうか.他にも開発系の機能追加が多くあるのですが,今回も「使える」機能がたくさん追加されました.思わず「いいねえ」と言いたくなります.
さて,あとは実践投入だ.
Posted by ますお on Jan 17, 2010 – 8:25 pm
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業界は,技術がどんどん(有償無償問わず)オープンになってきていますね.技術の均一化によって値段が更に下がり,単純作業はコストの安い海外へアウトソースされて行きます.これからは単一の技術が生き残る要因にならず,パイプラインのコア技術や優秀な人材など,スタジオの地力みたいなものが効いてくる時代になって行くのでしょう.
なかなか厳しい時代になりそうです.
Posted by ますお on Nov 5, 2009 – 5:20 pm
レンダラ込みのrelightingツールだそうです.
The Bakery
デモを見せてもらったのですが,まだリリース版ではないものの,とてもよく出来ていました.簡単に言ってしまえば,先日のKatana + renderer + relighting engineと言った趣きです.Katana同様,簡単なcompもできるようになっています.レンダラは専用で,外部の物(PRManとか)を使うことはできないそうですが,専用のレンダラを使うだけあって,ツールとrelightingエンジンとの連携は素晴らしく良かったです.
レンダラはREYES + レイトレで,必要そうな機能はほぼ実装済みな感じでした.curve primitiveやpoint primitiveも使えるそうです.relightingのシステムとしては,レンダラがREYESであることからも分かるように,初めにmicro polygonに分割し,その情報をキャッシュしておいて,シェーディングとサンプリングの再計算を高速にするタイプの物です.PRManのそれと基本的には同じですが,PRManよりもいろいろな事ができるようになっていました.(というかPRManのrelightingはまだオマケみたいなもん)
最初にカメラからmicro polygon化してしまうので,視点の変更が起こるともう一度bakeし直す必要がありますが,実際のshot workではあまり問題にはならないでしょう.カメラは動かせませんが,displacementシェーダの変更には対応しているそうです.shadowも変更できるようですが,shadow mapが基本なようで,レイトレを使うとさすがに多少スピードダウンしてました.他にも,SSSやGIの変更にも対応していますが,これらはpoint cloudを使っていて,それをon-the-flyで再生成するのですが,オブジェクト毎にうまくローカライズされており,非常に素早いフィードバックが得られるようになっていました.他にもspherical harmonicsを使ったlighting情報をpoint cloudに保存できるなど,なかなか使いでのありそうな機能が搭載されています.例えば,IBLとかblurry reflectionに使えますね.
拡張性もなかなか良さそうで,shading networkも組めるし,custom shaderもC++や独自のshading languageで書けるそうです.procedural geometryもサポート.bakeするデータもカスタマイズ可能で,好きなデータをプラグインできるらしい.
話を聞いていて,PDIのやつに良く似てるなーと思っていたのですが,どうやらCEOとCTOは元PDIの人らしい.デモをしてくれたのも彼らだったのですが,同僚に顔見知りがいました.特にCEOはeffects leadだったようで,現場で必要そうな物をきちんと揃えているのはそういうことみたいです.
ただし,全体的にやはり3DCG feature向けな印象が強く,shadow mapやpoint cloudを多用する辺り,photorealにするには一手間かかりそうな感じはします.あと,ツールとレンダラがほぼ一体化しているので,既存のパイプラインに組み込むのが簡単ではないかな.ほぼ構築し直しになりますね.
自前で作る時の良いお手本にはなりそうです.
Posted by ますお on Oct 2, 2009 – 3:05 pm
発表されましたね.
mental images: Integrated iray® rendering
少し前に会社でデモをしてもらったのですが,技術としてはなかなか興味深い物でした.特徴を挙げるとすれば:
- フルにGPUで動くpure raytracer
- レンダリングサーバと表示マシンはどこにあってもOK
- ウェブブラウザからも起動できる
- ほぼリニアにスケール
ただ,今のところかなりプリミティブな物のようで,製作に使えるような代物ではなさそうでした.例えば:
- カスタムシェーダーが使えない(付属の数種類のみ)
- テクスチャはすべてGPU側でon memoryでなければならない
- no motion blur
あと,要求されるレベルのグラフィクスカードがあればサーバなしでも動くそうですが,$2000クラスの物が必要なんだとか.作業マシン全部に入れるには厳しい値段だし,それなら同じ金額でマシンをもう一台買いたいところです.
まあ,mental imagesが管理しているmentalrayライセンスの中で,entertainment業界が占める割合はかなり低いようですから,irayが即戦力になる市場もそれなりにあるんだと思います.建築業界なんかモロですよね.
GPUレンダラ関連は,まだうちらには早いかなー.
Posted by ますお on Sep 16, 2009 – 6:09 pm
CinemaDNGは,デジカメで使われるDNGフォーマットの動画版です.
アドビ、高画質RAWビデオ規格「CinemaDNG」のベータ版を公開 – builder by ZDNet Japan
これからデジタルにシフトして行くであろう映画産業においても,こういった規格の統一はなされた方がいいとは思いますが,Adobeって実はハイエンドだと出番少ないんですよね.最後の編集をPremiereでやった,ってのはあまり聞かないですし.
静止画向けのDNG形式も一般に普及しているとは言い難いし,これもどうかなあ.支持している企業のリストにSony,Panasonic,RED,Thomson等がありませんしねえ.ただ,今のデジカメ業界のように,新しい機種が出る度に個別対応しなければならないのは馬鹿げてると思うので,早いうちに統一されて欲しい.
AvidとかAutodeskも参加してくれば,もう少し動きが大きくなりそうです.