- 締切済み
影の様子の計算方法
光源、遮蔽物、スクリーンがあって、それぞれの位置関係や大きさによって、影のエッジの部分がはっきりしたり、ぼやけたりしますが、この様子をシミュレーションしたいと思います。簡単な計算法を教えてください。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- stomachman
- ベストアンサー率57% (1014/1775)
光源が点であれば、影の縁はシャープです。(厳密に言うと光の回折という現象があって、点光源でも縁が僅かにぼやけるんです(光が波であるために生じます)けど、ま、これはおいといて) 光源に広がりがある。光源の中に明るい場所とさほど明るくない場所がある。そのような時に影がぼやけます。 これをどうやってシミュレートするか。 スクリーン上のある一つの点に、どれだけの光が当たるかを計算すればよい。これを各点について計算すれば、影がどうなるかが分かりますね。 そこで、スクリーン上のその点に目を置いたら光源がどう見えるかを考えます。 光源が全部見える時は、これは一番明るい訳です。その点は影の外。 光源が全然見えない時は、一番暗い。その点は影(本影)の中。 光源の一部が見えて、一部が遮蔽物に隠される時。その点は半影の中にあります。光源のうち、見えている部分からの光だけがその点に当たっている。 広がりがある光源を沢山の点光源の集まりであると考えてみましょう。点光源に番号を付け、その明るさをp[1], p[2], ....., p[N]とする。で、スクリーン上のある点Xから見えているのがQ={1,3,10,23,....}番の点光源だとすれば、Xには Σ{k∈Q} p[k] = p[1]+p[3]+p[10]+p[23]+..... だけの光が当たっている。 そういう計算をすれば良いのです。 条件が付けば、要領の良い計算法も作れます。たとえば(太陽のように)光源が円盤状(半径R)で、明るさが半径rだけによって決まり、p[r]である。という場合、そして遮蔽物の縁が直線状であるとしましょう。 全部見えている点での明るさは、∫rp[r] dr (r=0~Rの積分) ですけど、これを 2∫∫p[√(x^2+y^2)] dydx (ただし∫dyはy=0~√(R^2-x^2)、∫dxはx=-R~Rの積分) と表すこともできる。こうしておくと であり、円盤の縁から中心に向かってhだけ遮蔽物が隠しているという点での明るさは、 2∫∫p[√(x^2+y^2)] dydx (ただし∫dyはy=0~√(R^2-x^2)、∫dxはx=-R~(R-h)の積分) と計算できます。 一般的な数式で表すなら、遮蔽物の透過性をμ(x,y)、光源の明るさの分布をp(x,y)とするとき、影は μ*p ここに*は2次元の畳み込み積分(convolution)です。
お礼
私がちゃんと理解するのには時間がかかりそうですけど、ありがとうございました。