- 2007/12/26 22:02
- Maya
前にMasterClassで、mia_materialでのAO計算に関してのレクチャーを受けてから、
なんとなーく、普通にAOパスを取る事に抵抗がありました。
ホントにこれでいいのか・・・?と。
普通にAOパスを取る、というのは、乱暴に言ってしまえば、
ライトの位置などを加味せずに、シーン全体に同じマテリアルを割り当てて
AOパスを取る、ということを指します。
これだと確かにAOの効きがすごく良くわかるし、ディテールも細かくなって見た目にも美しい感じ。
でも実際には、光が大量に入り込んでくる場所でも遮蔽が起こって暗くなる、なんてことはありえないわけです。
上記のようにAOパスをレンダリングし、合成ソフトで乗算、とかやっちゃうと、
本来明るくなるはずの場所でも暗い場所が残ってしまうわけです。
オブジェクトと地面の接地際がいつも黒いとは限らない!と僕は思うのです。
そんな感じで、これって違うんじゃない?と思っている矢先、Masterclassでmia_materialのことを知り、
これは!!と思って試してみたのですが、mia_materialを使用するとサーフェスの明るさを加味した状態での
aoの結果のみを取得することは難しい、ということが判明。
つまり、diffuseパスも一緒になったような画像がレンダリングされてしまうのです。
diffuse+aoを一緒に取ってしまう、ということであれば問題はないんですが、
合成の作業的には分けてあったほうが便利、ということも多々あるわけで。
で、ちょっと考えてシェーダを組んでみました。
結果は以下のイメージみたいな感じになります。
上のイメージの逆側からレンダリングしたものがコレ。
ぱっと見ると、diffuseパスのようにも見えますが、そういうわけではないです。
0-1の間でAOの効きが調整されていて、
暗いところほどAOの効きがよく、明るいところほどAOは効かない、というようになっています。
これと同じ事を合成でやろうとするならば、shadowパスとdiffuseパスをあーだこーだと
やってやらないといけなさそうで、うーん良くわからん、と思い、
Hypershade内でネットワーク組むことにしました。
ネットワークも非常に簡単です。
一応スクリーンショット載せときます。
簡単な説明をすると、白lambertで取得した色(=明るさ)を元に、
白とAOの色をrampでblendしている、という感じです。
rampは1.0に白、0にAOの色、という風に設定されています。
luminanceやclampは、ライトを白以外にしたり、シェーディングポイントの明るさが
1.0を超えないようになっていればいらないノードなのですが、
いちいち意識するのも面倒なので、入れときました。
ちなみに、僕は本来あまりluminanceノードを使いません。
ライトの色を全部白にしとけば、luminanceノードを通さないでoutColorRを取得すればOKなので。
と、こうすることで、明るいところは白が出力され、暗いところはAOの計算結果が出力されます。
それはつまり、明るいところでは遮蔽はおこらず、ライトが当たったところは明るくなる、ということです。
rampを使ってブレンドしている理由は、明るさと効き具合いを作業者がコントロール出来るように、です。
blendノード使っても良いんですが、それだと強制的に値を決められてしまうわけです。
というところから、より自由度の高いrampを選びました。ということです。
・・・えーと、こんな感じの説明でOK?
なんかもっと上手い説明方法はないだろうか、、と思うのですが、文章だけじゃ限界かな、、、
おお!これは!と思った方は是非試してみてください。
・・・?何コレ?どういう意味?と思った方はコメントなどで質問してくださって結構です。
もっと良い方法知ってる方は是非それを教えていただきたいので、併せて宜しくお願いします。
てか、mia_materialああいう仕様になっているというのは
diffuseとaoを別で分ける必要なんかねーよ、ってことなんだろうか、とか、
実際lightの値を加味してやる必要があるのだろうか、とか、
いらん勘繰りをしてしまいます。
まぁ、作ったもんは作ったもんで、知識として蓄えておきます。
そしてこれを実戦投入するかどうかは謎www
- Newer: mental mill
- Older: 最近
Comments:2
- kashima 2007/12/27
はじめまして
同様のことを考えてAOは敬遠していたんですが、
この手法だと納得のいくものが出来そうです。
非常に参考になりました。- tai 2007/12/27
>kashimaさん
はじめまして。コメントありがとうございます。
お役に立てたようで何よりです!僕も、実はこれを作るぞ!と思って作ったのではなくて、ぼんやり考えてたのを、別のシェーダ作るときに試したら上手くいったので、取り出して形にしてみた、という感じです。
是非是非使ってやってください!
Trackbacks:0
- Trackback URL for this entry
- http://blog.taikomatsu.com/2007/12/26/maya-ao%e3%81%a8%e3%81%8b%ef%be%93%ef%bd%ba%ef%be%9e%ef%be%93%ef%bd%ba%ef%be%9e%e3%80%81%e3%80%81%e3%80%81/trackback/
- Listed below are links to weblogs that reference
- [ maya ] aoとかモゴモゴ、、、 from memlog