Skip to content

改訂前の参考解説

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

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

4 / 4 表面探索の追跡と終了理由 ​

このステップの目的

球の探索を最初から追跡し、命中と二つの打ち切り条件を区別して結果を説明します。

表面を探すことが今回の中心 ​

Rasterizationは三角形を画面へ対応づけ、Ray MarchingはRay上を反復して表面などを調べます。Ray TracingはRayの交差を調べる広い考え方で、専用GPU機能を使うことだけを意味しません。ここでは距離場を使う探索に範囲を絞ります。

画面へ探索結果の色を出しただけでは、Sceneの深度、影、Colliderまでそろうわけではありません。他の物体との前後関係や法線による照明は、別の出力・計算として必要です。

探索の全体を読む ​

次は外側から始める球の探索例です。方向は長さ1、許容値は正、距離上限と反復上限を先に決めます。

text
t = 0
終了理由 = 回数上限
反復上限まで繰り返す:
    p = 始点 + 方向 × t
    d = length(p) - 半径
    d < 許容値なら、終了理由 = 命中 として終了
    t + d > 距離上限なら、終了理由 = 距離上限 として終了
    t = t + d

この例は、距離上限を越える次の移動を行う前に打ち切ります。反復を終えただけでは命中としません。現在位置の計算と距離の再評価を分け、表に「t・p・d・終了理由」を記録します。

条件を変えた確認 ​

始点(0,0,3)、方向(0,0,−1)、半径1、許容値0.01を固定します。探索距離10・上限4、探索距離1・上限4、探索距離10・上限1の三条件の終了理由を比較してください。

考え方の確認

順に、二回目の距離評価で命中、距離上限による未発見、一回目の移動後に回数上限による打ち切りです。二つの上限は別の条件です。

開始位置・方向・許容値・二つの上限・終了理由を表にまとめます。

チェックリスト
  • 回数上限で命中扱いする誤りと、Sceneとの接続に残る処理を説明できる。
  • 変更した条件と、予測・計算した結果を対応付けて説明できる。