No More Retake

3DCG屋さん向けTips&Referenceサイト

メニュー

Maya:『mia_material』系ノード 補足と蛇足』

 その1へ その2へ その3へ その4へ その5へ 補足へ

今回は、Mia_materialについての補足です。

Mia_materialの特徴の一つに、エネルギー保存の法則があります。
(ここではMentalrayについて述べますが、Vrayでも応用がきくと思います)
エネルギー保存とかいうと、難しく聞こえますがバッサリ切って捨てると、
受けた光(エネルギー)より強くは光らない”ということです。

式で書くと Diffuse(拡散) + Reflection(反射) + Refraction(透過・屈折) <=?1 (100%)

そもそもDiffuse=1(100%)、Reflection=1(100%)、Refraction=1(100%)とはどういう状態か。
全ての光を拡散反射し、全ての光を鏡面反射し、全ての光を透過・屈折させる、という感じでしょうか。
ちょっと絵が想像できませんね。
実際、Diffuse=1、Reflection=1、Refraction=1と設定した場合、レンダリング結果はどうなるのか?
どうやらmia_materialではうまい具合に、それぞれの値を調整して合計が1以下になるように調整してくれるようですが、どういう風に調整しているのか?
すべての要素が均等にスケールされるのか、それとも特定の要素が優先されるのか?

=図1=

この疑問に対し、マニュアル曰く

  1. 透明度は、拡散からエネルギーを取得します。たとえば、透明度が 100 の場合、拡散はゼロになります。
  2. 反射は拡散と透明度の両方からエネルギーを取得します。たとえば、反射が 100 の場合、拡散と透明度は両方ともゼロになります。

相変わらずよくわかりませんw
ひとまず上のをマニュアル1,2としておきます。

意訳すると
マニュアル1は、(Reflection事はひとまず置きにして)、DiffuseとRefractionだけ考えると、
DiffuseとRefractionの合計の値が1(100%)を超えたら、その分Diffuseが減るよ、ということです。まだちょっと分かりにくいのでグラフで。

= 左:図2 / 右:図3 =
mia_material_Graf2

 

 

図2の場合、Diffuse100%,Refraction40%で設定値の合計が100%を超えた分、出力結果でDiffuse値が減少してDiffuse60%,Refraction40%になっています。
同様に図3の設定値の場合、Diffuse値はすべてRefractionに喰われてしまい0%になってます。
この場合、Diffuse値をどう設定しようと出力結果には表れないことになります。
実際にMaya上でレンダリングして確認してみます。

最初、DiffuseWeight=1.0、カラーを赤に設定し、そこから徐々にRefraction(Transparency)の値を増やしていきます。(Reflectivityは常に0に設定)

Refractionの値が上がるに従って、Diffuseの赤が弱くなっているように見えませんか?
Refractionが1(100%)になった状態ではDiffuseのカラーをいくら変更しても結果には影響ありません。
マニュアル2は、上の要素のReflection(反射)が入ったものです。
またざっくり意訳すると、Reflection(反射)の方がDiffuse(拡散)、Refraction(屈折)より優先されますよ、ということ。グラフにすると。

=図4=
mia_material_Graf3

 

Diffuse(拡散)もRefracion(屈折)もReflection(反射)もすべて100%で設定すると、Reflectionが優先され全反射の物体になります。
では、Reflection(反射)が100%以外の場合、どうなるのでしょう?
経験則ですが、たとえばRefraction(反射)が50%とすると、残りの50%に対してマニュアル1が適応されるのではと予測します。
Diffuse=100%, Refraction=60%, Reflection=50%の場合、まずReflectionが優先され50%の出力を確保し、残りの50に対してReflectionが60%、つまり30%の出力を確保、残った20%がDiffuseの取り分という感じです。
(ただ、マニュアルには明記されてないので確証はありませんが)
グラフにしてみました。

=図5=
mia_material_Graf5

 

 

確かめてみましょう。
先のSample Movie AにReflectionの要素を足して確認してみます。
ReflectionはBRDFを考慮せず、すべての角度で同じ反射率になるように設定してあります。

Sample Movie B=

なんかそれっぽいですかね。(あくまで予測の域ですが)
力関係をまとめるとこうなります。

Diffuse(拡散) < Refraction(屈折) < Reflection(反射)

ちなみに、これにReflectionカラーや、Refractionカラーが入ってくるとまた、少しややこしくなってきますが、mentalrayでは明度に対してエネルギー保存が適応されているようです。
(すみません、これも経験則です。ちなみに、Vrayにはエネルギー保存を明度のみで行うか、RGB成分も含めて行うか選択できたりもしますね。難しいっぽい感じに書くと、各RBG成分に対してもエネルギー保存の法則が適応されるのか?例えば、Reflectionカラーを赤に設定した場合、DiffuseやRefractionから赤の成分が減少したりするのかどうか?)
さて、今回はエネルギー保存の法則に焦点をあててみました。

フォトリアルな質感を求められる場合など、このあたりの挙動を頭の片隅においておくと、求める結果に早くたどりつけるのではないでしょうか?

蛇足として、Miaマテリアルで受けたエネルギー以上に光らせたい場合はどうするのかというと、一つにAdditional_Colorを使う方法があります。
もう一つに、Diffuse Colorとかで色を選ぶヤツ(Color Chooser)のValueに1以上の値を入れる方法もあります。どちらもサクッと超えます。

Mayaは2013の英語版を使用しています。
最新のバージョンとは異なる可能性がありますのであしからず。

以上、今回はここまで。
間違い勘違い等ありましたらどしどしご指摘を!

決して分かりやすい解説ではなかったように思うので、
参考にさせていただいたサイトのリンクを以下にのせました。
ここより分かりやすいかも。

参考サイト
http://eijikitada.blogspot.jp/2010/09/cgshader-type.html
http://www.slideshare.net/SIGTART/ss-6903030
http://gs.inside-games.jp/news/376/37690.html


その1へ その2へ その3へ その4へ その5へ

関連記事

コメントをお待ちしております

このサイトについて

3DCG Tipsサイト。Houdiniの記事が多めです。

RSS

follow us in feedly

Archives

  • 2024 (4)
  • 2023 (2)
  • 2022 (9)
  • 2021 (14)
  • 2020 (46)
  • 2019 (17)
  • 2018 (33)
  • 2017 (29)
  • 2016 (36)
  • 2015 (64)
  • 2014 (54)
  • 2013 (60)
  • 2012 (55)

スポンサードリンク

言語切り替え

  • English (United States)
  • 日本語

スポンサードリンク

言語切り替え

  • English (United States)
  • 日本語

Houdiniを使えるようになる本