第21回 Ray Marchingによる表面の探索
第18回では決めた回数だけTextureを読みました。今回は位置を更新しながら距離を読み、表面へ近づいたら終える反復を扱います。見つかった場合と、探索を打ち切った場合を分けます。
配布プロジェクト
この回に対応する配布プロジェクトは準備中です。本文の数値例と確認問題で原理を学べます。Unityでの実習を始める際は、配布ファイルで対応する環境の公開状況を確認してください。
この回のゴール
Ray上の位置と符号付き距離を対応づけ、命中・距離上限・反復上限の三つの終了を説明できる。
今回のポイント
Rayは始点と方向で表す半直線です。SDFは表面で0、外側で正、内側で負となる距離です。ほかの科目でSDFを学んでいなくても、最初のステップの球の例から読み進められます。
各ステップでは、入力値と計算結果を記録してから条件を変えます。最後のステップで一連の処理をまとめ、用途や比較条件に応じた判断を行います。
授業の進め方
1 / 4Ray上の位置と表面までの距離進んだ距離と、次に安全に進める距離を分けます。2 / 4距離に応じたSphere Tracing表面を越えない歩幅の条件を理解します。3 / 4命中と探索の打ち切り条件上限へ達しただけで命中にしない停止条件を学びます。4 / 4表面探索の追跡と終了理由球の探索を最初から追跡し、命中と二つの打ち切り条件を区別して結果を説明します。
終了時に残す記録
開始位置・方向・許容値・二つの上限・終了理由を表にまとめます。
途中で判断できなくなった場合は、ステップ一覧から該当する入力・計算へ戻り、基準の例と一つずつ比較します。