Krakatoa MX Tips
2013年7月06日
1、特定の情報をKrakatoaで書き出す方法
Velocity(または速度、ベクター)チャンネル レンダリング方法
1. レンダリング設定のRender Elementsタブのレンダリング要素で、「追加…」ボタンを押します。
2. レンダリング要素ダイアログボックスから「Krakatoa Velocity」を選択してOKボタンを押します。
Depth、Emission、Normalなども、このRender Elementsから選んで書き出すことができます。
3. レンダリング設定の共通タブでレンダリング結果出力先の指定と出力ファイル形式(8bitでない形式)の指定を行い、レンダリングを実行します。
RGBAの画像とVelocityの画像が出力されます。
2、パーティクルからジオメトリに影を投影する
参考ページ
「Krakatoaシャドウジェネレータ – ジオメトリにシャドウを投影する」 (日本語)
「Krakatoa Shadows Generator – Casting Shadows On Geometry」 (英語)
レンダリング方法
Krakatoaに対応しているライトから設定を行い、出力パスを設定してレンダリングすることでパーティクルのシャドウパスを取得します。
このシャドウパスはScanlineでレンダリングできます。
レンダリングまでの方法を簡単にご説明します。
1. 影を落とす側のパーティクルを作成します。テストではボックスからボリュームパーティクルを作成し、使用しました。
2. 影が当たる側のジオメトリを作成します。テストでは平面を二つ作成しました。
3. ライトをシーンに追加します。標準のスポットライトなど、Krakatoaに対応しているライトを作成します。パーティクルとジオメトリにライトが当たるように位置と向きを調整します。
この時点でのテストシーンは下の画像のようになります。
シャドウをオンにして、シャドウのタイプをKrakatoa Shadowsにします。
4. ライトの修正タブの下部にKrakatoa Shadowsロールアウトが現れます。
Save Pathで保存するディレクトリと名前を設定します。
5. Krakatoa GUIを開き、Main ControlsパネルShadow Data Savingで「>Save
Attenuation Maps」ボタンを押して、有効にします。
6. パーティクルをKrakatoaでレンダリングします。このとき一緒にシャドウのパスもレンダリングされます。
7. Lightの修正タブ内、Load Pathで、シャドウをレンダリングしたファイルを指定します。
8. Scanline レンダラに切り替え、レンダリングします。
これで、パーティクルの影が投影されたジオメトリがレンダリングできます。
影の調整はライトのKrakatoa Shadowsロールアウト内、Resolution、Sample Count、Exponential Spacingで調整します。
Krakatoaでレンダリングしたパーティクルの画像と、Scanlineでレンダリングしたジオメトリと影の画像を重ねると下記のような結果になります。
3、寿命(Age)を視覚化してレンダリングする
参考ページ
「Controlling Particle Density and Color By Age Using MagmaFlow」 (英語)
レンダリング方法
このチャンネルは、Krakatoa Modifierを使用してageの情報をColorに出力し、そのパーティクルをレンダリングすることで書き出すことが出来ます。
参考ページにはAgeのチャンネルをColorに出力する方法や、Ageの情報を元にパーティクルにグラデーションをかける方法などが記述されています。
以下にAgeのチャンネルをColorに出力するところまで簡単にご説明します。
1. パーティクルフローのDeleteオペレータなどでAgeを設定したパーティクルを作成します。
2. Krakatoa GUIの「Save Particles To File Sequence」でパーティクルを保存します。
このとき、Channelsロールアウトで下記の5つのチャンネルを保存するチャンネルに指定します。
「Position」「Velocity(optional)」「ID(optional)」「Age」「LifeSpan」
3. 保存したパーティクルをPRT Loaderで読み込みます。
ビューポート上で表示の調整を行います。
4. Magma ModifierをPRT Loaderに追加し、Magma Modifier editorを開きます。
5. Ctrl+Oを押してOutputを作成し、Densityチャンネルに設定します。
Outputの選択を解除します。
6. Shift+Aを押してAgeチャンネルのInputを作成します。
7. (Convertから)To Floatを作成します。6 のInputChannelにつなぎます。
8. Shift+Lを押してLifeSpanチャンネルのInputChannelを作成します。
9. (Convertから)To Floatを作成して、LifeSpanのInputChannelにつなぎます。
10. Divideを作成してDividendにAgeがつながっているToFloatを、DivisorにLifeSpanがつながっているToFloatをつなぎます。
11. DensityチャンネルのOutputにDivideをつなぎます。
12. Ctrl+Oを押してOutputをもうひとつ作成し、Colorを設定します。
13. ToVectorを作成し、DivideをXYZすべてにつなぎます。
14. ToVectorをColorのOutputにつなぎます。
手順5.から手順14.までのKrakatoa MagmaFlowの画像です。
これでビューポートにAgeの情報が表示されるようになります。
補足:EXR形式での出力について
OpenEXRは、ILMによって開発されたコンピュータ画像ソフトで使用されるハイダイナミックレンジ(HDR) の画像ファイル形式です。
OpenEXRでは、RGBAチャンネルとそれ以外の複数のチャンネルをひとつのファイルとして格納することができます。
Krakatoa MXは、この形式を出力ファイル形式として選ぶことができます。
しかし、機能が制限されていて、出力したEXR画像は1枚にまとまらず、チャンネル毎に出力されます。
たとえばKrakatoa MXを使用してRGBAとデプス、ベロシティをEXR形式で出力すると、RGBA.exr、Depth.exr、Velocity.exrの3枚で出力されます。
参考フォーラムページ
「Combining Render Elements into one exr file」(英語)
以下は、参考Thinkboxフォーラムに投稿された記事
2013年2月5日(火) ユーザーからの投稿:
Krakatoaバージョン2.1.6.49730を3ds Max 2013 (最新のProduct Update 6を適用)で使用しています。
レンダリング要素を1つの.exrファイルの複数のチャンネルに入れる際に問題が発生しています。
Render Elementsオプションに複数の要素をセットアップしていますが、その状態でOpenEXR設定ダイアログのレンダリング要素の追加ボタンを使用しようとすると、要素がリストアップされません。これは既知の問題でしょうか。
———-
Thinkbox社Bobo氏の回答:
はい、これは既知の制限です。
Krakatoa Mayaは、1つのEXRにすべてのパスに保存が可能です。そのため、私たちはこれについてKrakatoa MXへの対応を考慮することになるでしょう。
しかしながら、OpenEXR I/Oプラグインは、ほとんどがサードパーティ製(初期はSplutterFish社、現在はCebas社)からオートデスクに提供されており、また、私は、レンダリング要素をOpenEXR と正常に動作させるために、Max SDKにてどのくらいの工程が必要なのかが分からないため、これは一筋縄ではいかない可能性があります。
(Thinkbox Software Inc. / Product Specialist / Borislav “Bobo” Petrov)
現時点(2013年7月)の最新版 2.1.8.50654でも、この問題は解消していません。