Shader ForgeというよりShader全般のお話ですが、
DiffuseとEmissionが何なのか分かっていなかったので軽く調べてみました。
Diffuseについて
英単語として検索した結果、weblioさんの記事によると、
放散する、広める、普及させる、(あたりに)まき散らす、満ちわたらせる、拡散させる
という意味らしいです。
ようは光(ライティング)の影響をめっちゃ受けますよ。ということなのかな。
モデルが本来持っている色味を表すのがディフューズ(拡散反射光)です。
この色は入力されてきた光の角度によってその強度が変わる性質を持っています。
ある点に対して光がど真正面(0度)で入ってきた場合は最大の跳ね返りを見せるので「ディフューズ色×入力された光の色」でその点が表現されます。
しかし角度が変わると跳ね返る光の量が減ってしまうため暗く見えるようになります。一般にそれを加味した計算式は次のようになります:
Color += ( Diffuse * Input_Color ) * dot( Normal, -Input_Vector) * Diffuse_Factor
dotとは「内積」です。上では法線と入力光の逆方向の内積を取っています。DiffuseとInput_Colorの掛け算で色味が決まり、内積の部分でその強度が決まっているわけです。Diffse Factorは強度を微調整します。
なるほど、外部の光と元々持っていた自分の色によって最終的にカメラから見える自分の色を算出してくれるのね。
だからこそライトの向きが変わると暗明が変わって影ができるのね。
(Directional Lightの角度を回転させてます)
Emissionについて
Emissionは
(光・熱・香気などの)放射、発射、放射物、(煙突・車のエンジンなどからの)排気、排出、排出物(質)、射精
という意味らしいです。
エミッシブ(放射光)はモデル自身が放つ光を表します。
太陽や電球などは自分で光っているため真っ暗闇でも明るく見えます。
この光は問答無用の光です。世界が真っ暗でもモデルは光るので、ある点の色は単にエミッシブの色そのものとなります:
Color += Emmisive
Diffuseとは真逆の性質ですね。
外部の光に関わらず、自身の色をカメラに映すことができると。
その代わり影ができないし、のっぺりした表現になる。
影がないから凹凸も表現できないのか。
2D向けなのかな・・・?
下地の色を表現することに使えそう。
DiffuseとEmissionを合わせてみた
Diffuseだけだと光の弱い所(光があまり当たっていない所)は黒くなっていたけど、
Emissionで下地をつけたことで、光の弱い所はEmission色がでていた。
(Diffuse色とEmission色は同じにしています)
光が強いところは白っぽくなっていた。
これは、Duffuse色のRBGとEmission色のRBGが加算されて、RBG(255,255,255)の白色に近づいたからだと思います。
参考/引用させていただいた素晴らしい記事
http://www.geocities.jp/neo_ku_ron/HP_NEW/GameProgram/LightCharacter/LightCharacter.html
http://marupeke296.com/FBX_No7_TextureMaterial.html
http://ejje.weblio.jp/content/diffuse