LoginSignup
15
8

More than 5 years have passed since last update.

【Shader Forge】DiffuseとEmissionについて

Posted at

Shader ForgeというよりShader全般のお話ですが、
DiffuseとEmissionが何なのか分かっていなかったので軽く調べてみました。

スクリーンショット 2016-03-20 13.21.14.png

Diffuseについて

英単語として検索した結果、weblioさんの記事によると、

Diffuse
放散する、広める、普及させる、(あたりに)まき散らす、満ちわたらせる、拡散させる

という意味らしいです。

ようは光(ライティング)の影響をめっちゃ受けますよ。ということなのかな。

引用
モデルが本来持っている色味を表すのがディフューズ(拡散反射光)です。
この色は入力されてきた光の角度によってその強度が変わる性質を持っています。
ある点に対して光がど真正面(0度)で入ってきた場合は最大の跳ね返りを見せるので「ディフューズ色×入力された光の色」でその点が表現されます。
しかし角度が変わると跳ね返る光の量が減ってしまうため暗く見えるようになります。一般にそれを加味した計算式は次のようになります:

 Color += ( Diffuse * Input_Color ) * dot( Normal, -Input_Vector) * Diffuse_Factor

dotとは「内積」です。上では法線と入力光の逆方向の内積を取っています。DiffuseとInput_Colorの掛け算で色味が決まり、内積の部分でその強度が決まっているわけです。Diffse Factorは強度を微調整します。

なるほど、外部の光と元々持っていた自分の色によって最終的にカメラから見える自分の色を算出してくれるのね。
だからこそライトの向きが変わると暗明が変わって影ができるのね。

3月 20, 2016 13:42.gif
(Directional Lightの角度を回転させてます)

Emissionについて

Emissionは

(光・熱・香気などの)放射、発射、放射物、(煙突・車のエンジンなどからの)排気、排出、排出物(質)、射精

という意味らしいです。

引用
エミッシブ(放射光)はモデル自身が放つ光を表します。
太陽や電球などは自分で光っているため真っ暗闇でも明るく見えます。
この光は問答無用の光です。世界が真っ暗でもモデルは光るので、ある点の色は単にエミッシブの色そのものとなります:

 Color += Emmisive

Diffuseとは真逆の性質ですね。
外部の光に関わらず、自身の色をカメラに映すことができると。
その代わり影ができないし、のっぺりした表現になる。
3月 20, 2016 14:19.gif
影がないから凹凸も表現できないのか。
2D向けなのかな・・・?
下地の色を表現することに使えそう。

DiffuseとEmissionを合わせてみた

3月-20,-2016-14-23-compressor.gif

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

15
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
8