Last updated:
輻射による熱のやり取りを評価する場合,レイトレースすることで物体間のRadiative Coupling(または形態係数)を求めることが出来る.
このとき光線は,物体の表面上で面積に関して一様になるように発生点を指定して,そこからランベルトの余弦則に沿うように光線の方向を決めてやる必要がある.
今回は基本的な表面形状(長方形・三角形・円板・球面・円柱・円錐・放物面)について,0–1の範囲のランダム値からどうやって一様分布を発生させるかを考える.
長方形
一様分布を考えるとき、もっともシンプルなケースは長方形だろう。
Figure 1のような長方形上に点を一様分布させる場合は,2つのランダム値(q1,q2)を発生させて,以下のように計算すればよい.
平行四辺形の場合でも同様の方法が使える。
p=q1(p2−p1)+q2(p3−p1)
Figure 1: Point Distribution on a Rectangle.
三角形
三角形上に点を一様分布させる場合、長方形と同様にEq. (1)を用いて計算することができる。
ただし、指定した点が三角形の外にある場合を除外するために、2つのランダム値(q1,q2)の和が1以下である必要がある。
もし和が1を超えた場合は、その値を破棄し、有効な組み合わせが得られるまで新しいランダム値を生成する。
Figure 2: Point Distribution on a Triangle.
円柱側面
円柱側面上に点を一様分布させる場合は,高方向・周方向それぞれ一様に値をとればよい.
高さhと周方向のパラメタφは、ランダム値q1とq2を用いてそれぞれ以下のように計算できる。
h=hmax q1
φ=(φend−φstart) q2+φstart
Figure 3: Point Distribution on a Cylindrical Surface.
円板
部分円板上に点を一様にばらまく場合,ある点が半径方向の位置rの内側に入る確率q1は次のように表される.
q1=∫rinnerrouter∫θstartθendrdrdθ∫rinnerr∫θstartθendrdrdθ=router2−rinner2r2−rinner2
この式をrについて解くと、ランダム値q1に対して半径方向の位置rを対応させることができる。
r=q1(router2−rinner2)+rinner2
周方向については、ランダム値q2を用いて以下のように指定できる。
θ=q2(θend−θstart)+θstart
Figure 4: Point Distribution on a Disk.
球面
部分球面上に一様に点をばらまく場合,ある点が緯度方向についてθ以下である確率q1は次のように表される.
q1=∫θapexθbase∫φstartφendsinθdφdθ∫θapexθ∫φstartφendsinθdφdθ=[−cosθ]θapexθbase[−cosθ]θapexθ=cosθapex−cosθbasecosθapex−cosθwhereθbase=arccosrhbase, θapex=arccosrhapex
この式をθについて解くと、ランダム値q1に対して緯度方向のパラメタθを対応させることができる。
θ=arccos(cosθapex−q1(cosθapex−cosθbase))=arccos((1−q1)rhapex+q1rhbase)
経度方向については、ランダム値q2を用いて以下のように指定できる。
φ=q2(φend−φstart)+φstart
Figure 5: Point Distribution on a Spherical Surface.
円錐面
部分円錐面上に一様に点をばらまく場合,ある点が高さh以下である確率q1は次のように表される.
q1=∫0hmax∫φstartφendcosθ2πrdφdh∫0h∫φstartφendcosθ2πrdφdh,wherer=r1−tanθ h,tanθ=hmaxr1−r2=∫0hmaxr1−tanθh dh∫0hr1−tanθ h dh=[r1h−2tanθh2]0hmax[r1h−2tanθh2]0h=r1hmax−2tanθhmax2r1h−2tanθh2
この式をhについて解くと、ランダム値q1に対して高さhを対応させることができる。
このとき、2つ解が存在するが、高さhが円錐の頂点を超えないようにしたいので、マイナスの場合を用いる。
h=tanθr1±(tanθr1)2−2q1hmaxtanθr1+q1hmax2
周方向については、ランダム値q2を用いて以下のように指定できる。
φ=q2(φend−φstart)+φstart
Figure 6: Point Distribution on a Cone.
放物面
Figure 7のような部分放物面について考えよう。ただし、放物面の頂点は原点にあり,放物面の軸が高さ方向の軸に一致するものとする.
Figure 7: Point Distribution on a Parabolic Surface.
半径rと高さhの関係は次のように表される。
h=a2r2, where a2=rmax2hmax
r=ah
接線の傾きをtanθとすると、次のように表される。
tanθ=drdh=2a2r
ここで、1+tan2θ1=sin2θ1を用いると、以下の関係が得られる。
sinθ1=1+tan2θ1=1+4a4r21sinθr=a2h+4a6r2h=a2h+4a41
さて、この部分放物面上に点を一様にばらまく場合、ある点が高さh以下である確率q1は次のように表される。
q1=∫hminhmax∫φstartφendsinθrdφdh∫hminh∫φstartφendsinθrdφdh=∫hminhmaxh+4a21dh∫hminhh+4a21dh=[32(h+4a21)23]hminhmax[32(h+4a21)23]hminh=(hmax+4a21)23−(hmin+4a21)23(h+4a21)23−(hmin+4a21)23
この式をhについて解くと、ランダム値q1に対して高さhを対応させることができる。
(h+4a21)23=q1{(hmax+4a21)23−(hmin+4a21)23}+(hmin+4a21)23h=[q1{(hmax+4a21)23−(hmin+4a21)23}+(hmin+4a21)23]32−4a21
周方向については、ランダム値q2を用いて以下のように指定できる。
φ=q2(φend−φstart)+φstart