Skip to content

レイトレーシング概論

最終更新日時: 2025年08月25日 12:57

  • nothing
  • レイトレーシングとは、レイを追うことによって画面をレンダリングする手法全般を指している
  • パストレーシングとは、光の経路を乱数的に追跡し材質の物理的特性に基づいた統計値でレンダリングする手法
  • レイマーチングとは、レイを空間上で前進させて物体との交点を探索する手法。
    • 交点を見つけるためにはSDF(Signed Distance Function)を用いる以外、voxcel, 球などで近似する他いくつかの実現手法がある

レイキャスティングとレイマーチングの比較と定義

Section titled “レイキャスティングとレイマーチングの比較と定義”

レイキャスティング(Ray Casting)およびレイマーチング(Ray Marching)は、レイトレーシングのサブカテゴリに属する空間探索アルゴリズムであり、いずれもカメラからシーン内にレイ(半直線)を飛ばし、物体との交差を探索する手法である。

Section titled “レイキャスティング(Ray Casting)およびレイマーチング(Ray Marching)は、レイトレーシングのサブカテゴリに属する空間探索アルゴリズムであり、いずれもカメラからシーン内にレイ(半直線)を飛ばし、物体との交差を探索する手法である。”
  • レイキャスティング:解析的手法。形状の交差判定が明示的に可能な場合に使用
  • レイマーチング:数値的手法。形状の交差が距離関数などで定義される場合に使用

レイキャスティング(Ray Casting)

Section titled “レイキャスティング(Ray Casting)”
  • レイ r(t)=o+td\mathbf{r}(t) = \mathbf{o} + t \mathbf{d} を物体に対して解析的に交差判定する
  • o\mathbf{o}:カメラ位置(レイの始点)
  • d\mathbf{d}:正規化されたレイ方向ベクトル
  • t\[t_min,t_max]t \in \[t\_{min}, t\_{max}]:スカラー距離範囲 適用例:
  • 三角形メッシュ(BVH構造による加速)
  • 球、平面、円柱などの解析幾何

  • レイ上に一定ステップで点を進め、各点で最短距離を測りながら進行する数値的交差探索法
  • 特にSDF(Signed Distance Field)を使う場合に最適 アルゴリズム:
  1. 初期点 p_0=o\mathbf{p}\_0 = \mathbf{o}
  2. 距離関数 d_i=f(p_i)d\_i = f(\mathbf{p}\_i) を評価
  3. p_i+1=p_i+d_id\mathbf{p}\_{i+1} = \mathbf{p}\_i + d\_i \cdot \mathbf{d}
  4. d_i<εd\_i < \varepsilon または i>N_maxi > N\_{max} で終了 特徴:
  • 通常のメッシュではなく、形状が距離関数で定義される
  • 精度はステップと ε\varepsilon に依存
  • 数値誤差(overshoot)や自己交差、影のバンディングを生む可能性あり

項目レイキャスティングレイマーチング
手法種別解析的(analytic)数値的(iterative, numerical)
対象形状明示的に定義された形状(メッシュ等)距離関数、SDF
精度完全(数式で交差)近似(収束条件に依存)
実装の複雑さ高(形状ごとに交差式)低(関数定義のみ)
拡張性難(形状追加ごとに式が必要)高(関数合成で形状が作れる)
GLSL実装難(交差処理が複雑)容易(関数ループで進行)

このように、形状の表現方法(明示か、距離関数か)によって適切なレイ探索手法を選択することが、GPU上でのリアルタイム描画やレイトレーシングの効率性を左右する。