[Maya] mental rayでHDRなパーティクルモーションブラーをレンダリング

表題通りですが。

mental rayを使ってポイントタイプのパーティクルをモーションブラー付きでレンダリングしてみました。
この上ないぐらいの簡単なシーンでのテストなので面白くないかもしれませんが一応メモ。


パーティクルのrgbPPにはrand(30.0)が入っているので、
HDRIなパーティクルになっているはずです。

であればモーションブラーをかけた際に、ボケずに強い線が残ってくれるはずです。
これで火花も花火も魔法っぽい光エフェクトなんかも、なんのそので嬉しいはずです、多分。

とりあえずmental rayでレンダリング。プリセットからProduction: Rapid Motionを選択して、レンダリングしてみました。

が、出ません。
HDRIっぽいモーションブラーになりません。
パーティクルのRGBには間違いなくHDRな値が入っています。

もしやと思ってRender GlobalsのFramebufferのData Typeを変更してみました。
結果は以下の通り。

hdrPtr_mblur

8bitのまま出力しようとしてたらダメみたいでした。
なぜ。LDRにクランプされた後にモーションブラー処理がされるんでしょうか?
うーん、詳しくはわかりませんが、Half(16bit Float)にしてやればおkみたいでした。
mental rayの仕組みを調べるのはまた今度ということにします。

一応画像タイプを8bitのもの、つまりexrじゃなくてtiffとかにしてレンダリングしてみたのですが、画像が壊れたりしていなかったので、exrで出力しなくても使えるようです。

また、Rasterizerで出力した際、パーティクルのエッジがボッツボツになっていました。要はアンチが足りていないような状態。
これは、Render Globalsの中のRasterizerのところで、Visibility Samplesを上げてやればOKなようでした。

こんな感じ↓
rasterizer_quality

多分大量のパーティクルをレンダリングするとかになってくるとmental rayではかなり厳しいものがあると思いますが、少量ならまぁ現実的な速度でかなり良い感じにレンダリングしてくれます。
雨とか雪とかもいけるかもしれません。
是非お試しあれ。
 
 
ちょっと脱線しますが、HDRI、つまりはOpen EXRなんですが、こいつを普通にレンダリング&コンポジットに使えるようになると、パーティクルやらFluidやらを作る際は結構あれこれ便利になるなーと感じています。

たとえばパーティクルをレンダリングする時、RGBにそれぞれ異なった情報を入れて、コンポジットでバラして使うというのがあります。
Rは速度、Gは歳、Bは奥行き、など。

今までだと、どれも0-1の間に収めないといけない為あれこれ不便でした。
たとえば速度をどこかのチャンネルにいれてレンダリングする場合、最大の速度はは多分100ぐらいだからそれで割り算した値を入れておこう、とか。僕はイチイチNumericで値確認してとかやらないので大概アバウトです。
でもHDRIだったらそのままの値突っ込んで、それこそコンポジット時に好きな範囲で取り出せるようになります。
他にもFluidだったら、火を作ろうとして、Temperatureに1より大きな値を入れたりとかは良くやることだと思うのですが、それも結局0-1にクランプされます。
上手く行けば良いですが、失敗したら真っ黄色になってしまったりとか、ね。ありませんかねそういう経験。
HDRIならそのままの値でレンダリングして、あとはコンポでいじるということが可能になります。もちろんある程度の調整は必要なので、人によっては3Dで全部やっちゃう方が楽だ、なんて人もいるかもしれませんけども。

0-1の制限がなくなることで一番嬉しいのはもしかしたらエフェクトかもしれないなー、と思ったのでここしばらくOpenEXRのことを調べたりしているのでした。

 
OpenEXR普及の足かせ(失礼)After Effects、近々NABでCS5が発表されるようですが、さてどういう手を打ってくるか。既報の64bit化以外にまだ何も情報出てないですもんね、気になります。

コメントを残す

メールアドレスが公開されることはありません。