2008-11-30
光の減衰とかとか
光の減衰を調べていました。
そうそうシェーダでよく
sampler ShadowMapSmp = sampler_state
{
Texture =;
MinFilter = Linear;
MagFilter = Linear;
MipFilter = Linear;
};
などしてやって
えふぇくと . ぱらめーた ["てくすちゃ"] . セtバリュー(てくすちゃ!);
で渡したりしてる人もいるかもしれませんが、
sampler DeviceTextures : register(s0);
と書いておいて、
GraphicsDevice.Textures[0]=てくすちゃ
としてやることもできます。
多分少し早いです。
本題の光の減衰について。
<ケプラーの逆2乗の法則>という偉そうな名前のものがあるそうな。
以下がそう
E=I/r^2
Eは出したい点の光の強さ(照度)
Iは光源の光の強さ(光度)
rは光源から点の距離
まんま使えそうですね。
ソースってほどのものにもならなそうなのでこれでおしまい。
同時に色がどう届くのか?についても調べました。
・紫は波長が短く夕焼けのように空気の層が厚くなると届かない。
・赤は逆に強い。
・色とはそもそも波長の吸収率の違いによって生まれた概念だ。
調べているとドンドン知らなかったことが分かってきてネット普及に感謝しました。
同時に距離による色の届く差を作ってやりリアルにしてみました。
結果的にはちょこっと計算いれるわりにそこまでガツン!と綺麗になるわけではないです・・・
MAPによってその波長を変える〜とかするとシーンによって表情が変えれるかもしれないのでもうすこし弄ってみようと思います。
ねよっと。
そうそうシェーダでよく
sampler ShadowMapSmp = sampler_state
{
Texture =
MinFilter = Linear;
MagFilter = Linear;
MipFilter = Linear;
};
などしてやって
えふぇくと . ぱらめーた ["てくすちゃ"] . セtバリュー(てくすちゃ!);
で渡したりしてる人もいるかもしれませんが、
sampler DeviceTextures : register(s0);
と書いておいて、
GraphicsDevice.Textures[0]=てくすちゃ
としてやることもできます。
多分少し早いです。
本題の光の減衰について。
<ケプラーの逆2乗の法則>という偉そうな名前のものがあるそうな。
以下がそう
E=I/r^2
Eは出したい点の光の強さ(照度)
Iは光源の光の強さ(光度)
rは光源から点の距離
まんま使えそうですね。
ソースってほどのものにもならなそうなのでこれでおしまい。
同時に色がどう届くのか?についても調べました。
・紫は波長が短く夕焼けのように空気の層が厚くなると届かない。
・赤は逆に強い。
・色とはそもそも波長の吸収率の違いによって生まれた概念だ。
調べているとドンドン知らなかったことが分かってきてネット普及に感謝しました。
同時に距離による色の届く差を作ってやりリアルにしてみました。
結果的にはちょこっと計算いれるわりにそこまでガツン!と綺麗になるわけではないです・・・
MAPによってその波長を変える〜とかするとシーンによって表情が変えれるかもしれないのでもうすこし弄ってみようと思います。
ねよっと。

