日々適当

hibitekitou

セミナーの復習 6

xsi |2010-09-25
イラディアンスパーティクルの話もちょろっとありました。といいますか、この辺ですでに時間がオーバーしつつあって、駆け足になっていたといいますか。
イラディアンス(放射照度)パーティクルはグローバルイルミネーション・ファイナルギャザリングとは排他的に利用可能な設定です。コースティスクは併用できます。



Photon GlobalからIrradiance Particlesを選択すると、Irradiance Particlesタブの中身を有効にできます。



駆け足だったので、詳しくはやっておりませんが、ここのEnviromentにチェックを入れて、PassのPass ShaderのEnviromentで環境マップを設定し、そのマップがhdrな物だと、シーンにライトがなくてもそれを光源として利用できる、という例を見せてもらいました。



上図はhdrの画像を環境マップに使用し、左側がIrradiance Particleをオンにした場合、右がオフの場合です。シーンのライトはオフってあります。

と言うような話のあと、スライドにはAOとかいう要素が見えましたがサクサクと飛ばされ、最後にアンチエイリアシングに少し触れて、セミナーはお終いとなりました。

あんまりGI系を使っていない私としてはとてもありがたいセミナーだったなと思います。有料の同内容のセミナーがもし開かれたなら、より有効な内容を期待できそうでしょうかね。
コメント ( 0 )|Trackback ( )

セミナーの復習 5

xsi |2010-09-25
そんでファイナルギャザリングのお話になりました。
ファイナルギャザリング。モンテカルロレイトレーシングの一種。詳しくは(以下略)
ファイナルギャザリングの設定のAccuracyって部分をいじることになります。



Modeがいくつかあり、それにより設定内容が変わってきます。このうちLegacyとExoertは旧バージョンとの互換性のために残された設定とのこと。Exactについては触れられず、MultiframeとAutomaticについての説明が行われました。

といっても、AutomaticはMultiframeからMax Radiusという設定を省いたものと言うことで、Multiframeを使っての説明に終始したように思います。

Multiframeモード時の設定項目は主なものがNumber of RaysとPointsです。Pointsはサンプルポイントの密度を表し、Number of Raysはサンプルポイントから飛んでいくレイの数を表します。



DiagnosticsのView Final Gather Pointsをオンにすることで、FGのサンプルポイントを緑色の点で確認できるようになります。



そいで、より細かいセッティングを行う、Advanced Optionsというチェックボックスがありまして、それをオンにすると設定できる項目が増えます。



このうち、Trace DepthのDiffuseの値を増やす事を推奨されていました。FGのレイがディフューズ面で複数回反射するようになります。マニュアルによると明るさが増す結果となるようです。

Presample Densityの値を増やすことでサンプルポイントの数を増やすことができます(乗数みたいです)。


コメント ( 0 )|Trackback ( )

セミナーの復習 4

xsi |2010-09-25
引き続き、コースティクスのお話。
コースティクスの効果は屈折を経てディフューズ面で行われており、そのため、大きなシーンでコースティクスの計算を行うと非常に無駄が多くなる(屈折を行うオブジェクトが一部にしかない場合)。ということで、そのような場合はコースティクス専用ライトを用意して、コースティクスが必要なオブジェクトにのみ向けてやるみたいな工夫はいかが的なお話がありました。

コースティスクはグローバルイルミネーションとフォトンマップを共有します。
そのため、先ほどRebuild Mapをオフにしましたが、再びオンにしておきます。
また、ライトのフォトンの設定部分でのEnergyのカラーとIntensityもグローバルイルミネーションと共有しています。Number of emitted photonsの値だけ個別に設定してやることになるわけですな。



レンダラの設定側でもコースティスクをオンにしてやる必要があります。



パラメータの意味はグローバルイルミネーションとにたような考え方でよいようです。ただ、Sharpness Filterの意味は出てきませんでした。まぁ読んで字のごとしな意味なのでしょうが。

また、オブジェクトに対してコースティスクの影響を受けるような設定もしてやらないと行けません。グローバルイルミネーションについてはデフォルトですべてのオブジェクトでオンになっているのですけど、コースティスクはオフになっているからです。



ということで、全オブジェクトにその設定をしてあります。

そんなわけででき上がったのが以下。
どうやって詰めていくべきなのかよくわかりませんが…。


コメント ( 0 )|Trackback ( )

セミナーの復習 3

xsi |2010-09-25
具体的なレンダリングの話に入っていきます。
本当に基本的なレンダリングのセッティングの話ですね。

レイトレーシングについての話が行われ、ローカルイルミネーションに属する部分の計算を行うためのシーンの設定をしていました。ライトの減衰の値を触っただけのような気がするけど、どうだったかな。この辺、知っている内容ではあったので、特にメモをしてなかったんです。



そいでグローバルイルミネーションの話に入りました。
フォトンマッピングについてです。

まず、光源からフォトンをランダムに飛ばします。これが物体表面に衝突した時の向きと強さを記録していきでき上がるのがフォトンマッピング。
フォトンの記録されていく状態を見て行くために以下の設定をしています。

まずはレンダラの設定。



GI Accurayを1にPhoton Search Radiusを0にします。ちなみにSearch Radiusを0に設定するということは、値を自動にするという意味だそうです(シーンの大きさをみて自動で値を決める)。



Rebuild Mapにチェックが入っていることを確認します。必要ならキャッシュファイルが書き出される場所や名前を指定します。



レンダリングの情報を得るために、進行状況や情報がログされるようにします。

このシーンにはスポットライトが1灯設定されています。そいつの設定はとりあえず以下の通り。



PhotonのGlobal Illuminationをオンにして、EnergyとNumber of emitted photonsを設定します。このEnergyのIntensityはフォトン全体の明るさを示し、Number of emitted photonsというのは、フォトンマップに記録されるフォトンの数だそうです。特に後者は勘違いしがちなので注意なのです。

また、Number of emitted photonsの特性上、光源に対して開いているシーンの場合、たとえば室外なんかだと空が大きく開いている事が多いでしょう、何にもあたらずにフォトンマップに記録されないフォトンの数が多くなってしまい、フォトンマップの生成に時間がかかってしまうので注意が必要とのことです。

グローバルイルミネーションの効果を確認するために、ローカルイルミネーションの要素をオフにしてやります。



上記設定で、とりあえず一回レンダリングします。


ログをみると

# INFO : RCGI 0.4 info : light #0 (Spot[o]), globillum emission, emitted: 27, stored: 102

と書かれております。このシーン。完全に閉じた空間なので、フォトンが全く無駄にならずにフォトンマップに記録されています。ちなみに、Photon Search Radiusを0にしていることで、レンダリング時、自動的に値を以下のように設定していることも見て取れます。

# INFO : RC 0.4 info : option: globil. radius 0.829414

それにしても記録されるフォトンの数が少なすぎます。

と言うことでNumber of emitted photonsの数を一気にあげてやります。10000へ。ついでに明るすぎると思ったので、EnergyのIntensityの値を下げました。



まだ密度が足りない感じ?
70000まで増やしました。



とりあえず、よしとします。ってことで、フォトンマップはこれで完成という事にして、Rebuild Mapをオフにしてやります。

続いて視点からレイを飛ばし、フォトンマップの情報を読み取り、各点の光の調整をするプロセスに入ります。具体的には、GI AccurayとPhoton Search Radiusに値を入れていくことになります。

GI Accurayを100とPhoton Search Radiusを1に設定した結果が下。もわっとしてます。



これをもわっとしないようないい感じに設定していくわけですけど、GI AccurayとPhoton Search Radiusの意味を知らなければどうしようもないわけで。
Photon Search Radiusで指定された半径の中にあるフォトンマップに記録されたフォトンをGI Accurayで指定された数だけ集めて平均化しているのかな。そんな解釈みたいです。
だから一定の半径の中にあるフォトンの数には限界があるので、ある値以上にGI Accurayを設定しても意味がないと言うことになりますね。
設定としてはそんな上限を目指していく感じでしょうか。この辺は非常に微妙な差での判断になりそうなので難しそうです。



とりあえず半径1の状態で行ったところ、Accuray値は300と400ではガラス部分にちょっと変化が大きいかなって感じが見受けられたけど、400と500ではそこまで大きな差がみられなかったということもあり、450ぐらいに優柔不断に決定…したいところですけど、個人的にはもうちょっとモワッと感なくしたいかな、と思ったり。
そこで半径を1.5まで増やしてみました。



とりあえず、これでいいやと思い込むことにします。

なお、このモワッと感の解消のために、半径を広げるという方法とフォトンマップに記録されるフォトンの数を増やすという二つのアプローチがあるようですね。後者の場合、フォトンマップを作り直すことになるので手間が増えます。

以上の設定が終わったら、ローカルイルミネーション部分を復活させてとりあえず完成、という事にしましょう。



質感全然つめてないからあれだけどね(^^;
なお、セミナーではライトの色を昼間の自然光的に黄色っぽくし、GI Photon Colorを環境光っぽく青っぽく設定していました。

続いてコースティクスとファイナルギャザリングになっていくわけですけど、それはこっちで行きます。まぁ、まだ適当だけど。

コメント ( 0 )|Trackback ( )

セミナーの復習 2

xsi |2010-09-25
引き続き、復習していきます。

続いて、光の挙動の話になりました。光の総量とか光度とか輝度とか照度とか、そんな事が図で示され、でもって、大切な考え方として"irradiance"と"radiance"という言葉が出てきました。まぁ簡単に、ある点(単位面積)に流れ込むエネルギとそこから出ていくエネルギってことで。詳しくはいろんな書籍・ウェブ参照。

その後、ローカルイルミネーション(ダイレクトイルミネーション)、グローバルイルミネーションという単語が出てきます。光源から光が直接あたったり屈折の後にあたったりした光の挙動を表現したもんで、後者は反射により表現された光の挙動、みたいな。詳しくはいろんな書籍・ウェブ参照。

でもってその反射の特性を記述した関数として、BRDFという考え方が示されます。双方向反射率分布関数。
ある方向から光が入射したとき、それぞれの方向へ,どれだけの光が反射されるかを表す、反射地点に固有の関数。
ソースはウィキペディア。まぁ、その反射点の反射の特性を示しているということで、素材感が決まる重要な要素ですね。詳しくはいろんな書籍・ウェブ参照。

反射は材質と光の入射に対する物体表面の向きで決まり、それを表す要素としてスペキュラとディフューズがありやす。反射を表現する条件としてエネルギー保存則とBRDFにおいて入射と反射の値は、その向きを入れ替えても変わらないという事を頭に入れておきましょう。吸収される分はどう考慮されるんだろ

ちなみにBRDFをより正確に再現したモデルとしてアーキテクチュアルマテリアルが存在しているそうです。セミナーでは表面の粗さのパラメータである Illumination:Diffuse:Roughnessと視野角に依存する反射の特性であるTransparency / Reflection:View Angle Dependent (BRDF) について触れられました。



後者についてはフレネル反射について触れつつのお話しでしたね。
SIにはプリセットが見当たらんが、maxやmayaにはあるんだけど、SIもさがしたらあるかもしれませんねって話をしていたけど、MIA presets toolbar[XSI Base Forum] のあたりのことかな。

でもってようやく、実際のレンダリングのお話に突入しております。
コメント ( 0 )|Trackback ( )

セミナーの復習 1

xsi |2010-09-25
復習してます。
いや、行ったセミナーが結構ためになったような気がするので…。

mental rayによるレンダリングのセミナーに行ってきました。無料セミナーだけに本当に基本的な所をおさえるという内容だったはずです。

まずはカラーマネージメントについての話がありました。
ディスプレイのキャリブレーションの話を経て、いわゆるリニアワークフローと呼ばれる物を具体的にSoftimage上でどう実現させるかという流れですね。とか言いつつ、僕自身リニアワークフローと言うものがよく分かっていません(^^;
おそらく、SI内部でやり取りされているデータは出力まで含めてガンマ曲線がリニアな情報で行われているので、出力されてくる絵の情報をちゃんと確認するためには、リニアな状態の絵を見ておかないとならないんだよ、って事じゃないかと思うのですがどうなんでしょ。

ということで、SI上での設定部分です。

SI上ではDisplay PreferencesからColor ManagementにてApply To...に含まれる選択肢からどの要素に対してカラーマネージメントを行うか決めてやります。Render Regions, Render Pass and Preview, Shader Balls, UI Widgetsに対して指定できるようになっておりますな。
同時にProfile Sourceも設定してやることが大事。多くのCG屋のモニタはガンマ2.2に設定されていることでしょうから、まぁ、そのようにしておくのが無難でしょうか。LUT fileがちゃんとあるなら、そっちを指定してやっても良いのでしょう。よく分からんけど。
その結果、どう見えるかというと、こんなふうになります。

カラーマネージメントをオンにすることで、落ち込んでいた部分が持ち上げられ、中間部分の輝度が上がっています。これが、リニアな状態の絵ってわけですね。
OpenEXRやHDRで画像を保存するとこの状態で保存されるために、最終出力ツール(コンポジットソフトとか)上で出力機器にあわせたガンマを指定してやり、最終的な絵作りを行う事になるそうです。

なお、当然ながらSIに持ち込むテクスチャ素材なんかは正しいプロファイル(作業環境に合わせたプロファイル)が適用された状態で編集された、あるいは正しいプロファイルが含まれた物である必要があるのは言うまでもありません。
コメント ( 0 )|Trackback ( )
  ・