ボリューム レイ キャスティングは、ボリューメトリック レイ キャスティング、ボリューメトリック レイ トレーシング、またはボリューム レイ マーチングとも呼ばれ、画像ベースの ボリューム レンダリング手法です。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 ベースのインタラクティブ視覚化テクニック. Springer Science & Business Media. 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。
- ^ Hart, John C. (1995 年 6 月)、「球面トレーシング: 暗黙的表面のアンチエイリアス レイ トレーシングのための幾何学的手法」(PDF)、The Visual Computer
- ^ Hart, John C.; Sandin, Daniel J.; Kauffman, Louis H. (1989 年 7 月)、「Ray Tracing Deterministic 3-D Fractals」(PDF)、Computer Graphics
外部リンク
- GPU ベースのボリューム レンダリングの高速化テクニック (J. Krüger、R. Westermann、IEEE Visualization 2003)
- 大規模なボリュームデータセットのインタラクティブなアウトオブコアレンダリングのためのシングルパス GPU レイキャスティングフレームワーク (E. Gobbetti、F. Marton、JA Iglesias Guitian、The Visual Computer 2008)
