Skip to content

改訂前の参考解説

このページは改訂前の教材です。現在の授業の回番号・内容は、後期の授業計画で確認してください。

第21回 Ray Marchingによる表面の探索

3 / 4 命中と探索の打ち切り条件 ​

このステップの目的

上限へ達しただけで命中にしない停止条件を学びます。

近づいたら命中とする ​

計算では距離が厳密に0になるまで待たず、小さな正の許容値εより近づいたら命中とします。εが0.01なら、外側の距離0.006は命中の条件を満たします。εを大きくすると早く終われても、表面が太ったように見える場合があります。

確認したこと結果の扱い
距離が許容値より小さい命中として終了
探索する距離の上限へ達した対象範囲では未発見として終了
反復回数の上限へ達した未発見として打ち切り、回数不足も検討

二種類の上限 ​

表面へ当たらないRayもあるため、進んだ距離の上限と反復回数の上限を設けます。どちらへ達しても「探索終了」ですが、命中が確認できた意味ではありません。回数不足は、表面がない場合と区別して診断する余地を残します。

基本では外側開始を前提にします。内側から始めたとき負の距離をそのままtへ足すと逆へ進むため、同じ手順を無条件に使いません。まず前提と三つの終了条件を表へ書き出します。

条件を変えた確認 ​

直前の球の例を、反復上限1で実行します。一回目にd=2を読みt=2へ移動したところで上限になったとき、命中確認まで済んでいますか。

考え方の確認

移動先のdをまだ評価していないため、この反復手順では命中未確認です。二回目でd=0を評価すると命中になります。終了理由を記録し、到着を予想しただけで命中扱いにしません。

命中・距離上限・回数上限のどれで終わったかを必ず残します。

チェックリスト
  • 距離0.006とε0.01を比較し、上限到達を命中と区別できる。
  • 変更した条件と、予測・計算した結果を対応付けて説明できる。