ボリュームレイキャスティングは、ボリューメトリックレイキャスティング、ボリューメトリックレイトレーシング、ボリュームレイマーチングとも呼ばれ、画像ベースの ボリュームレンダリング手法です。3Dボリュームデータセット(3Dスカラーフィールド)から2D画像を計算します。ボリュームデータを処理するボリュームレイキャスティングは、サーフェスデータを処理するレイトレーシングにおけるレイキャスティングと混同してはいけません。ボリュームレイキャスティングでは、計算はサーフェスで止まらず、オブジェクトを「押し通し」、レイに沿ってオブジェクトをサンプリングします。レイトレーシングとは異なり、ボリュームレイキャスティングでは二次レイは生成されません。[1]文脈や用途が明確な場合は、単にレイキャスティングと呼ぶこともあります。[1] [2]レイマーチングでは、レイの交差や衝突に対する正確な解が必ずしも必要ないため、レイトレーシングが適さない多くのアプリケーションの リアルタイムコンピューティングに適しています。
分類
ボリュームレイキャスティングの手法は、レンダリング方程式から直接導出できます。これにより、非常に高品質なレンダリング結果が得られます。ボリュームレイキャスティングは、オブジェクトベースの手法のように入力ボリュームデータではなく出力画像から計算が行われるため、画像ベースのボリュームレンダリング手法に分類されます。
基本アルゴリズム

基本的な形式では、ボリューム レイ キャスティング アルゴリズムは次の 4 つのステップで構成されます。
- レイキャスティング。最終画像の各ピクセルに対して、視線がボリュームを通して射出(「キャスト」)されます。この段階では、ボリュームが境界プリミティブ(通常は直方体)に囲まれ、境界プリミティブによって囲まれていると考えると便利です。境界プリミティブは、視線とボリュームを交差させるために使用される単純な幾何学的オブジェクトです。
- サンプリング。視線のうちボリューム内に含まれる部分に沿って、等間隔のサンプリング点(サンプル)が選択されます。一般的に、ボリュームは視線と一直線に並んでおらず、サンプリング点は通常、ボクセル間に配置されます。そのため、サンプルの値は周囲のボクセルから補間する必要があります(通常は三線補間を使用します)。
- シェーディング。各サンプリングポイントについて、伝達関数がRGBAマテリアルカラーを取得し、照明値の勾配を計算します。勾配はボリューム内の局所的なサーフェスの向きを表します。その後、サンプルはサーフェスの向きとシーン内の光源の位置に応じてシェーディング(つまり、色付けと照明)されます。
- 合成。すべてのサンプリングポイントがシェーディングされた後、視線に沿って合成され、現在処理中のピクセルの最終的な色値が得られます。合成はレンダリング方程式から直接導かれ、オーバーヘッドプロジェクターでアセテートシートをブレンドするのと似ています。
最適化。
- 計算は後ろから前へ、つまり視聴者から最も遠いサンプルから始まり、視聴者に最も近いサンプルで終わります。このワークフローの方向により、ボリュームのマスクされた部分が結果のピクセルに影響を与えないことが保証されます。
- 前から後ろへの順序は、光線がカメラから離れるにつれて残留光線エネルギーが減少するため、計算効率も高くなる可能性があります。そのため、レンダリング積分への寄与が減少するため、より積極的な速度/品質の妥協を適用できます (光線に沿ったサンプル間の距離を増やすことは、このような速度/品質のトレードオフの 1 つです)。
高度な適応アルゴリズム
適応サンプリング戦略は、高品質レンダリングのレンダリング時間を劇的に短縮します。データセットの品質やサイズが高いほど、通常/均等サンプリング戦略に対する利点は顕著になります。[1]しかし、投影面への適応レイキャスティングと個々のレイに沿った適応サンプリングは、現代のGPUのSIMDアーキテクチャにうまく対応していません。一方、マルチコアCPUはこの手法に最適であり、インタラクティブな超高品質ボリューメトリックレンダリングに適しています。
高品質なボリューメトリックレイキャスティングの例

このギャラリーは、高品質のボリュームレイキャスティングを用いてレンダリングされた画像のコレクションです。ボリュームレイキャスティング画像は、高い精度でレンダリングされるため、 テクスチャマッピングVRの出力画像とは一線を画す鮮明な外観を呈します。
ワニのミイラの CT スキャンの解像度は 3000×512×512 (16 ビット)、頭蓋骨のデータセットの解像度は 512×512×750 (16 ビット) です。
レイの行進
レイマーチングという用語はより広義で、シミュレートされたレイを反復的に走査し、各レイをより小さなレイセグメントに分割し、各ステップで何らかの関数をサンプリングする手法を指します。これらの手法は、三角形などの明示的なジオメトリを作成することが適切ではない場合によく使用されます。

レイマーチングの他の例
- SDFレイマーチング、または球面トレーシング[3]では、光線と符号付き距離関数(SDF)で定義された面との交点を近似します。SDFは各反復ごとに評価され、面のどの部分も見逃すことなく、可能な限り大きなステップを踏むことができます。点が面に十分近い位置に到達した場合、閾値が設定され、それ以上の反復処理が中止されます。この手法は、3Dフラクタルレンダリングでよく使用されます。[4]
- スクリーン スペースリフレクション (SSR) やスクリーン スペースシャドウなどのスクリーン スペース エフェクトをレンダリングする場合、レイはG バッファを使用してトレースされ、深度と表面法線データは 2D ピクセルごとに保存されます。
参照
- Amira – レイキャスティングボリュームレンダリングエンジン(Open Inventorベース)を使用する商用 3D 視覚化および分析ソフトウェア(ライフサイエンスおよびバイオメディカル向け)
- Avizo – レイキャスティングボリュームレンダリングエンジンを使用する商用3D視覚化および分析ソフトウェア(これもOpen Inventorベース)
- Shadertoy - GLSLコードを通じてレンダリング技術や手続き型アートを共有、学習、実験するコンピュータグラフィックスの専門家、学者、愛好家のためのオンラインコミュニティおよびプラットフォーム
- ボリュームパストレーシング
参考文献
- ^ abc ダニエル・ワイスコフ (2006). GPUベースのインタラクティブ可視化技術. シュプリンガー・サイエンス&ビジネス・メディア. p. 21. ISBN 978-3-540-33263-3。
- ^ Barton F. Branstetter (2009). 『実践画像情報学:PACSプロフェッショナルのための基礎と応用』 Springer Science & Business Media. p. 126. ISBN 978-1-4419-0485-0。
- ^ ハート、ジョン・C.(1995年6月)、「球面トレーシング:陰関数面のアンチエイリアスレイトレーシングのための幾何学的手法」(PDF)、The Visual Computer
- ^ ハート、ジョン・C.、サンディン、ダニエル・J.、カウフマン、ルイス・H.(1989年7月)、「レイトレーシングによる決定論的3次元フラクタル」(PDF)、コンピュータグラフィックス
外部リンク
- GPU ベースのボリュームレンダリングの加速技術 (J. Krüger、R. Westermann、IEEE Visualization 2003)
- 大規模なボリュームデータセットのインタラクティブなアウトオブコアレンダリングのためのシングルパスGPUレイキャスティングフレームワーク(E. Gobbetti、F. Marton、JA Iglesias Guitian、The Visual Computer 2008)