いわて駐在研究日誌2。

NEVER STAND BEHIND ME

フォームファクタ計算のまえおき

現在のコードでは、いわゆる面積分によるS2S(Surface to Surface)計算をやっている。
この計算では、面同士が向かい合っていて障害物がない条件であれば(球の内壁など)、
プログラム的には、あまり能のない、というか、straightforwardな手法である。
しかし、複雑なサーフェスメッシュの場合、別に障害物判定(可視判定)が必要となっている。

この可視判定は、工夫しない場合は、iとjのセル間の視線ベクトルに、その他のセルkが当たっていないかを判定することになり3重ループになる。
視線の対称性を使っても理屈上は1/2、メッシュの物理座標を使った「バウンディングボックス」「円筒当たり判定を使った絞りこみ」を追加しても、
たかだか1/10程度なので、メッシュ数が多いとやたら計算時間がかかる。

そこで、CG的手法であるHemi-cube, Hemi-sphere法の実装に取り組んでみることにする。
ちなみに、レイトレーシング手法も実装はしてあるが、しこたまRayを出してあげないと精度が良くないため、
これはこれで時間がかかる。

# S2S法以外に線積分などを使った手法もいくつかあるが、数学的には正しくてもプログラミング的にはめんどくさそうという理由でこれらは放置です。