Retake3DCG屋さん向けTips&ReferenceサイトメニュートップページMayaMaya:『writeToColorBuffer』その3Maya:『writeToColorBuffer』その32012.09.23MayaMayamentalraymentalray_NodeNode0それでは前回に引き続き、『writeToColorBuffer』についてやっていきたいと思います。今回は、『writeToColorBuffer』のいろんなコネクション例をいくつか見ていきたいと思います。シーンは前回と一緒です。一つ目の例ではmia_material_x_passesからrawやらlevelやらいろいろ+αPass出してみます。mia_materialからこれだけのPassを書き出してみました。・AO_pass・Dif_level・Dif_raw・Indirect_Pass・Ref_level_Poas・Ref_raw_pass・Spe_level_pass・Spe_raw_pass・OtherColor_PassHyperShadeはこんな感じ。“writeToColorBuffer”がすべて並列な組み方で、よく見かけるタイプだと思います。Modeはすべて[Always]です。Through”に何もつながって無くても、mia_materialから出力した要素がPassに書き出されています。出力したPassはこんだけ↓。これらを駆使してコンポジットしていくわけですね。この組み方の場合、”writeToColorBuffer”ノードの数(出力するPassの数)を増やしていけばその分、レンダリング時間が増えます。以前作ったビビの場合、Beautyのみならレンダリング時間は1分くらいだけど、沢山Pass出したら4分くらいに増えてしまったしwですが、シンプルでわかりやすいコネクションであることは間違いありません。並列で組んだ場合、どの順番でPass出力されるかは指定することができないので、”WriteOperation”アトリビュートを変更する場合は注意が必要です。二つ目の例は、”writeToColorBuffer”を直列にどんどん繋げていく方法です。DaisyChainと呼ぶとか呼ばないとか。下のは、並列時と同じPassを直列に組み直したものです。この組み方の利点は、並列時と比べてレンダリングが早い事と、Passへの書き込み順を制御できる事でしょうか。EvaluationPassThroughは、前の「writeToColorBuffer」ノードのoutEvaluationPassThroughをコネクトする。これを繰り返して、どんどんwriteToColorBufferを繋げていきます。Inputのカラーには出力したいものを繋いでおく。ここではmia_materialからSpecularだのReflectionだのいろいろ繋いでます。絵が並列の時と違うぞ・・・どういうことだ。うーん、回避するにはどうすれば・・・。いや、そもそも直列時と並列時どっちの絵が正しいのだ?混乱に拍車がかかる。”EvaluationPassThrough”に入ってくる情報もレンダリング結果に影響するのだろうか?ごめんなさい(-人-)わかりません。わかった時点で更新します。!一つのPassに複数の”writeToColorBuffer”三つ目は、一つのPassに複数の”writeToColorBuffer”が出力したときの挙動について、書こうと思います。(実際はあまり使わない気もしますが)一つのPassに重ねて出力する場合は、”writeOperation”アトリビュートに注意します。ためしに、下のようなコネクトを作ってみました。Colorにはそれぞれ下のようにTextureを割り当てています。Passはすべて同じ一つのPassへの出力です。この場合、writeToColorBufferは1→3の順にPassに書き込みます。Operation]に設定した場合、↓のようなPassの結果が得られます。1につながったColorの結果のみが出力されました。Operation]なので無視されます。これに2の”writeOperation”アトリビュートを[Add]に変更すると。2にコネクトされたColorが加算されたのが分かります。”writeOperation”アトリビュートを[Multiply]に変更すると乗算になります。ここで3の”writeOperation”アトリビュートを[Overwrite]に変更すると、この結果が3にコネクトされたColorで上書きされます。[Overwrite]は正直使い道が分かりません。以上、自分でもかなり怪しいなと思うのですが、『writeToColorBuffer』ノードについては以上にしたいと思います間違い、勘違いありましたら、指摘していただけるとありがたいです。英語ですが、『writeToColorBuffer』の参考サイトを二つほど。ちなみに私は英語の理解度は、読むのも聞くのもぼんやりです。http://mayastation.typepad.com/maya-station/2010/02/writetocolorbuffer.htmlhttp://area.autodesk.com/blogs/cory/maya_2009_custom_frame_buffers_explained以下は余談。Mayaで用意されているPassと、それで足りない部分をWriteToColorBufferで補うというのが、作業的にも楽かなと思います。Tool化してしまうなら別でしょうが。いうかすべての要素をWriteToColorBufferで出力しようとすると、作業の手間が増えるのでTool化でもしないとやってられないと思います。ミスも増えますしねwWriteToColorBufferを使わずに済むならそれがいいのですが、標準のPassだと透明なのがうまく出なかったりとか思うようになってくれないことも多々あるので、WriteToColorBufferを使わずには済ませられないというのが実情かもしれません。Mayaは2012の英語版を使用しています。最新のバージョンとは異なる可能性がありますのであしからず。トラックバックコメントをお待ちしております返信をキャンセルする。Houdiniの記事が多めです。mono-labページ上部へ戻る。